AntiMicroX
Loading...
Searching...
No Matches
mainwindow.h
Go to the documentation of this file.
1/* antimicrox Gamepad to KB+M event mapper
2 * Copyright (C) 2015 Travis Nickles <nickles.travis@gmail.com>
3 * Copyright (C) 2020 Jagoda Górska <juliagoda.pl@protonmail>
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef MAINWINDOW_H
20#define MAINWINDOW_H
21
22#include <SDL2/SDL_joystick.h>
23
24#include <QMainWindow>
25#include <QMap>
26#include <QSystemTrayIcon>
27
28#ifdef CHECK_FOR_UPDATES
29 #include <QNetworkAccessManager>
30 #include <QNetworkReply>
31#endif
32
33class InputDevice;
36class QWidget;
37class QTranslator;
38class AutoProfileInfo;
40class QLocalServer;
41class AboutDialog;
42class QAction;
43class QMenu;
44class QShowEvent;
45class QEvent;
46class QCloseEvent;
47class JoyTabWidget;
48
49namespace Ui {
50class MainWindow;
51}
52
53class MainWindow : public QMainWindow
54{
56
57 public:
59 bool graphical = true, QWidget *parent = nullptr);
61
62 bool getGraphicalStatus();
63
66
69
71
72 bool isKeypadUnlocked();
73
74 protected:
75 virtual void showEvent(QShowEvent *event);
76 virtual void changeEvent(QEvent *event);
77 virtual void closeEvent(QCloseEvent *event);
78
79 bool eventFilter(QObject *obj, QEvent *event) override;
80
81 void retranslateUi();
82 void loadConfigFile(QString fileLocation, int joystickIndex = 0); // MainConfiguration class
83 void loadConfigFile(QString fileLocation, QString controllerID); // MainConfiguration class
84 void unloadCurrentConfig(int joystickIndex = 0); // MainConfiguration class
85 void unloadCurrentConfig(QString controllerID); // MainConfiguration class
86 void changeStartSetNumber(int startSetNumber, QString controllerID); // MainConfiguration class
87 void changeStartSetNumber(int startSetNumber, int joystickIndex = 0); // MainConfiguration class
89
90 signals:
92 void readConfig(int index); // MainConfiguration class
94
95 public slots:
97 void fillButtons();
98 void makeJoystickTabs();
99 void alterConfigFromSettings(); // MainConfiguration class
100 void fillButtonsID(InputDevice *joystick);
103 void hideWindow();
104 void saveAppConfig(); // MainConfiguration class
105 void loadAppConfig(bool forceRefresh = false); // MainConfiguration class
106 void removeJoyTabs();
107 void quitProgram();
108 void changeWindowStatus();
110 void testMappingUpdateNow(int index, InputDevice *device);
112 void addJoyTab(InputDevice *device);
115
116 private slots:
117 void refreshTrayIconMenu();
119 void mainMenuChange(QMenu *tempMenu);
120 void disableFlashActions();
121 void enableFlashActions();
122
123 void joystickTrayShow(QMenu *tempmenu);
126
127 void populateTrayIcon();
128 void openAboutDialog();
131 void openGitHubPage();
132 void openIssuesPage();
133 void openWikiPage();
134 void openCalibration();
135 void propogateNameDisplayStatus(JoyTabWidget *tabwidget, bool displayNames);
136 void changeLanguage(QString language); // MainConfiguration class
140
141#ifdef Q_OS_WIN
142 void restartAsElevated();
143#endif
144
146 void autoprofileLoad(AutoProfileInfo *info); // MainConfiguration class
147 void checkAutoProfileWatcherTimer(); // MainConfiguration class
148
149 private:
154
155 Ui::MainWindow *ui;
156
159
168
173
177
178#ifdef CHECK_FOR_UPDATES
179 QNetworkAccessManager m_network_manager; // Used for checking updates
181 void updateButtonPressed();
182#endif
183};
184
185#endif // MAINWINDOW_H
Definition aboutdialog.h:31
Definition antimicrosettings.h:27
Links information about targeted application with recommended profile.
Definition autoprofileinfo.h:30
Manages auto profile functionality. Allows for profiles to be associated with specific applications.
Definition autoprofilewatcher.h:36
Definition commandlineutility.h:82
Abstract class representing a hardware input device, e.g a joystick or controller.
Definition inputdevice.h:51
Definition joydpadxml.h:27
JoyDPadXml(T *joydpad, QObject *parent=nullptr)
Definition joydpadxml.cpp:17
Widget containing tab representing selected joystick.
Definition joytabwidget.h:51
Definition mainwindow.h:54
QMap< int, QList< QAction * > > const & getProfileActions()
Definition mainwindow.cpp:1806
QAction * hideAction
Definition mainwindow.h:169
bool showTrayIcon
Definition mainwindow.h:175
void autoprofileLoad(AutoProfileInfo *info)
Definition mainwindow.cpp:1541
QSystemTrayIcon * trayIcon
Definition mainwindow.h:160
void joystickTrayShow(QMenu *tempmenu)
Definition mainwindow.cpp:895
void mappingUpdated(QString mapping, InputDevice *device)
CommandLineUtility * m_cmdutility
Definition mainwindow.h:163
void retranslateUi()
Definition mainwindow.cpp:1792
void testMappingUpdateNow(int index, InputDevice *device)
Definition mainwindow.cpp:1433
void saveAppConfig()
Definition mainwindow.cpp:702
void showBatteryLevel(SDL_JoystickPowerLevel powerLevSDL, QString batteryLev, QString percent, InputDevice *device)
Check state of batteries in controllers and notify user (only when powerLevSDL matches current batter...
Definition mainwindow.cpp:1666
void joystickRefreshRequested()
Ui::MainWindow * ui
Definition mainwindow.h:155
void loadAppConfig(bool forceRefresh=false)
Definition mainwindow.cpp:749
bool getGraphicalStatus()
Definition mainwindow.cpp:1782
virtual void showEvent(QShowEvent *event)
Definition mainwindow.cpp:938
void selectControllerJoyTab(QString GUID)
Select appropriate tab that has a device with the specified GUID.
Definition mainwindow.cpp:1723
void showStickAssignmentDialog()
Show abstracted controller dialog for use in SDL 1.2. No longer used for versions of the program runn...
Definition mainwindow.cpp:1282
void refreshTabHelperThreads()
Definition mainwindow.cpp:1794
void enableFlashActions()
Definition mainwindow.cpp:816
void populateTrayIcon()
Definition mainwindow.cpp:425
virtual void closeEvent(QCloseEvent *event)
Check if the program should really quit or if it should be minimized.
Definition mainwindow.cpp:1263
void refreshTrayIconMenu()
Definition mainwindow.cpp:661
void propogateMappingUpdate(QString mapping, InputDevice *device)
Definition mainwindow.cpp:1431
void singleTrayProfileMenuShow()
Display a version of the tray menu that shows all recent profiles for all controllers in one list.
Definition mainwindow.cpp:1300
void openWikiPage()
Definition mainwindow.cpp:1082
void alterConfigFromSettings()
Definition mainwindow.cpp:236
void readConfig(int index)
void quitProgram()
Definition mainwindow.cpp:644
void disableFlashActions()
Definition mainwindow.cpp:758
void fillButtons()
Definition mainwindow.cpp:304
void removeJoyTabs()
Definition mainwindow.cpp:1037
void propogateNameDisplayStatus(JoyTabWidget *tabwidget, bool displayNames)
Definition mainwindow.cpp:1153
void openGitHubPage()
Definition mainwindow.cpp:1078
bool isKeypadUnlocked()
Definition mainwindow.cpp:1808
void profileTrayActionTriggered(QAction *action, bool checked)
Definition mainwindow.cpp:1351
void startJoystickRefresh()
Definition mainwindow.cpp:414
void hideWindow()
Definition mainwindow.cpp:888
void openCalibration()
Definition mainwindow.cpp:1084
void loadConfigFile(QString fileLocation, int joystickIndex=0)
Definition mainwindow.cpp:995
QTranslator * getAppTranslator() const
Definition mainwindow.cpp:1790
void fillButtonsID(InputDevice *joystick)
Definition mainwindow.cpp:344
void openJoystickStatusWindow()
Definition mainwindow.cpp:1057
void checkEachTenMinutesBattery(QMap< SDL_JoystickID, InputDevice * > *joysticks)
Definition mainwindow.cpp:1869
void addJoyTab(InputDevice *device)
Definition mainwindow.cpp:1506
QMenu * trayIconMenu
Definition mainwindow.h:161
QAction * closeAction
Definition mainwindow.h:171
void setAppTranslator(QTranslator *translator)
Definition mainwindow.cpp:1788
QTranslator * m_appTranslator
Definition mainwindow.h:166
QMap< int, QList< QAction * > > profileActions
Definition mainwindow.h:158
void openAboutDialog()
Definition mainwindow.cpp:993
void makeJoystickTabs()
Definition mainwindow.cpp:306
void changeLanguage(QString language)
Change language used by the application.
Definition mainwindow.cpp:1250
QMap< SDL_JoystickID, InputDevice * > * m_joysticks
Definition mainwindow.h:157
void openKeyCheckerDialog()
Definition mainwindow.cpp:1072
QTranslator * getTranslator() const
Definition mainwindow.cpp:1786
void openIssuesPage()
Definition mainwindow.cpp:1080
void removeJoyTab(SDL_JoystickID deviceID)
Definition mainwindow.cpp:1462
void setTranslator(QTranslator *translator)
Definition mainwindow.cpp:1784
virtual void changeEvent(QEvent *event)
Definition mainwindow.cpp:968
void unloadCurrentConfig(int joystickIndex=0)
Definition mainwindow.cpp:1111
AntiMicroSettings * m_settings
Definition mainwindow.h:164
void convertGUIDtoUniqueID(InputDevice *currentDevice, QString controlEntryLastSelectedGUID)
Definition mainwindow.cpp:1826
QAction * updateJoy
Definition mainwindow.h:172
void trayIconClickAction(QSystemTrayIcon::ActivationReason reason)
Definition mainwindow.cpp:674
void checkAutoProfileWatcherTimer()
Definition mainwindow.cpp:1645
void handleInstanceDisconnect()
Definition mainwindow.cpp:1051
AutoProfileWatcher * appWatcher
Definition mainwindow.h:167
~MainWindow()
Definition mainwindow.cpp:223
void openMainSettingsDialog()
Build list of current input devices and pass it to settings dialog instance. Open Settings dialog.
Definition mainwindow.cpp:1215
bool eventFilter(QObject *obj, QEvent *event) override
Definition mainwindow.cpp:1816
void mainMenuChange(QMenu *tempMenu)
Definition mainwindow.cpp:688
void checkHideEmptyOption()
Definition mainwindow.cpp:1379
void fillButtonsMap(QMap< SDL_JoystickID, InputDevice * > *joysticks)
Definition mainwindow.cpp:351
bool signalDisconnect
Definition mainwindow.h:174
bool m_graphical
Definition mainwindow.h:176
void changeStartSetNumber(int startSetNumber, QString controllerID)
Definition mainwindow.cpp:1168
QTranslator * m_translator
Definition mainwindow.h:165
AboutDialog * aboutDialog
Definition mainwindow.h:162
QAction * restoreAction
Definition mainwindow.h:170
void changeWindowStatus()
Definition mainwindow.cpp:1754
Definition aboutdialog.h:26