summaryrefslogtreecommitdiffstats
path: root/gui/taskdialog.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-08-09 00:26:35 +0200
committerPetr Mrázek <peterix@gmail.com>2013-08-09 00:26:35 +0200
commitbf5f5091ef6daeaf7067f4fc8973eb068ddc52fc (patch)
tree647f77c1d7f8c8e0e7bdf90fb7f3b0eac9aa5f6c /gui/taskdialog.cpp
parentc8925e0f667b0c94028345586d99008066358200 (diff)
downloadMultiMC-bf5f5091ef6daeaf7067f4fc8973eb068ddc52fc.tar
MultiMC-bf5f5091ef6daeaf7067f4fc8973eb068ddc52fc.tar.gz
MultiMC-bf5f5091ef6daeaf7067f4fc8973eb068ddc52fc.tar.lz
MultiMC-bf5f5091ef6daeaf7067f4fc8973eb068ddc52fc.tar.xz
MultiMC-bf5f5091ef6daeaf7067f4fc8973eb068ddc52fc.zip
Various task related improvements.
* Errors are reported back to task users via Failure signals. * Lwjgl doesn't download on each legacy instance start anymore. * Tasks were unified when it comes to success/failure. * Task dialogs don't get spawned after short tasks finish anymore.
Diffstat (limited to 'gui/taskdialog.cpp')
-rw-r--r--gui/taskdialog.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/gui/taskdialog.cpp b/gui/taskdialog.cpp
index efa64256..f61614e8 100644
--- a/gui/taskdialog.cpp
+++ b/gui/taskdialog.cpp
@@ -45,12 +45,14 @@ void TaskDialog::exec(Task *task)
this->task = task;
// Connect signals.
- connect(task, SIGNAL(started(Task*)), SLOT(onTaskStarted(Task*)));
- connect(task, SIGNAL(ended(Task*)), SLOT(onTaskEnded(Task*)));
+ connect(task, SIGNAL(started()), SLOT(onTaskStarted()));
+ connect(task, SIGNAL(failed(QString)), SLOT(onTaskEnded()));
+ connect(task, SIGNAL(succeeded()), SLOT(onTaskEnded()));
connect(task, SIGNAL(statusChanged(const QString&)), SLOT(changeStatus(const QString&)));
connect(task, SIGNAL(progressChanged(int)), SLOT(changeProgress(int)));
- task->startTask();
+ // this makes sure that the task is started after the dialog is created
+ QMetaObject::invokeMethod(task, "startTask", Qt::QueuedConnection);
QDialog::exec();
}
@@ -59,12 +61,12 @@ Task* TaskDialog::getTask()
return task;
}
-void TaskDialog::onTaskStarted(Task*)
+void TaskDialog::onTaskStarted()
{
}
-void TaskDialog::onTaskEnded(Task*)
+void TaskDialog::onTaskEnded()
{
close();
}