2 #include "mainwindow.h"
\r
3 #include "operationdialog.h"
\r
4 #include "ui_operationdialog.h"
\r
8 OperationDialog::OperationDialog(QWidget *parent) :
\r
10 ui(new Ui::OperationDialog),
\r
15 resize(getMainWnd()->width() * 0.8, height());
\r
18 OperationDialog::~OperationDialog()
\r
23 void OperationDialog::showEvent(QShowEvent *)
\r
25 ui->textEdit->setVisible(false);
\r
27 QThread *thread = new QThread();
\r
28 m_worker->moveToThread(thread);
\r
29 m_worker->setProgressText(ui->label);
\r
30 connect(thread, SIGNAL(started()), m_worker, SLOT(operate()));
\r
31 connect(m_worker, SIGNAL(finished()), thread, SLOT(quit()));
\r
33 connect(thread, SIGNAL(finished()), m_worker, SLOT(deleteLater()));
\r
34 connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
\r
36 connect(m_worker, SIGNAL(operation(QString)), this, SLOT(onOperation(QString)));
\r
37 connect(m_worker, SIGNAL(success(QString)), this, SLOT(onSuccess(QString)));
\r
38 connect(m_worker, SIGNAL(error(QString)), this, SLOT(onError(QString)));
\r
39 connect(m_worker, SIGNAL(finished()), this, SLOT(onFinished()));
\r
40 connect(m_worker, SIGNAL(canceled()), this, SLOT(onCanceled()));
\r
45 void OperationDialog::onOperation(const QString &msg)
\r
47 ui->textEdit->append(msg + " ... ");
\r
50 void OperationDialog::onSuccess(const QString &msg)
\r
52 ui->textEdit->append("<font color='green'>" + msg + "</font>");
\r
55 void OperationDialog::onError(const QString &msg)
\r
58 ui->textEdit->append("<font color='red'><strong>" + msg + "</strong></font>");
\r
61 void OperationDialog::onFinished()
\r
63 ui->progressBar->setMaximum(1);
\r
64 ui->progressBar->setValue(1);
\r
65 ui->btnCloseCancel->setText(tr("閉じる"));
\r
67 ui->textEdit->append("");
\r
68 ui->textEdit->append(tr("完了"));
\r
69 if (!m_Error && ui->chkAutoClose->checkState() == Qt::Checked) {
\r
74 void OperationDialog::onCanceled()
\r
76 ui->progressBar->setMaximum(1);
\r
77 ui->progressBar->setValue(1);
\r
78 ui->btnCloseCancel->setText(tr("閉じる"));
\r
80 ui->textEdit->append("");
\r
81 ui->textEdit->append(tr("操作は途中でキャンセルされました。"));
\r
84 void OperationDialog::on_btnCloseCancel_clicked()
\r
86 if (ui->btnCloseCancel->text() == tr("閉じる")) {
\r
90 m_worker->requestStop();
\r
94 void OperationDialog::on_btnShowDetail_clicked()
\r
96 if (ui->textEdit->isVisible()) {
\r
97 ui->textEdit->setVisible(false);
\r
98 ui->btnShowDetail->setText(tr("詳細を表示"));
\r
101 ui->textEdit->setVisible(true);
\r
102 ui->btnShowDetail->setText(tr("詳細を隠す"));
\r