/*---------------------------------------------------------*\ | OpenRGBDialog.h | | | | User interface for OpenRGB main window | | | | This file is part of the OpenRGB project | | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ #pragma once #include #include #include #include #include #include #include "OpenRGBClientInfoPage.h" #include "OpenRGBPluginsPage/OpenRGBPluginsPage.h" #include "OpenRGBSoftwareInfoPage.h" #include "OpenRGBSystemInfoPage.h" #include "OpenRGBSupportedDevicesPage.h" #include "OpenRGBSettingsPage.h" #include "ManualDevicesSettingsPage/ManualDevicesSettingsPage.h" #include "PluginManager.h" #include "SuspendResume.h" #include "i2c_smbus.h" #include "LogManager.h" #include "RGBController.h" #include "ProfileManager.h" #include "NetworkClient.h" #include "NetworkServer.h" namespace Ui { class OpenRGBDialog; } class OpenRGBDialog : public QMainWindow, private SuspendResumeListener { Q_OBJECT public: explicit OpenRGBDialog(QWidget *parent = 0); ~OpenRGBDialog(); void AddClientTab(); void AddI2CToolsPage(); void AddServerTab(); void AddPlugin(OpenRGBPluginEntry* plugin); void RemovePlugin(OpenRGBPluginEntry* plugin); void setMode(unsigned char mode_val); static bool IsMinimizeOnClose(); void SetDialogMessage(PLogMessage msg); bool DontShowAgain; signals: void ProfileListChanged(); public slots: void changeEvent(QEvent *event) override; void SetTrayIcon(bool tray_icon); void handleAboutToQuit(); protected: void keyPressEvent(QKeyEvent *event) override; private: /*-----------------------------------------------------*\ | Context string | \*-----------------------------------------------------*/ const char * context = "OpenRGBDialog"; /*-----------------------------------------------------*\ | Page pointers | \*-----------------------------------------------------*/ OpenRGBClientInfoPage * ClientInfoPage; OpenRGBPluginsPage * PluginsPage; OpenRGBSystemInfoPage * SMBusToolsPage; OpenRGBSoftwareInfoPage * SoftInfoPage; OpenRGBSupportedDevicesPage * SupportedPage; OpenRGBSettingsPage * SettingsPage; ManualDevicesSettingsPage * manualDevicesPage; PluginManager * plugin_manager = nullptr; bool device_view_showing = false; bool ShowI2CTools = false; bool plugins_loaded = false; /*-----------------------------------------------------*\ | System tray icon and menu | \*-----------------------------------------------------*/ QSystemTrayIcon * trayIcon; QMenu * trayIconMenu; QMenu * profileMenu; QAction * actionExit; QString dialog_message; /*-----------------------------------------------------*\ | User interface | \*-----------------------------------------------------*/ Ui::OpenRGBDialog *ui; void AddSoftwareInfoPage(); void AddSupportedDevicesPage(); void AddSettingsPage(); void AddPluginsPage(); void AddConsolePage(); void AddManualDevicesSettingsPage(); void ClearDevicesList(); void UpdateDevicesList(); void UpdateProfileList(); void closeEvent(QCloseEvent *event) override; bool SelectConfigProfile(const std::string name); void SetDetectionViewState(bool detection_showing); void SaveProfile(); void SaveProfileAs(); void TogglePluginsVisibility(int, QTabWidget*); void ShowLEDView(); void HideLEDView(); void OnSuspend() override; void OnResume() override; private slots: void on_Exit(); void on_LightsOff(); void on_QuickRed(); void on_QuickYellow(); void on_QuickGreen(); void on_QuickCyan(); void on_QuickBlue(); void on_QuickMagenta(); void on_QuickWhite(); void onDeviceListUpdated(); void onDetectionProgressUpdated(); void onDetectionStarted(); void onDetectionEnded(); void on_SetAllDevices(unsigned char red, unsigned char green, unsigned char blue); void on_SaveSizeProfile(); void on_ShowHide(); void onShowDialogMessage(); void on_ReShow(QSystemTrayIcon::ActivationReason reason); void on_ProfileSelected(); void on_ButtonLoadProfile_clicked(); void on_ButtonDeleteProfile_clicked(); void on_ButtonToggleDeviceView_clicked(); void on_ButtonStopDetection_clicked(); void on_ButtonRescan_clicked(); void on_ActionSaveProfile_triggered(); void on_ActionSaveProfileAs_triggered(); void on_MainTabBar_currentChanged(int); void on_InformationTabBar_currentChanged(int); void on_DevicesTabBar_currentChanged(int); void on_SettingsTabBar_currentChanged(int); };