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 void updateMenuOptions();
149
150 private:
155
156 Ui::MainWindow *ui;
157
160
169
174
178
179#ifdef CHECK_FOR_UPDATES
180 QNetworkAccessManager m_network_manager; // Used for checking updates
182 void updateButtonPressed();
183#endif
184};
185
186#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:1828
QAction * hideAction
Definition mainwindow.h:170
bool showTrayIcon
Definition mainwindow.h:176
void autoprofileLoad(AutoProfileInfo *info)
Definition mainwindow.cpp:1542
QSystemTrayIcon * trayIcon
Definition mainwindow.h:161
void joystickTrayShow(QMenu *tempmenu)
Definition mainwindow.cpp:896
void mappingUpdated(QString mapping, InputDevice *device)
CommandLineUtility * m_cmdutility
Definition mainwindow.h:164
void retranslateUi()
Definition mainwindow.cpp:1814
void testMappingUpdateNow(int index, InputDevice *device)
Definition mainwindow.cpp:1434
void saveAppConfig()
Definition mainwindow.cpp:703
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:1688
void joystickRefreshRequested()
Ui::MainWindow * ui
Definition mainwindow.h:156
void loadAppConfig(bool forceRefresh=false)
Definition mainwindow.cpp:750
bool getGraphicalStatus()
Definition mainwindow.cpp:1804
virtual void showEvent(QShowEvent *event)
Definition mainwindow.cpp:939
void selectControllerJoyTab(QString GUID)
Select appropriate tab that has a device with the specified GUID.
Definition mainwindow.cpp:1745
void showStickAssignmentDialog()
Show abstracted controller dialog for use in SDL 1.2. No longer used for versions of the program runn...
Definition mainwindow.cpp:1283
void refreshTabHelperThreads()
Definition mainwindow.cpp:1816
void enableFlashActions()
Definition mainwindow.cpp:817
void populateTrayIcon()
Definition mainwindow.cpp:426
virtual void closeEvent(QCloseEvent *event)
Check if the program should really quit or if it should be minimized.
Definition mainwindow.cpp:1264
void refreshTrayIconMenu()
Definition mainwindow.cpp:662
void propogateMappingUpdate(QString mapping, InputDevice *device)
Definition mainwindow.cpp:1432
void singleTrayProfileMenuShow()
Display a version of the tray menu that shows all recent profiles for all controllers in one list.
Definition mainwindow.cpp:1301
void openWikiPage()
Definition mainwindow.cpp:1083
void alterConfigFromSettings()
Definition mainwindow.cpp:237
void readConfig(int index)
void quitProgram()
Definition mainwindow.cpp:645
void disableFlashActions()
Definition mainwindow.cpp:759
void fillButtons()
Definition mainwindow.cpp:305
void removeJoyTabs()
Definition mainwindow.cpp:1038
void propogateNameDisplayStatus(JoyTabWidget *tabwidget, bool displayNames)
Definition mainwindow.cpp:1154
void openGitHubPage()
Definition mainwindow.cpp:1079
bool isKeypadUnlocked()
Definition mainwindow.cpp:1830
void profileTrayActionTriggered(QAction *action, bool checked)
Definition mainwindow.cpp:1352
void startJoystickRefresh()
Definition mainwindow.cpp:415
void hideWindow()
Definition mainwindow.cpp:889
void openCalibration()
Definition mainwindow.cpp:1085
void loadConfigFile(QString fileLocation, int joystickIndex=0)
Definition mainwindow.cpp:996
QTranslator * getAppTranslator() const
Definition mainwindow.cpp:1812
void fillButtonsID(InputDevice *joystick)
Definition mainwindow.cpp:345
void openJoystickStatusWindow()
Definition mainwindow.cpp:1058
void checkEachTenMinutesBattery(QMap< SDL_JoystickID, InputDevice * > *joysticks)
Definition mainwindow.cpp:1884
void addJoyTab(InputDevice *device)
Definition mainwindow.cpp:1507
QMenu * trayIconMenu
Definition mainwindow.h:162
QAction * closeAction
Definition mainwindow.h:172
void setAppTranslator(QTranslator *translator)
Definition mainwindow.cpp:1810
QTranslator * m_appTranslator
Definition mainwindow.h:167
QMap< int, QList< QAction * > > profileActions
Definition mainwindow.h:159
void openAboutDialog()
Definition mainwindow.cpp:994
void makeJoystickTabs()
Definition mainwindow.cpp:307
void changeLanguage(QString language)
Change language used by the application.
Definition mainwindow.cpp:1251
QMap< SDL_JoystickID, InputDevice * > * m_joysticks
Definition mainwindow.h:158
void openKeyCheckerDialog()
Definition mainwindow.cpp:1073
QTranslator * getTranslator() const
Definition mainwindow.cpp:1808
void openIssuesPage()
Definition mainwindow.cpp:1081
void removeJoyTab(SDL_JoystickID deviceID)
Definition mainwindow.cpp:1463
void setTranslator(QTranslator *translator)
Definition mainwindow.cpp:1806
virtual void changeEvent(QEvent *event)
Definition mainwindow.cpp:969
void unloadCurrentConfig(int joystickIndex=0)
Definition mainwindow.cpp:1112
AntiMicroSettings * m_settings
Definition mainwindow.h:165
void convertGUIDtoUniqueID(InputDevice *currentDevice, QString controlEntryLastSelectedGUID)
Definition mainwindow.cpp:1848
QAction * updateJoy
Definition mainwindow.h:173
void updateMenuOptions()
TODO: Check if method is save to remove.
Definition mainwindow.cpp:1670
void trayIconClickAction(QSystemTrayIcon::ActivationReason reason)
Definition mainwindow.cpp:675
void checkAutoProfileWatcherTimer()
Definition mainwindow.cpp:1646
void handleInstanceDisconnect()
Definition mainwindow.cpp:1052
AutoProfileWatcher * appWatcher
Definition mainwindow.h:168
~MainWindow()
Definition mainwindow.cpp:224
void openMainSettingsDialog()
Build list of current input devices and pass it to settings dialog instance. Open Settings dialog.
Definition mainwindow.cpp:1216
bool eventFilter(QObject *obj, QEvent *event) override
Definition mainwindow.cpp:1838
void mainMenuChange(QMenu *tempMenu)
Definition mainwindow.cpp:689
void checkHideEmptyOption()
Definition mainwindow.cpp:1380
void fillButtonsMap(QMap< SDL_JoystickID, InputDevice * > *joysticks)
Definition mainwindow.cpp:352
bool signalDisconnect
Definition mainwindow.h:175
bool m_graphical
Definition mainwindow.h:177
void changeStartSetNumber(int startSetNumber, QString controllerID)
Definition mainwindow.cpp:1169
QTranslator * m_translator
Definition mainwindow.h:166
AboutDialog * aboutDialog
Definition mainwindow.h:163
QAction * restoreAction
Definition mainwindow.h:171
void changeWindowStatus()
Definition mainwindow.cpp:1776
Definition aboutdialog.h:26