aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/UserInterfaceUtils.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-11-28 04:35:01 +0000
committerSaturneric <[email protected]>2021-11-28 04:35:01 +0000
commitb5b3ba7b1dc52a8dbae2a3a6970b44ede827f060 (patch)
tree7dffd4f4e6684d078616d88999590b95e8a56410 /src/ui/UserInterfaceUtils.cpp
parentUI Framework Modified. (diff)
downloadGpgFrontend-b5b3ba7b1dc52a8dbae2a3a6970b44ede827f060.tar.gz
GpgFrontend-b5b3ba7b1dc52a8dbae2a3a6970b44ede827f060.zip
Can be compiled with minimal UI support.
Diffstat (limited to 'src/ui/UserInterfaceUtils.cpp')
-rw-r--r--src/ui/UserInterfaceUtils.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/ui/UserInterfaceUtils.cpp b/src/ui/UserInterfaceUtils.cpp
new file mode 100644
index 00000000..8a6021c0
--- /dev/null
+++ b/src/ui/UserInterfaceUtils.cpp
@@ -0,0 +1,80 @@
+/**
+ * This file is part of GPGFrontend.
+ *
+ * GPGFrontend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Foobar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * The initial version of the source code is inherited from gpg4usb-team.
+ * Their source code version also complies with GNU General Public License.
+ *
+ * The source code version of this software was modified and released
+ * by Saturneric<[email protected]> starting on May 12, 2021.
+ *
+ */
+
+#include "UserInterfaceUtils.h"
+
+#include "gpg/result_analyse/ResultAnalyse.h"
+#include "ui/WaitingDialog.h"
+#include "ui/widgets/InfoBoardWidget.h"
+#include "ui/widgets/TextEdit.h"
+
+namespace GpgFrontend::UI {
+void refresh_info_board(InfoBoardWidget* info_board, int status,
+ const std::string& report_text) {
+ if (status < 0)
+ info_board->slotRefresh(QString::fromStdString(report_text),
+ INFO_ERROR_CRITICAL);
+ else if (status > 0)
+ info_board->slotRefresh(QString::fromStdString(report_text), INFO_ERROR_OK);
+ else
+ info_board->slotRefresh(QString::fromStdString(report_text),
+ INFO_ERROR_WARN);
+}
+
+void process_result_analyse(TextEdit* edit, InfoBoardWidget* info_board,
+ const ResultAnalyse& result_analyse) {
+ info_board->associateTabWidget(edit->tabWidget);
+ info_board->associateFileTreeView(edit->curFilePage());
+ refresh_info_board(info_board, result_analyse.getStatus(),
+ result_analyse.getResultReport());
+}
+
+void process_result_analyse(TextEdit* edit, InfoBoardWidget* info_board,
+ const ResultAnalyse& result_analyse_a,
+ const ResultAnalyse& result_analyse_b) {
+ info_board->associateTabWidget(edit->tabWidget);
+ info_board->associateFileTreeView(edit->curFilePage());
+
+ refresh_info_board(
+ info_board,
+ std::min(result_analyse_a.getStatus(), result_analyse_a.getStatus()),
+ result_analyse_a.getResultReport() + result_analyse_a.getResultReport());
+}
+
+void process_operation(QWidget* parent, const std::string& waiting_title,
+ const std::function<void()>& func) {
+ auto thread = QThread::create(func);
+ QApplication::connect(thread, SIGNAL(finished()), thread,
+ SLOT(deleteLater()));
+ thread->start();
+
+ auto* dialog =
+ new WaitingDialog(QString::fromStdString(waiting_title), parent);
+ while (thread->isRunning()) {
+ QApplication::processEvents();
+ }
+ dialog->close();
+}
+
+} // namespace GpgFrontend::UI \ No newline at end of file