From 0148b26e427d7a5bbe24cdff14f3e035dc19bd1c Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 22 May 2015 17:00:10 +0200 Subject: main: allow automatically run profiles when executables run Issue: #160 --- facetracknoir/process_detector.h | 93 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 facetracknoir/process_detector.h (limited to 'facetracknoir/process_detector.h') diff --git a/facetracknoir/process_detector.h b/facetracknoir/process_detector.h new file mode 100644 index 00000000..2333ecc6 --- /dev/null +++ b/facetracknoir/process_detector.h @@ -0,0 +1,93 @@ +#pragma once + +#include +#include +#include +#include + +#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 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(); +}; + +#ifdef _WIN32 + +class process_detector_worker : QObject +{ + Q_OBJECT + settings s; + QString last_exe_name; +public: + bool config_to_start(QString& s); + bool should_stop(); +}; + +#else + +class process_detector_worker : QObject +{ + Q_OBJECT +public: + bool config_to_start(QString&) + { + return false; + } +}; + +#endif -- cgit v1.2.3