OSDN Git Service

Ver0.19
[gefu/Gefu.git] / operationdialog.cpp
index 5cc4287..839952a 100644 (file)
@@ -1,15 +1,18 @@
+#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
@@ -17,7 +20,17 @@ OperationDialog::~OperationDialog()
     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
@@ -27,13 +40,14 @@ void OperationDialog::showEvent(QShowEvent *event)
     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
@@ -61,24 +75,28 @@ void OperationDialog::onFinished()
     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