AntiMicroX
buttoneditdialog.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 BUTTONEDITDIALOGTWO_H
20 #define BUTTONEDITDIALOGTWO_H
21 
22 #include <QDialog>
23 
25 
26 class JoyButton;
27 class JoyButtonSlot;
28 class QWidget;
29 class QKeyEvent;
30 class InputDevice;
31 class QuickSetDialog;
32 
33 namespace Ui {
34 class ButtonEditDialog;
35 }
36 
37 class ButtonEditDialog : public QDialog
38 {
39  Q_OBJECT
40 
41  public:
42  explicit ButtonEditDialog(JoyButton *button, InputDevice *joystick, bool isNumKeypad,
43  QWidget *parent = nullptr); // called for chosen button
44  explicit ButtonEditDialog(InputDevice *joystick, bool isNumKeypad,
45  QWidget *parent = nullptr); // Accessed by pressing the "Quick Set" button
46  ButtonEditDialog(QWidget *parent = 0);
48 
49  static ButtonEditDialog *getInstance();
52  void refreshForLastBtn();
53  void invokeMethodLastBtn(JoyButton *lastJoyBtn, ButtonEditDialogHelper *helper, const char *invokeString, int code,
54  int alias, int index, JoyButtonSlot::JoySlotInputAction mode, bool withClear, bool withTrue,
55  Qt::ConnectionType connTypeForAlias, Qt::ConnectionType connTypeForNothing,
56  Qt::ConnectionType connTypeForAll);
57 
58  protected:
59  virtual void keyReleaseEvent(QKeyEvent *event);
60  virtual void keyPressEvent(QKeyEvent *event);
61 
62  private:
64 
66  Ui::ButtonEditDialog *ui;
68 
69  QElapsedTimer buttonEventInterval;
76 
78 
79  signals:
80  void advancedDialogOpened();
81  void sendTempSlotToAdvanced(JoyButtonSlot *tempslot);
82  void keyGrabbed(JoyButtonSlot *tempslot);
83  void selectionCleared();
84  void selectionFinished();
85  void buttonDialogClosed();
86 
87  private slots:
88  void nullifyDialogPointer();
90  void changeToggleSetting();
91  void changeTurboSetting();
93  void openAdvancedDialog();
94  void closedAdvancedDialog();
95  void createTempSlot(int keycode, int alias);
96 
97  void checkTurboSetting(bool state);
98  void setTurboButtonEnabled(bool state);
99  void processSlotAssignment(JoyButtonSlot *tempslot);
100  void clearButtonSlots();
101  void sendSelectionFinished();
103  void checkForKeyboardWidgetFocus(QWidget *old, QWidget *now);
104 };
105 
106 #endif // BUTTONEDITDIALOGTWO_H
JoyButton::getToggleState
bool getToggleState()
Definition: joybutton.cpp:409
ButtonEditDialog::setupVirtualKeyboardMouseTabWidget
void setupVirtualKeyboardMouseTabWidget()
Definition: buttoneditdialog.cpp:161
ButtonEditDialog::ignoreRelease
bool ignoreRelease
Definition: buttoneditdialog.h:72
ButtonEditDialog::openAdvancedDialog
void openAdvancedDialog()
Definition: buttoneditdialog.cpp:351
QuickSetDialog::getLastPressedButton
JoyButton * getLastPressedButton() const
Definition: quicksetdialog.cpp:472
QuickSetDialog
Definition: quicksetdialog.h:38
JoyButton::setButtonName
void setButtonName(QString tempName)
Definition: joybutton.cpp:3588
ButtonEditDialog::setTurboButtonEnabled
void setTurboButtonEnabled(bool state)
Definition: buttoneditdialog.cpp:424
ButtonEditDialog::getHelperLocal
ButtonEditDialogHelper & getHelperLocal()
Definition: buttoneditdialog.cpp:629
code
the intent is to exercise the right to control the distribution of derivative or collective works based on the Library In mere aggregation of another work not based on the Library with the you must alter all the notices that refer to this so that they refer to the ordinary GNU General Public instead of to this it is irreversible for that so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy This option is useful when you wish to copy part of the code of the Library into a program that is not a library You may copy and distribute the which must be distributed under the terms of Sections and above on a medium customarily used for software interchange If distribution of object code is made by offering access to copy from a designated then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code
Definition: lgpl-2.1.txt:237
SetJoystick::getIndex
int getIndex() const
Definition: setjoystick.cpp:507
ButtonEditDialog::invokeMethodLastBtn
void invokeMethodLastBtn(JoyButton *lastJoyBtn, ButtonEditDialogHelper *helper, const char *invokeString, int code, int alias, int index, JoyButtonSlot::JoySlotInputAction mode, bool withClear, bool withTrue, Qt::ConnectionType connTypeForAlias, Qt::ConnectionType connTypeForNothing, Qt::ConnectionType connTypeForAll)
Definition: buttoneditdialog.cpp:577
VirtualKeyboardMouseWidget::selectionCleared
void selectionCleared()
ButtonEditDialog::buttonDialogClosed
void buttonDialogClosed()
ButtonEditDialog::keyReleaseEvent
virtual void keyReleaseEvent(QKeyEvent *event)
Definition: buttoneditdialog.cpp:182
VirtualKeyboardMouseWidget::selectionMade
void selectionMade(int keycode, int alias)
JoyButton::setUseTurbo
void setUseTurbo(bool useTurbo)
Definition: joybutton.cpp:1559
ButtonEditDialog::nullifyDialogPointer
void nullifyDialogPointer()
Definition: buttoneditdialog.cpp:513
ButtonEditDialog::getInstance
static ButtonEditDialog * getInstance()
Definition: buttoneditdialog.cpp:113
virtualkeyboardmousewidget.h
JoyButton::getPartialName
virtual QString getPartialName(bool forceFullFormat=false, bool displayNames=false) const
Definition: joybutton.cpp:1601
SetJoystick::getName
QString getName() const
Definition: setjoystick.cpp:948
AdvanceButtonDialog::placeNewSlot
void placeNewSlot(JoyButtonSlot *slot)
Definition: advancebuttondialog.cpp:850
ButtonEditDialog::createTempSlot
void createTempSlot(int keycode, int alias)
Definition: buttoneditdialog.cpp:402
JoyButtonSlot::getSlotMode
JoySlotInputAction getSlotMode() const
Definition: joybuttonslot.cpp:114
antkeymapper.h
JoyButtonSlot::JoyMouseButton
@ JoyMouseButton
Definition: joybuttonslot.h:45
ButtonEditDialog::advancedDialogOpened
void advancedDialogOpened()
X11KeyCodeToX11KeySym
int X11KeyCodeToX11KeySym(int keycode)
Definition: event.cpp:745
VirtualKeyboardMouseWidget::establishVirtualKeyboardAdvancedSignalConnections
void establishVirtualKeyboardAdvancedSignalConnections()
Definition: virtualkeyboardmousewidget.cpp:837
ButtonEditDialog
Definition: buttoneditdialog.h:37
ButtonEditDialog::keyGrabbed
void keyGrabbed(JoyButtonSlot *tempslot)
InputDevice
Abstract class representing a hardware input device, e.g a joystick or controller.
Definition: inputdevice.h:50
ButtonEditDialog::refreshSlotSummaryLabel
void refreshSlotSummaryLabel()
Definition: buttoneditdialog.cpp:315
ButtonEditDialog::sendTempSlotToAdvanced
void sendTempSlotToAdvanced(JoyButtonSlot *tempslot)
ButtonEditDialog::changeToggleSetting
void changeToggleSetting()
Definition: buttoneditdialog.cpp:323
ButtonEditDialog::processSlotAssignment
void processSlotAssignment(JoyButtonSlot *tempslot)
Definition: buttoneditdialog.cpp:440
SetJoystick
A set of mapped events which can by switched by a controller event. Contains controller input objects...
Definition: setjoystick.h:39
JoyButton::getButtonName
QString getButtonName()
Definition: joybutton.cpp:3598
ButtonEditDialog::ButtonEditDialog
ButtonEditDialog(JoyButton *button, InputDevice *joystick, bool isNumKeypad, QWidget *parent=nullptr)
Definition: buttoneditdialog.cpp:93
ButtonEditDialog::updateWindowTitleButtonName
void updateWindowTitleButtonName()
Definition: buttoneditdialog.cpp:484
quicksetdialog.h
JoyButton::toggleChanged
void toggleChanged(bool state)
AdvanceButtonDialog::turboButtonEnabledChange
void turboButtonEnabledChange(bool state)
ButtonEditDialog::joystick
InputDevice * joystick
Definition: buttoneditdialog.h:70
winextras.h
ButtonEditDialog::setUpLastJoyButton
void setUpLastJoyButton(JoyButton *)
Definition: buttoneditdialog.cpp:627
JoyButton::getParentSet
SetJoystick * getParentSet()
Definition: joybutton.cpp:3976
QtKeyMapperBase::returnQtKey
virtual int returnQtKey(int key, int scancode=0)
Definition: qtkeymapperbase.cpp:32
ButtonEditDialog::currentQuickDialog
QuickSetDialog * currentQuickDialog
Definition: buttoneditdialog.h:71
JoyButton::isUsingTurbo
bool isUsingTurbo()
Definition: joybutton.cpp:1581
VirtualKeyboardMouseWidget::establishVirtualKeyboardSingleSignalConnections
void establishVirtualKeyboardSingleSignalConnections()
Definition: virtualkeyboardmousewidget.cpp:810
JoyButtonSlot::JoyMouseMovement
@ JoyMouseMovement
Definition: joybuttonslot.h:46
JoyButtonSlot
Represents action which can be performed after pressing button.
Definition: joybuttonslot.h:37
advancebuttondialog.h
ButtonEditDialog::changeTurboSetting
void changeTurboSetting()
Definition: buttoneditdialog.cpp:333
ButtonEditDialog::~ButtonEditDialog
~ButtonEditDialog()
Definition: buttoneditdialog.cpp:129
BaseEventHandler
Base class for input event handlers.
Definition: baseeventhandler.h:32
Ui
Definition: aboutdialog.h:26
AntKeyMapper::returnVirtualKey
int returnVirtualKey(int qkey)
Definition: antkeymapper.cpp:104
eventhandlerfactory.h
ButtonEditDialog::closedAdvancedDialog
void closedAdvancedDialog()
Definition: buttoneditdialog.cpp:426
JoyButtonSlot::JoyKeyboard
@ JoyKeyboard
Definition: joybuttonslot.h:44
InputDevice::getSettings
AntiMicroSettings * getSettings()
Definition: inputdevice.cpp:1386
ButtonEditDialog::instance
static ButtonEditDialog * instance
Definition: buttoneditdialog.h:77
JoyButton::getAssignedSlots
QList< JoyButtonSlot * > * getAssignedSlots()
Definition: joybutton.cpp:2390
AntKeyMapper::getInstance
static AntKeyMapper * getInstance(QString handler="")
Definition: antkeymapper.cpp:80
ButtonEditDialog::keyPressEvent
virtual void keyPressEvent(QKeyEvent *event)
Definition: buttoneditdialog.cpp:136
BACKEND_ELSE_IF
#define BACKEND_ELSE_IF
Definition: eventhandlerfactory.h:69
ButtonEditDialog::selectionFinished
void selectionFinished()
WinExtras::correctVirtualKey
static unsigned int correctVirtualKey(unsigned int scancode, unsigned int virtualkey)
Obtain a more specific virtual key (unsigned int) for a key grab event.
Definition: winextras.cpp:164
ButtonEditDialogHelper
Definition: buttoneditdialoghelper.h:26
SetJoystick::getRealIndex
int getRealIndex() const
Definition: setjoystick.cpp:509
JoyButton::getActionName
QString getActionName()
Definition: joybutton.cpp:3586
VirtualKeyboardMouseWidget
Widget visualizing possible keyboard and mouse assignments.
Definition: virtualkeyboardmousewidget.h:40
event.h
buttoneditdialoghelper.h
AdvanceButtonDialog
Definition: advancebuttondialog.h:35
inputdevice.h
joybutton.h
ButtonEditDialog::checkTurboSetting
void checkTurboSetting(bool state)
Definition: buttoneditdialog.cpp:408
ButtonEditDialog::lastJoyButton
JoyButton * lastJoyButton
Definition: buttoneditdialog.h:75
JoyButtonSlot::getSlotCode
int getSlotCode() const
Definition: joybuttonslot.cpp:110
JoyButton::setActionName
void setActionName(QString tempName)
Definition: joybutton.cpp:3576
ButtonEditDialog::clearButtonSlots
void clearButtonSlots()
Definition: buttoneditdialog.cpp:472
EventHandlerFactory::handler
BaseEventHandler * handler()
Definition: eventhandlerfactory.cpp:95
QtKeyMapperBase
Definition: qtkeymapperbase.h:25
JoyButton
Represents a single joystick button being part of a SetJoystick Contains multiple JoyButtonSlots whic...
Definition: joybutton.h:46
SetJoystick::release
void release()
Perform a release of all elements of a set. Stick and vdpad releases will be handled by the associate...
Definition: setjoystick.cpp:319
ButtonEditDialog::sendSelectionFinished
void sendSelectionFinished()
Definition: buttoneditdialog.cpp:482
ButtonEditDialog::refreshForLastBtn
void refreshForLastBtn()
Definition: buttoneditdialog.cpp:525
ButtonEditDialogHelper::setThisButton
void setThisButton(JoyButton *btn)
Definition: buttoneditdialoghelper.cpp:58
common.h
ButtonEditDialog::helper
ButtonEditDialogHelper helper
Definition: buttoneditdialog.h:65
ButtonEditDialog::getLastJoyButton
JoyButton * getLastJoyButton()
Definition: buttoneditdialog.cpp:625
buttoneditdialog.h
JoyButton::slotsChanged
void slotsChanged()
EventHandlerFactory::getInstance
static EventHandlerFactory * getInstance(QString handler="")
Definition: eventhandlerfactory.cpp:71
JoyButton::setToggle
void setToggle(bool toggle)
Definition: joybutton.cpp:368
setjoystick.h
JoyButton::turboChanged
void turboChanged(bool state)
ButtonEditDialog::withoutQuickSetDialog
bool withoutQuickSetDialog
Definition: buttoneditdialog.h:73
AdvanceButtonDialog::clearAllSlots
void clearAllSlots()
Definition: advancebuttondialog.cpp:788
VirtualKeyboardMouseWidget::establishVirtualMouseSignalConnections
void establishVirtualMouseSignalConnections()
Definition: virtualkeyboardmousewidget.cpp:864
JoyButtonSlot::getSlotCodeAlias
int getSlotCodeAlias() const
Definition: joybuttonslot.cpp:108
JoyButton::getSlotsString
virtual QString getSlotsString()
Generate a string representing all the currently assigned slots for a button.
Definition: joybutton.cpp:1995
VirtualKeyboardMouseWidget::establishVirtualMouseAdvancedSignalConnections
void establishVirtualMouseAdvancedSignalConnections()
Definition: virtualkeyboardmousewidget.cpp:878
ButtonEditDialog::buttonEventInterval
QElapsedTimer buttonEventInterval
Definition: buttoneditdialog.h:69
JoyButton::isPartVDPad
bool isPartVDPad()
Definition: joybutton.cpp:3461
JoyButton::containsSequence
bool containsSequence()
Definition: joybutton.cpp:2656
BaseEventHandler::getIdentifier
virtual QString getIdentifier()=0
JoyButtonSlot::JoySlotInputAction
JoySlotInputAction
Definition: joybuttonslot.h:42
ButtonEditDialog::ui
Ui::ButtonEditDialog * ui
Definition: buttoneditdialog.h:66
PadderCommon::inputDaemonMutex
QMutex inputDaemonMutex
Definition: common.cpp:223
ButtonEditDialog::selectionCleared
void selectionCleared()
AntKeyMapper::getNativeKeyMapper
QtKeyMapperBase * getNativeKeyMapper() const
Definition: antkeymapper.cpp:108
ButtonEditDialog::changeNumKeypadSetting
void changeNumKeypadSetting()
Definition: buttoneditdialog.cpp:343
AntKeyMapper::returnQtKey
int returnQtKey(int key, int scancode=0)
Definition: antkeymapper.cpp:102
InputDevice::resetButtonDownCount
void resetButtonDownCount()
Definition: inputdevice.cpp:1123
ButtonEditDialog::m_isNumKeypad
bool m_isNumKeypad
Definition: buttoneditdialog.h:74
ButtonEditDialog::checkForKeyboardWidgetFocus
void checkForKeyboardWidgetFocus(QWidget *old, QWidget *now)
Definition: buttoneditdialog.cpp:115
InputDevice::getActiveSetJoystick
SetJoystick * getActiveSetJoystick()
Definition: inputdevice.cpp:563
JoyButton::buttonNameChanged
void buttonNameChanged()