aboutsummaryrefslogtreecommitdiff
path: root/launcher/tasks/MultipleOptionsTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/tasks/MultipleOptionsTask.h')
-rw-r--r--launcher/tasks/MultipleOptionsTask.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/launcher/tasks/MultipleOptionsTask.h b/launcher/tasks/MultipleOptionsTask.h
new file mode 100644
index 00000000..7c508b00
--- /dev/null
+++ b/launcher/tasks/MultipleOptionsTask.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "SequentialTask.h"
+
+/* This task type will attempt to do run each of it's subtasks in sequence,
+ * until one of them succeeds. When that happens, the remaining tasks will not run.
+ * */
+class MultipleOptionsTask : public SequentialTask
+{
+ Q_OBJECT
+public:
+ explicit MultipleOptionsTask(QObject *parent = nullptr, const QString& task_name = "");
+ virtual ~MultipleOptionsTask() = default;
+
+private
+slots:
+ void startNext() override;
+ void subTaskFailed(const QString &msg) override;
+};