summaryrefslogtreecommitdiff
path: root/ui/qt5/runner/executepage.hh
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2019-12-07 05:05:30 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2019-12-07 05:05:30 -0600
commit5287ea303f22f937df8f4b61b67f7bc163138b99 (patch)
tree10c3bd8b010501d25079df4538821dd31aed7230 /ui/qt5/runner/executepage.hh
parent8c48b20bb7433c69228447bce4e5744bf658dc3d (diff)
downloadhorizon-5287ea303f22f937df8f4b61b67f7bc163138b99.tar.gz
horizon-5287ea303f22f937df8f4b61b67f7bc163138b99.tar.bz2
horizon-5287ea303f22f937df8f4b61b67f7bc163138b99.tar.xz
horizon-5287ea303f22f937df8f4b61b67f7bc163138b99.zip
Qt UI: Add executor/runner
Diffstat (limited to 'ui/qt5/runner/executepage.hh')
-rw-r--r--ui/qt5/runner/executepage.hh70
1 files changed, 70 insertions, 0 deletions
diff --git a/ui/qt5/runner/executepage.hh b/ui/qt5/runner/executepage.hh
new file mode 100644
index 0000000..b3d11b4
--- /dev/null
+++ b/ui/qt5/runner/executepage.hh
@@ -0,0 +1,70 @@
+/*
+ * executepage.cc - Implementation of the UI.Perform page
+ * horizon-run-qt5, the Qt 5 executor user interface for
+ * Project Horizon
+ *
+ * Copyright (c) 2019 Adélie Linux and contributors. All rights reserved.
+ * This code is licensed under the AGPL 3.0 license, as noted in the
+ * LICENSE-code file in the root directory of this repository.
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+#ifndef EXECUTEPAGE_HH
+#define EXECUTEPAGE_HH
+
+#include "../horizonwizardpage.hh"
+
+#include <QFile>
+#include <QLabel>
+#include <QProcess>
+#include <QTimer>
+
+class ExecutePage : public HorizonWizardPage {
+public:
+ enum Phase {
+ Prepare,
+ Validate,
+ Disk,
+ PreMeta,
+ Net,
+ Pkg,
+ PostMeta
+ };
+
+ ExecutePage(QWidget *parent = nullptr);
+private:
+ QLabel *prepareStatus;
+ QLabel *prepare;
+ QLabel *validateStatus;
+ QLabel *validate;
+ QLabel *diskStatus;
+ QLabel *disk;
+ QLabel *preMetaStatus;
+ QLabel *preMeta;
+ QLabel *netStatus;
+ QLabel *net;
+ QLabel *pkgStatus;
+ QLabel *pkg;
+ QLabel *postMetaStatus;
+ QLabel *postMeta;
+
+ QFont normalFont, boldFont;
+ QProcess *executor;
+ QTimer *finishTimer;
+ QFile log;
+
+ Phase current;
+
+ Phase stepToPhase(QString step);
+ void labelsForPhase(Phase phase, QLabel **icon, QLabel **text);
+ void markRunning(Phase phase);
+ void markFinished(Phase phase);
+ void markFailed(Phase phase);
+
+ void executorReady();
+ void executorOutReady();
+ void executorFinished(int code, QProcess::ExitStatus status);
+};
+
+#endif /* !EXECUTEPAGE_HH */