+#include "common.h"\r
+#include "mainwindow.h"\r
#include "operationdialog.h"\r
#include "ui_operationdialog.h"\r
+\r
#include <QThread>\r
\r
OperationDialog::OperationDialog(QWidget *parent) :\r
QDialog(parent),\r
ui(new Ui::OperationDialog),\r
m_worker(NULL),\r
- m_Error(false),\r
- m_Cancel(false)\r
+ m_Error(false)\r
{\r
ui->setupUi(this);\r
+ resize(parent->width() * 0.8, height());\r
}\r
\r
OperationDialog::~OperationDialog()\r
delete ui;\r
}\r
\r
-void OperationDialog::showEvent(QShowEvent *event)\r
+void OperationDialog::setAutoClose(bool yes)\r
+{\r
+ ui->chkAutoClose->setChecked(yes);\r
+}\r
+\r
+bool OperationDialog::autoClose() const\r
+{\r
+ return ui->chkAutoClose->isChecked();\r
+}\r
+\r
+void OperationDialog::showEvent(QShowEvent *)\r
{\r
ui->textEdit->setVisible(false);\r
\r
connect(thread, SIGNAL(started()), m_worker, SLOT(operate()));\r
connect(m_worker, SIGNAL(finished()), thread, SLOT(quit()));\r
\r
- connect(thread, SIGNAL(finished()), this, SLOT(onFinished()));\r
connect(thread, SIGNAL(finished()), m_worker, SLOT(deleteLater()));\r
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));\r
\r
connect(m_worker, SIGNAL(operation(QString)), this, SLOT(onOperation(QString)));\r
connect(m_worker, SIGNAL(success(QString)), this, SLOT(onSuccess(QString)));\r
connect(m_worker, SIGNAL(error(QString)), this, SLOT(onError(QString)));\r
+ connect(m_worker, SIGNAL(finished()), this, SLOT(onFinished()));\r
+ connect(m_worker, SIGNAL(canceled()), this, SLOT(onCanceled()));\r
\r
thread->start();\r
}\r
ui->btnCloseCancel->setText(tr("閉じる"));\r
\r
ui->textEdit->append("");\r
- if (m_Cancel) {\r
- ui->textEdit->append(tr("操作は途中でキャンセルされました。"));\r
- }\r
- else {\r
- ui->textEdit->append(tr("完了"));\r
- if (!m_Error && ui->chkAutoClose->checkState() == Qt::Checked) {\r
- QDialog::accept();\r
- }\r
+ ui->textEdit->append(tr("完了"));\r
+ if (!m_Error && ui->chkAutoClose->checkState() == Qt::Checked) {\r
+ QDialog::accept();\r
}\r
}\r
\r
+void OperationDialog::onCanceled()\r
+{\r
+ ui->progressBar->setMaximum(1);\r
+ ui->progressBar->setValue(1);\r
+ ui->btnCloseCancel->setText(tr("閉じる"));\r
+\r
+ ui->textEdit->append("");\r
+ ui->textEdit->append(tr("操作は途中でキャンセルされました。"));\r
+}\r
+\r
void OperationDialog::on_btnCloseCancel_clicked()\r
{\r
if (ui->btnCloseCancel->text() == tr("閉じる")) {\r
QDialog::accept();\r
}\r
else {\r
- m_Cancel = true;\r
m_worker->requestStop();\r
}\r
}\r