summaryrefslogtreecommitdiffhomepage
path: root/gui/process_detector.h
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2015-10-30 09:01:32 +0100
committerStanislaw Halik <sthalik@misaki.pl>2015-10-30 09:01:32 +0100
commitd785d3616500d5846ac8c5f5a6347da832a593b4 (patch)
treeac670a125c5b880ad7e4b4f24a8635da4e66f0da /gui/process_detector.h
parent232c2ba8aca7900eaa950c48813ddfaca8a749a8 (diff)
parent9b736d361bcde7a2ddaf3fe54b471c0e658e94f4 (diff)
Merge branch 'unstable' into trackhat
* unstable: cmake: cleanup hydra rename gui directory move to subdirectory-based build system cmake: switch to GNU CC 5.2.0 in mingw-w64 toolchain file rift-080: forgot ovr_Initialize() rift 025: fix name
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();
+};
+