summaryrefslogtreecommitdiffhomepage
path: root/gui/process_detector.h
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2015-10-30 08:34:40 +0100
committerStanislaw Halik <sthalik@misaki.pl>2015-10-30 08:39:33 +0100
commit2160e39a4f3d5198eafbb483671583a5a0b51eaa (patch)
tree2370dd4e9a7b43c204d175af3ab2a0ff5b33c41d /gui/process_detector.h
parentaa066bdd4622d4f6824fee864f6be6806813f04d (diff)
rename gui directory
Diffstat (limited to 'gui/process_detector.h')
-rw-r--r--gui/process_detector.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/gui/process_detector.h b/gui/process_detector.h
new file mode 100644
index 00000000..f6497c90
--- /dev/null
+++ b/gui/process_detector.h
@@ -0,0 +1,86 @@
+/* Copyright (c) 2015, Stanislaw Halik <sthalik@misaki.pl>
+
+ * Permission to use, copy, modify, and/or distribute this
+ * software for any purpose with or without fee is hereby granted,
+ * provided that the above copyright notice and this permission
+ * notice appear in all copies.
+ */
+
+#pragma once
+
+#include <QObject>
+#include <QWidget>
+#include <QTableWidget>
+#include <QResizeEvent>
+
+#include "opentrack/options.hpp"
+using namespace options;
+
+class FancyTable : public QTableWidget
+{
+ Q_OBJECT
+public:
+ void resizeEvent(QResizeEvent* e) override
+ {
+ QTableView::resizeEvent(e);
+ int w = width();
+ setColumnWidth(2, 32);
+ w -= 48;
+ setColumnWidth(0, w / 2);
+ setColumnWidth(1, w / 2);
+ }
+public:
+ FancyTable(QWidget* parent = nullptr) : QTableWidget(parent) {}
+};
+
+struct settings
+{
+ QHash<QString, QString> split_process_names();
+ QString get_game_list();
+ void set_game_list(const QString& game_list);
+ bool is_enabled();
+ void set_is_enabled(bool enabled);
+};
+
+#include "ui_process_widget.h"
+
+class process_detector : public QWidget
+{
+ Q_OBJECT
+
+ Ui_Dialog ui;
+ settings s;
+
+ int add_row(QString exe_name = "...", QString profile = "");
+ void add_items();
+public:
+ process_detector(QWidget* parent = nullptr);
+public slots:
+ void save();
+ void revert();
+private slots:
+ void add();
+ void remove();
+};
+
+class BrowseButton : public QPushButton
+{
+ Q_OBJECT
+ QTableWidgetItem* twi;
+public:
+ BrowseButton(QTableWidgetItem* twi) : twi(twi)
+ {}
+public slots:
+ void browse();
+};
+
+class process_detector_worker : QObject
+{
+ Q_OBJECT
+ settings s;
+ QString last_exe_name;
+public:
+ bool config_to_start(QString& s);
+ bool should_stop();
+};
+