1 #include "operationdialog.h"
\r
2 #include "ui_operationdialog.h"
\r
5 OperationDialog::OperationDialog(QWidget *parent) :
\r
7 ui(new Ui::OperationDialog),
\r
14 OperationDialog::~OperationDialog()
\r
19 void OperationDialog::showEvent(QShowEvent *)
\r
21 ui->textEdit->setVisible(false);
\r
23 QThread *thread = new QThread();
\r
24 m_worker->moveToThread(thread);
\r
25 m_worker->setProgressText(ui->label);
\r
26 connect(thread, SIGNAL(started()), m_worker, SLOT(operate()));
\r
27 connect(m_worker, SIGNAL(finished()), thread, SLOT(quit()));
\r
29 connect(thread, SIGNAL(finished()), m_worker, SLOT(deleteLater()));
\r
30 connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
\r
32 connect(m_worker, SIGNAL(operation(QString)), this, SLOT(onOperation(QString)));
\r
33 connect(m_worker, SIGNAL(success(QString)), this, SLOT(onSuccess(QString)));
\r
34 connect(m_worker, SIGNAL(error(QString)), this, SLOT(onError(QString)));
\r
35 connect(m_worker, SIGNAL(finished()), this, SLOT(onFinished()));
\r
36 connect(m_worker, SIGNAL(canceled()), this, SLOT(onCanceled()));
\r
41 void OperationDialog::onOperation(const QString &msg)
\r
43 ui->textEdit->append(msg + " ... ");
\r
46 void OperationDialog::onSuccess(const QString &msg)
\r
48 ui->textEdit->append("<font color='green'>" + msg + "</font>");
\r
51 void OperationDialog::onError(const QString &msg)
\r
54 ui->textEdit->append("<font color='red'><strong>" + msg + "</strong></font>");
\r
57 void OperationDialog::onFinished()
\r
59 ui->progressBar->setMaximum(1);
\r
60 ui->progressBar->setValue(1);
\r
61 ui->btnCloseCancel->setText(tr("閉じる"));
\r
63 ui->textEdit->append("");
\r
64 ui->textEdit->append(tr("完了"));
\r
65 if (!m_Error && ui->chkAutoClose->checkState() == Qt::Checked) {
\r
70 void OperationDialog::onCanceled()
\r
72 ui->progressBar->setMaximum(1);
\r
73 ui->progressBar->setValue(1);
\r
74 ui->btnCloseCancel->setText(tr("閉じる"));
\r
76 ui->textEdit->append("");
\r
77 ui->textEdit->append(tr("操作は途中でキャンセルされました。"));
\r
80 void OperationDialog::on_btnCloseCancel_clicked()
\r
82 if (ui->btnCloseCancel->text() == tr("閉じる")) {
\r
86 m_worker->requestStop();
\r
90 void OperationDialog::on_btnShowDetail_clicked()
\r
92 if (ui->textEdit->isVisible()) {
\r
93 ui->textEdit->setVisible(false);
\r
94 ui->btnShowDetail->setText(tr("詳細を表示"));
\r
97 ui->textEdit->setVisible(true);
\r
98 ui->btnShowDetail->setText(tr("詳細を隠す"));
\r