From: Shamus Hammons Date: Sat, 7 Dec 2013 20:30:03 +0000 (-0600) Subject: Fixed insert cart dialog, mouse hiding. X-Git-Tag: 2.1.1~16 X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=sidebyside;h=0953b21d8806054348a35c6fbc01ede2ee4df158;p=virtualjaguar Fixed insert cart dialog, mouse hiding. The insert cart dialog will now populate itself if you launch VJ with just a filename (it didn't before), and the mouse will now only hide itself while it's over the OpenGL window. --- diff --git a/src/gui/glwidget.cpp b/src/gui/glwidget.cpp index ead7268..8d69f63 100644 --- a/src/gui/glwidget.cpp +++ b/src/gui/glwidget.cpp @@ -155,7 +155,7 @@ void GLWidget::HandleMouseHiding(void) else if (hideMouseTimeout == 0) { hideMouseTimeout--; - qApp->setOverrideCursor(Qt::BlankCursor); + setCursor(Qt::BlankCursor); } } @@ -166,7 +166,7 @@ void GLWidget::CheckAndRestoreMouseCursor(void) { // Has the mouse been hidden? (-1 means mouse was hidden) if (hideMouseTimeout == -1) - qApp->restoreOverrideCursor(); + setCursor(Qt::ArrowCursor); hideMouseTimeout = 60; } diff --git a/src/gui/mainwin.cpp b/src/gui/mainwin.cpp index d05599d..8eb1285 100644 --- a/src/gui/mainwin.cpp +++ b/src/gui/mainwin.cpp @@ -84,7 +84,7 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false), showUntunedTankCircuit(true), cartridgeLoaded(false), CDActive(false), - pauseForFileSelector(false), loadAndGo(autoRun), plzDontKillMyComputer(false) + pauseForFileSelector(false), loadAndGo(autoRun), scannedSoftwareFolder(false), plzDontKillMyComputer(false) { debugbar = NULL; @@ -393,6 +393,7 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false), // Run the scanner if nothing passed in and *not* Alpine mode... // NB: Really need to look into caching the info scanned in here... filePickWin->ScanSoftwareFolder(allowUnknownSoftware); + scannedSoftwareFolder = true; } @@ -515,40 +516,9 @@ void MainWin::HandleKeys(QKeyEvent * e, bool state) { enum { P1LEFT = 0, P1RIGHT, P1UP, P1DOWN, P2LEFT, P2RIGHT, P2UP, P2DOWN }; // We kill bad key combos here, before they can get to the emulator... - // This also kills the illegal instruction problem that cropped up in Rayman! - // May want to do this by killing the old one instead of ignoring the new one... - // Seems to work better that way... - -// The problem with this approach is that it causes bad results because it doesn't do -// any checking of previous states. Need to come up with something better because this -// causes problems where the keyboard acts as if it were unresponsive. :-P -#if 0 - if ((e->key() == vjs.p1KeyBindings[BUTTON_L] && joypad_0_buttons[BUTTON_R]) - || (e->key() == vjs.p1KeyBindings[BUTTON_R] && joypad_0_buttons[BUTTON_L]) - || (e->key() == vjs.p1KeyBindings[BUTTON_U] && joypad_0_buttons[BUTTON_D]) - || (e->key() == vjs.p1KeyBindings[BUTTON_D] && joypad_0_buttons[BUTTON_U])) - return; -#else -#if 0 - if (e->key() == (int)vjs.p1KeyBindings[BUTTON_L] && joypad_0_buttons[BUTTON_R]) - joypad_0_buttons[BUTTON_R] = 0; - if (e->key() == (int)vjs.p1KeyBindings[BUTTON_R] && joypad_0_buttons[BUTTON_L]) - joypad_0_buttons[BUTTON_L] = 0; - if (e->key() == (int)vjs.p1KeyBindings[BUTTON_U] && joypad_0_buttons[BUTTON_D]) - joypad_0_buttons[BUTTON_D] = 0; - if (e->key() == (int)vjs.p1KeyBindings[BUTTON_D] && joypad_0_buttons[BUTTON_U]) - joypad_0_buttons[BUTTON_U] = 0; - - if (e->key() == (int)vjs.p2KeyBindings[BUTTON_L] && joypad_1_buttons[BUTTON_R]) - joypad_1_buttons[BUTTON_R] = 0; - if (e->key() == (int)vjs.p2KeyBindings[BUTTON_R] && joypad_1_buttons[BUTTON_L]) - joypad_1_buttons[BUTTON_L] = 0; - if (e->key() == (int)vjs.p2KeyBindings[BUTTON_U] && joypad_1_buttons[BUTTON_D]) - joypad_1_buttons[BUTTON_D] = 0; - if (e->key() == (int)vjs.p2KeyBindings[BUTTON_D] && joypad_1_buttons[BUTTON_U]) - joypad_1_buttons[BUTTON_U] = 0; -#else -//hrm, this still has sticky state problems... Ugh! + // This also kills the illegal instruction problem that cropped up in + // Rayman! + // First, settle key states... if (e->key() == (int)vjs.p1KeyBindings[BUTTON_L]) keyHeld[P1LEFT] = state; @@ -567,14 +537,6 @@ void MainWin::HandleKeys(QKeyEvent * e, bool state) else if (e->key() == (int)vjs.p2KeyBindings[BUTTON_D]) keyHeld[P2DOWN] = state; -#if 0 - // Next, check for conflicts and bail out if there are any... - if ((keyHeld[P1LEFT] && keyHeld[P1RIGHT]) - || (keyHeld[P1UP] && keyHeld[P1DOWN]) - || (keyHeld[P2LEFT] && keyHeld[P2RIGHT]) - || (keyHeld[P2UP] && keyHeld[P2DOWN])) - return; -#else // Next, check for conflicts and kill 'em if there are any... if (keyHeld[P1LEFT] && keyHeld[P1RIGHT]) keyHeld[P1LEFT] = keyHeld[P1RIGHT] = false; @@ -587,21 +549,14 @@ void MainWin::HandleKeys(QKeyEvent * e, bool state) if (keyHeld[P2UP] && keyHeld[P2DOWN]) keyHeld[P2UP] = keyHeld[P2DOWN] = false; -#endif -#endif -#endif - // No bad combos exist, let's stuff the emulator key buffers...! + // No bad combos exist now, let's stuff the emulator key buffers...! for(int i=BUTTON_FIRST; i<=BUTTON_LAST; i++) { if (e->key() == (int)vjs.p1KeyBindings[i]) -// joypad_0_buttons[i] = (uint8)state; joypad0Buttons[i] = (state ? 0x01 : 0x00); -// Pad #2 is screwing up pad #1. Prolly a problem in joystick.cpp... -// So let's try to fix it there. :-P [DONE] if (e->key() == (int)vjs.p2KeyBindings[i]) -// joypad_1_buttons[i] = (uint8)state; joypad1Buttons[i] = (state ? 0x01 : 0x00); } } @@ -916,6 +871,14 @@ void MainWin::ShowHelpWin(void) void MainWin::InsertCart(void) { + // Check to see if we did autorun, 'cause we didn't load anything in that + // case + if (!scannedSoftwareFolder) + { + filePickWin->ScanSoftwareFolder(allowUnknownSoftware); + scannedSoftwareFolder = true; + } + // If the emulator is running, we pause it here and unpause it later // if we dismiss the file selector without choosing anything if (running && powerButtonOn) diff --git a/src/gui/mainwin.h b/src/gui/mainwin.h index 06ca405..e5dc8e2 100644 --- a/src/gui/mainwin.h +++ b/src/gui/mainwin.h @@ -100,6 +100,7 @@ class MainWin: public QMainWindow bool loadAndGo; bool keyHeld[8]; bool fullScreen; + bool scannedSoftwareFolder; public: bool plzDontKillMyComputer; uint32_t oldTimestamp;