AntiMicroX
Loading...
Searching...
No Matches
joytabwidget.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 JOYTABWIDGET_H
20#define JOYTABWIDGET_H
21
22#include <QLabel>
23#include <QWidget>
24
25#include <SDL_joystick.h>
26
28
29class InputDevice;
31class QEvent;
32class SetJoystick;
33class QVBoxLayout;
34class QHBoxLayout;
35class QGridLayout;
36class QPushButton;
37class QComboBox;
38class QSpacerItem;
39class AxisEditDialog;
40class QAction;
41class QMenu;
42class QStackedWidget;
43class QSettings;
44
50class JoyTabWidget : public QWidget
51{
53
54 public:
55 explicit JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, QWidget *parent = nullptr);
56
57 void saveSettings(); // JoyTabSettings class
58 void loadSettings(bool forceRefresh = false); // JoyTabSettings class
59 void setCurrentConfig(int index); // JoyTabSettings class
60 void unloadConfig(); // JoyTabSettings class
64
65 bool isDisplayingNames();
67 bool static changesNotSaved();
68
69 int getCurrentConfigIndex(); // JoyTabSettings class
70
71 QHash<int, QString> *recentConfigs(); // JoyTabSettings class
72
73 QString getCurrentConfigName(); // JoyTabSettings class
74 QString getConfigName(int index);
75
77
78 protected:
79 virtual void changeEvent(QEvent *event);
81 void retranslateUi();
86 void fillSetButtons(SetJoystick *set); // JoyTabWidgetSets class
87 void removeSetButtons(SetJoystick *set); // JoyTabWidgetSets class
88 bool isKeypadUnlocked();
89
90 static const int DEFAULTNUMBERPROFILES = 5;
91
92 signals:
93 void joystickConfigChanged(int index); // JoyTabSettings class
98
99 public slots:
100 void openConfigFileDialog(); // JoyTabSettings class
101 void fillButtons(); // JoyTabWidgetSets class
102 void saveDeviceSettings(bool sync = false); // JoyTabSettings class
103 void loadDeviceSettings(); // JoyTabSettings class
104 void changeNameDisplay(bool displayNames);
105 void changeCurrentSet(int index); // JoyTabWidgetSets class
106 void loadConfigFile(QString fileLocation); // JoyTabSettings class
107 void refreshButtons();
108
109 private slots:
110 void saveConfigFile(); // JoyTabSettings class
111 void resetJoystick();
112 void saveAsConfig(); // JoyTabSettings class
113 void removeConfig(); // JoyTabSettings class
114 void changeJoyConfig(int index); // JoyTabSettings class
115 void showAxisDialog();
116 void showButtonDialog();
118 void showQuickSetDialog();
119 void showKeyDelayDialog();
120 void showSetNamesDialog(); // JoyTabWidgetSets class
121 void toggleNames();
122 void updateBatteryIcon();
123
124 void changeSetOne(); // JoyTabWidgetSets class
125 void changeSetTwo(); // JoyTabWidgetSets class
126 void changeSetThree(); // JoyTabWidgetSets class
127 void changeSetFour(); // JoyTabWidgetSets class
128 void changeSetFive(); // JoyTabWidgetSets class
129 void changeSetSix(); // JoyTabWidgetSets class
130 void changeSetSeven(); // JoyTabWidgetSets class
131 void changeSetEight(); // JoyTabWidgetSets class
134 void checkForUnsavedProfile(int newindex = -1);
135
136 void checkStickDisplay();
137 void checkSensorDisplay();
140 void checkButtonDisplay();
141
148 void refreshCopySetActions(); // JoyTabWidgetSets class
149 void performSetCopy(); // JoyTabWidgetSets class
150 void disableCopyCurrentSet(); // JoyTabWidgetSets class
151 void refreshSetButtons(); // JoyTabWidgetSets class
154
155 private:
159 QPushButton *removeButton;
160 QPushButton *loadButton;
161 QPushButton *saveButton;
162 QPushButton *resetButton;
163 QPushButton *namesPushButton;
164 QPushButton *saveAsButton;
165 QPushButton *delayButton;
167 QGridLayout *gridLayout;
168 QGridLayout *gridLayout2;
169 QGridLayout *gridLayout3;
170 QGridLayout *gridLayout4;
171 QGridLayout *gridLayout5;
172 QGridLayout *gridLayout6;
173 QGridLayout *gridLayout7;
174 QGridLayout *gridLayout8;
175
180
181 QPushButton *setPushButton1;
182 QPushButton *setPushButton2;
183 QPushButton *setPushButton3;
184 QPushButton *setPushButton4;
185 QPushButton *setPushButton5;
186 QPushButton *setPushButton6;
187 QPushButton *setPushButton7;
188 QPushButton *setPushButton8;
189
190 QPushButton *setsMenuButton;
200
204 QPushButton *quickSetPushButton;
208 QWidget *page;
209 QWidget *page_2;
210 QWidget *page_3;
211 QWidget *page_4;
212 QWidget *page_5;
213 QWidget *page_6;
214 QWidget *page_7;
215 QWidget *page_8;
216 QPushButton *pushButton;
218
221 static bool changedNotSaved;
224 bool hideEmptyButtons = false;
226
228
231};
232
233#endif // JOYTABWIDGET_H
Definition antimicrosettings.h:27
Definition axiseditdialog.h:33
Abstract class representing a hardware input device, e.g a joystick or controller.
Definition inputdevice.h:51
Definition joydpadxml.h:27
Definition joytabwidgethelper.h:29
Widget containing tab representing selected joystick.
Definition joytabwidget.h:51
void fillSetButtons(SetJoystick *set)
Definition joytabwidget.cpp:1895
void changeCurrentSet(int index)
Definition joytabwidget.cpp:1238
void showStickAssignmentDialog()
Definition joytabwidget.cpp:1337
static const int DEFAULTNUMBERPROFILES
Definition joytabwidget.h:90
QGridLayout * gridLayout
Definition joytabwidget.h:167
QPushButton * namesPushButton
Definition joytabwidget.h:163
QSpacerItem * spacer3
Definition joytabwidget.h:178
QPushButton * setPushButton2
Definition joytabwidget.h:182
QHash< int, QString > * recentConfigs()
Definition joytabwidget.cpp:1211
void changeSetFive()
Definition joytabwidget.cpp:1329
void refreshHelperThread()
Definition joytabwidget.cpp:2555
QHBoxLayout * horizontalLayout_3
Definition joytabwidget.h:202
void disableCopyCurrentSet()
Definition joytabwidget.cpp:2527
QGridLayout * gridLayout5
Definition joytabwidget.h:171
void editCurrentProfileItemText(QString text)
Definition joytabwidget.cpp:2440
void checkStickDisplay()
Definition joytabwidget.cpp:1764
QPushButton * quickSetPushButton
Definition joytabwidget.h:204
QPushButton * stickAssignPushButton
Definition joytabwidget.h:203
QPushButton * setPushButton4
Definition joytabwidget.h:184
QPushButton * saveButton
Definition joytabwidget.h:161
QGridLayout * gridLayout7
Definition joytabwidget.h:173
QAction * setAction5
Definition joytabwidget.h:195
void checkStickEmptyDisplay()
Definition joytabwidget.cpp:1823
InputDevice * getJoystick()
Definition joytabwidget.cpp:1417
void unloadConfig()
Definition joytabwidget.cpp:1439
void joystickConfigChanged(int index)
QAction * setAction2
Definition joytabwidget.h:192
bool discardUnsavedProfileChanges()
Definition joytabwidget.cpp:1669
QGridLayout * gridLayout6
Definition joytabwidget.h:172
QStackedWidget * stackedWidget_2
Definition joytabwidget.h:207
void convToUniqueIDControllerGroupSett(QSettings *sett, QString guidControllerSett, QString uniqueControllerSett)
Definition joytabwidget.cpp:2567
AntiMicroSettings * m_settings
Definition joytabwidget.h:222
void showQuickSetDialog()
Definition joytabwidget.cpp:1384
void disconnectCheckUnsavedEvent()
Definition joytabwidget.cpp:1746
void changeJoyConfig(int index)
Definition joytabwidget.cpp:897
QPushButton * setPushButton7
Definition joytabwidget.h:187
void changeSetThree()
Definition joytabwidget.cpp:1325
QPushButton * removeButton
Definition joytabwidget.h:159
void removeCurrentButtons()
Definition joytabwidget.cpp:1405
QTimer * m_battery_updater
Definition joytabwidget.h:230
void checkAxisButtonDisplay()
Definition joytabwidget.cpp:1800
void toggleNames()
Definition joytabwidget.cpp:1430
void checkForUnsavedProfile(int newindex=-1)
Definition joytabwidget.cpp:1604
void checkSensorEmptyDisplay()
Definition joytabwidget.cpp:1837
bool displayingNames
Definition joytabwidget.h:220
void setCurrentConfig(int index)
Definition joytabwidget.cpp:1223
JoyTabWidgetHelper tabHelper
Definition joytabwidget.h:227
QString getConfigName(int index)
Definition joytabwidget.cpp:1235
void changeSetSeven()
Definition joytabwidget.cpp:1333
QPushButton * resetButton
Definition joytabwidget.h:162
virtual void changeEvent(QEvent *event)
Definition joytabwidget.cpp:2557
void saveConfigFile()
Definition joytabwidget.cpp:627
void performSetCopy()
Definition joytabwidget.cpp:2486
QPushButton * setPushButton1
Definition joytabwidget.h:181
QGridLayout * gridLayout3
Definition joytabwidget.h:169
QGridLayout * gridLayout2
Definition joytabwidget.h:168
QWidget * page_6
Definition joytabwidget.h:213
QSpacerItem * verticalSpacer_2
Definition joytabwidget.h:206
void removeProfileEditNotification()
Definition joytabwidget.cpp:1548
QAction * setAction1
Definition joytabwidget.h:191
void openConfigFileDialog()
Definition joytabwidget.cpp:525
void saveAsConfig()
Definition joytabwidget.cpp:794
int getCurrentConfigIndex()
Definition joytabwidget.cpp:1231
void loadDeviceSettings()
Definition joytabwidget.cpp:1459
void retranslateUi()
Definition joytabwidget.cpp:1561
QAction * setAction7
Definition joytabwidget.h:197
void changeSetTwo()
Definition joytabwidget.cpp:1323
QHBoxLayout * configHorizontalLayout
Definition joytabwidget.h:157
void displayProfileEditNotification()
Definition joytabwidget.cpp:1539
void changeSetSix()
Definition joytabwidget.cpp:1331
QWidget * page_7
Definition joytabwidget.h:214
QMenu * copySetMenu
Definition joytabwidget.h:199
QPushButton * loadButton
Definition joytabwidget.h:160
QComboBox * configBox
Definition joytabwidget.h:166
QString getCurrentConfigName()
Definition joytabwidget.cpp:1233
void propogateMappingUpdate(QString mapping, InputDevice *device)
Definition joytabwidget.cpp:2553
void checkButtonDisplay()
Definition joytabwidget.cpp:1812
QGridLayout * gridLayout4
Definition joytabwidget.h:170
QPushButton * setPushButton3
Definition joytabwidget.h:183
QWidget * page
Definition joytabwidget.h:208
QAction * setAction3
Definition joytabwidget.h:193
void showKeyDelayDialog()
Definition joytabwidget.cpp:1391
static bool changedNotSaved
Definition joytabwidget.h:221
bool isDisplayingNames()
Definition joytabwidget.cpp:1465
QPushButton * pushButton
Definition joytabwidget.h:216
void removeSetButtons(SetJoystick *set)
Definition joytabwidget.cpp:2307
void saveDeviceSettings(bool sync=false)
Definition joytabwidget.cpp:1441
void changeSetEight()
Definition joytabwidget.cpp:1335
void loadConfigFile(QString fileLocation)
Definition joytabwidget.cpp:1345
QWidget * page_3
Definition joytabwidget.h:210
void removeConfig()
Definition joytabwidget.cpp:1419
void refreshSetButtons()
Definition joytabwidget.cpp:1475
QLabel * batteryIcon
Definition joytabwidget.h:158
QPushButton * setPushButton6
Definition joytabwidget.h:186
void forceTabUnflash(JoyTabWidget *tabWidget)
AxisEditDialog * axisDialog
Definition joytabwidget.h:179
void disconnectMainComboBoxEvents()
Definition joytabwidget.cpp:1728
QSpacerItem * spacer1
Definition joytabwidget.h:176
QAction * setAction6
Definition joytabwidget.h:196
void joystickAxisRefreshLabels(int axisIndex)
void checkSensorDisplay()
Definition joytabwidget.cpp:1776
QPushButton * setPushButton5
Definition joytabwidget.h:185
void updateBatteryIcon()
Definition joytabwidget.cpp:2577
void mappingUpdated(QString mapping, InputDevice *device)
QWidget * page_8
Definition joytabwidget.h:215
QPushButton * setPushButton8
Definition joytabwidget.h:188
void namesDisplayChanged(bool status)
void showSetNamesDialog()
Definition joytabwidget.cpp:1397
void checkAxisButtonEmptyDisplay()
Definition joytabwidget.cpp:1863
int comboBoxIndex
Definition joytabwidget.h:223
QString oldProfileName
Definition joytabwidget.h:225
QHBoxLayout * horizontalLayout_2
Definition joytabwidget.h:201
InputDevice * m_joystick
Definition joytabwidget.h:219
void showAxisDialog()
Definition joytabwidget.cpp:618
QPushButton * delayButton
Definition joytabwidget.h:165
QAction * setAction4
Definition joytabwidget.h:194
QPushButton * setsMenuButton
Definition joytabwidget.h:190
void reconnectMainComboBoxEvents()
Definition joytabwidget.cpp:1737
void fillButtons()
Create and render all push buttons corresponding to joystick controls for all sets.
Definition joytabwidget.cpp:585
void refreshCopySetActions()
Definition joytabwidget.cpp:2459
static bool changesNotSaved()
Definition joytabwidget.cpp:1726
QAction * setAction8
Definition joytabwidget.h:198
void reconnectCheckUnsavedEvent()
Definition joytabwidget.cpp:1752
QPushButton * gameControllerMappingPushButton
Definition joytabwidget.h:205
QWidget * page_2
Definition joytabwidget.h:209
QPushButton * saveAsButton
Definition joytabwidget.h:164
void openGameControllerMappingWindow()
Definition joytabwidget.cpp:2546
QSpacerItem * verticalSpacer_3
Definition joytabwidget.h:217
QWidget * page_4
Definition joytabwidget.h:211
void showButtonDialog()
Definition joytabwidget.cpp:599
void resetJoystick()
Definition joytabwidget.cpp:725
bool hideEmptyButtons
Definition joytabwidget.h:224
void checkButtonEmptyDisplay()
Definition joytabwidget.cpp:1874
QGridLayout * gridLayout8
Definition joytabwidget.h:174
SDL_JoystickPowerLevel m_old_power_level
Definition joytabwidget.h:229
void changeSetFour()
Definition joytabwidget.cpp:1327
void changeNameDisplay(bool displayNames)
Definition joytabwidget.cpp:1467
void checkDPadButtonEmptyDisplay()
Definition joytabwidget.cpp:1849
bool isKeypadUnlocked()
Definition joytabwidget.cpp:517
QVBoxLayout * verticalLayout
Definition joytabwidget.h:156
void changeSetOne()
Definition joytabwidget.cpp:1321
QWidget * page_5
Definition joytabwidget.h:212
void checkDPadButtonDisplay()
Definition joytabwidget.cpp:1788
void checkHideEmptyOption()
Definition joytabwidget.cpp:1885
QSpacerItem * spacer2
Definition joytabwidget.h:177
void loadSettings(bool forceRefresh=false)
Definition joytabwidget.cpp:1098
void refreshButtons()
Definition joytabwidget.cpp:1758
void saveSettings()
Definition joytabwidget.cpp:974
A set of mapped events which can by switched by a controller event. Contains controller input objects...
Definition setjoystick.h:40