1 #include "operationworker.h"
\r
2 #include "operationdialog.h"
\r
3 #include "ui_operationdialog.h"
\r
5 ///////////////////////////////////////////////////////////////////////////////
\r
6 /// \brief OperationDialog::OperationDialog
\r
7 /// \param parent 親ウィジェット
\r
11 OperationDialog::OperationDialog(QWidget *parent) :
\r
13 ui(new Ui::OperationDialog),
\r
18 ui->textEdit->setVisible(false);
\r
19 resize(parent->width() * 0.8, height());
\r
22 ///////////////////////////////////////////////////////////////////////////////
\r
23 /// \brief OperationDialog::~OperationDialog
\r
27 OperationDialog::~OperationDialog()
\r
32 ///////////////////////////////////////////////////////////////////////////////
\r
33 /// \brief OperationDialog::setAutoClose
\r
34 /// \param yes 処理完了時に自動で閉じる場合はtrue
\r
36 void OperationDialog::setAutoClose(bool yes)
\r
38 ui->chkAutoClose->setChecked(yes);
\r
41 ///////////////////////////////////////////////////////////////////////////////
\r
42 /// \brief OperationDialog::autoClose
\r
43 /// \return 処理完了時に自動で閉じる場合はtrue
\r
45 bool OperationDialog::autoClose() const
\r
47 return ui->chkAutoClose->isChecked();
\r
50 ///////////////////////////////////////////////////////////////////////////////
\r
51 /// \brief OperationDialog::onProgress
\r
52 /// \param msg 表示するメッセージ
\r
54 /// 処理経過メッセージを表示します。
\r
56 void OperationDialog::onProgress(const QString &msg)
\r
58 ui->textEdit->append(msg + " ... ");
\r
61 ///////////////////////////////////////////////////////////////////////////////
\r
62 /// \brief OperationDialog::onSuccess
\r
63 /// \param msg 表示するメッセージ
\r
65 /// 処理成功メッセージを表示します。
\r
67 void OperationDialog::onSuccess(const QString &msg)
\r
69 ui->textEdit->append("<font color='green'>" + msg + "</font>");
\r
72 ///////////////////////////////////////////////////////////////////////////////
\r
73 /// \brief OperationDialog::onError
\r
74 /// \param msg 表示するメッセージ
\r
78 void OperationDialog::onError(const QString &msg)
\r
81 ui->textEdit->append("<font color='red'><strong>" + msg + "</strong></font>");
\r
84 ///////////////////////////////////////////////////////////////////////////////
\r
85 /// \brief OperationDialog::onFinished
\r
86 /// \param abort 中断した場合はtrue
\r
90 void OperationDialog::onFinished(bool abort)
\r
92 ui->progressBar->setMaximum(1);
\r
93 ui->progressBar->setValue(1);
\r
94 ui->btnCloseCancel->setText(tr("閉じる"));
\r
96 ui->textEdit->append("");
\r
98 ui->textEdit->append(tr("操作は途中でキャンセルされました。"));
\r
101 ui->textEdit->append(tr("完了"));
\r
102 if (!m_Error && ui->chkAutoClose->checkState() == Qt::Checked) {
\r
108 ///////////////////////////////////////////////////////////////////////////////
\r
109 /// \brief OperationDialog::on_btnCloseCancel_clicked
\r
111 /// 「閉じる」または「キャンセル」ボタンクリック時の処理を行います。
\r
113 void OperationDialog::on_btnCloseCancel_clicked()
\r
115 if (ui->btnCloseCancel->text() == tr("閉じる")) {
\r
123 ///////////////////////////////////////////////////////////////////////////////
\r
124 /// \brief OperationDialog::on_btnShowDetail_clicked
\r
126 /// 詳細表示/非表示の処理を行います。
\r
128 void OperationDialog::on_btnShowDetail_clicked()
\r
130 if (ui->textEdit->isVisible()) {
\r
131 ui->textEdit->setVisible(false);
\r
132 ui->btnShowDetail->setText(tr("詳細を表示"));
\r
135 ui->textEdit->setVisible(true);
\r
136 ui->btnShowDetail->setText(tr("詳細を隠す"));
\r
140 ///////////////////////////////////////////////////////////////////////////////
\r
141 /// \brief OperationDialog::exec
\r
142 /// \return ダイアログ処理の結果を返します。
\r
146 int OperationDialog::exec()
\r
148 connect(m_worker, SIGNAL(finished(bool)), this, SLOT(onFinished(bool)));
\r
149 connect(m_worker, SIGNAL(error(QString)), this, SLOT(onError(QString)));
\r
150 connect(m_worker, SIGNAL(progress(QString)), this, SLOT(onProgress(QString)));
\r
151 connect(m_worker, SIGNAL(success(QString)), this, SLOT(onSuccess(QString)));
\r
152 connect(m_worker, SIGNAL(information(QString)), ui->label, SLOT(setText(QString)));
\r
154 ui->label->setText(m_worker->initialText());
\r
156 return QDialog::exec();
\r