1 #include "operationdialog.h"
\r
2 #include "ui_operationdialog.h"
\r
5 OperationDialog::OperationDialog(QWidget *parent) :
\r
7 ui(new Ui::OperationDialog),
\r
15 OperationDialog::~OperationDialog()
\r
20 void OperationDialog::showEvent(QShowEvent *)
\r
22 ui->textEdit->setVisible(false);
\r
24 QThread *thread = new QThread();
\r
25 m_worker->moveToThread(thread);
\r
26 m_worker->setProgressText(ui->label);
\r
27 connect(thread, SIGNAL(started()), m_worker, SLOT(operate()));
\r
28 connect(m_worker, SIGNAL(finished()), thread, SLOT(quit()));
\r
30 connect(thread, SIGNAL(finished()), this, SLOT(onFinished()));
\r
31 connect(thread, SIGNAL(finished()), m_worker, SLOT(deleteLater()));
\r
32 connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
\r
34 connect(m_worker, SIGNAL(operation(QString)), this, SLOT(onOperation(QString)));
\r
35 connect(m_worker, SIGNAL(success(QString)), this, SLOT(onSuccess(QString)));
\r
36 connect(m_worker, SIGNAL(error(QString)), this, SLOT(onError(QString)));
\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
65 ui->textEdit->append(tr("操作は途中でキャンセルされました。"));
\r
68 ui->textEdit->append(tr("完了"));
\r
69 if (!m_Error && ui->chkAutoClose->checkState() == Qt::Checked) {
\r
75 void OperationDialog::on_btnCloseCancel_clicked()
\r
77 if (ui->btnCloseCancel->text() == tr("閉じる")) {
\r
82 m_worker->requestStop();
\r
86 void OperationDialog::on_btnShowDetail_clicked()
\r
88 if (ui->textEdit->isVisible()) {
\r
89 ui->textEdit->setVisible(false);
\r
90 ui->btnShowDetail->setText(tr("詳細を表示"));
\r
93 ui->textEdit->setVisible(true);
\r
94 ui->btnShowDetail->setText(tr("詳細を隠す"));
\r