X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fgui%2Fkeygrabber.cpp;h=e1c33d0e3eada8aefb61210650c88f739603ecb4;hb=e310c1d53915d306d8aa9a1bed9bac489bd30b03;hp=b9b285c5248574f47355dfbfd14bbdb5942ddeb7;hpb=9d399cea8466c7e4a6a1336dafdc830c4680d977;p=virtualjaguar diff --git a/src/gui/keygrabber.cpp b/src/gui/keygrabber.cpp index b9b285c..e1c33d0 100644 --- a/src/gui/keygrabber.cpp +++ b/src/gui/keygrabber.cpp @@ -7,7 +7,7 @@ // JLH = James Hammons // // Who When What -// --- ---------- ------------------------------------------------------------- +// --- ---------- ------------------------------------------------------------ // JLH 07/18/2011 Created this file // @@ -15,8 +15,15 @@ #include "gamepad.h" +// Class variables +// These need to be preserved between calls to this class, otherwise bad stuff +// (like controllers not working correctly) can happen. +/*static*/ bool KeyGrabber::buttonDown = false; +/*static*/ int KeyGrabber::button = -1; + + KeyGrabber::KeyGrabber(QWidget * parent/*= 0*/): QDialog(parent), - label(new QLabel), timer(new QTimer), buttonDown(false) + label(new QLabel), timer(new QTimer)//, buttonDown(false) { // label = new QLabel(this); QVBoxLayout * mainLayout = new QVBoxLayout; @@ -62,8 +69,11 @@ void KeyGrabber::keyPressEvent(QKeyEvent * e) void KeyGrabber::CheckGamepad(void) { - // How do we determine which joystick it is, if more than one? - // Possibly by a combobox selecting the stick you want to configure... + // How do we determine which joystick it is, if more than one? As it turns + // out, we don't really have to care. It's up to the user to play nice with + // the interface because while we can enforce a 'first user to press a + // button wins' type of thing, it doesn't really buy you anything that you + // couldn't get by having the users involved behave like nice people. :-P Gamepad::Update(); if (!buttonDown) @@ -73,6 +83,9 @@ void KeyGrabber::CheckGamepad(void) if (button == -1) return; +// Do it so that it sets the button on button down, not release :-P + key = button; + accept(); buttonDown = true; } else @@ -80,8 +93,8 @@ void KeyGrabber::CheckGamepad(void) if (Gamepad::CheckButtonPressed() == button) return; - key = button; - accept(); +// key = button; +// accept(); buttonDown = false; } }