diff --git a/src/drivers/Qt/ConsoleWindow.cpp b/src/drivers/Qt/ConsoleWindow.cpp index 5120edc6..3e6480f7 100644 --- a/src/drivers/Qt/ConsoleWindow.cpp +++ b/src/drivers/Qt/ConsoleWindow.cpp @@ -103,8 +103,6 @@ consoleWin_t::consoleWin_t(QWidget *parent) createMainMenu(); - g_config->getOption( "SDL.VideoDriver", &use_SDL_video ); - firstResize = true; closeRequested = false; errorMsgValid = false; @@ -115,6 +113,8 @@ consoleWin_t::consoleWin_t(QWidget *parent) mainMenuEmuWasPaused = false; mainMenuPauseWhenActv = false; + g_config->getOption( "SDL.PauseOnMainMenuAccess", &mainMenuPauseWhenActv ); + if ( use_SDL_video ) { viewport_SDL = new ConsoleViewSDL_t(this); @@ -396,6 +396,11 @@ void consoleWin_t::setViewportAspect(void) } } +void consoleWin_t::setMenuAccessPauseEnable( bool enable ) +{ + mainMenuPauseWhenActv = enable; +} + void consoleWin_t::loadCursor(void) { int cursorVis; diff --git a/src/drivers/Qt/ConsoleWindow.h b/src/drivers/Qt/ConsoleWindow.h index 16a3db4f..215f57d4 100644 --- a/src/drivers/Qt/ConsoleWindow.h +++ b/src/drivers/Qt/ConsoleWindow.h @@ -127,6 +127,8 @@ class consoleWin_t : public QMainWindow void setViewerCursor( QCursor s ); void setViewerCursor( Qt::CursorShape s ); Qt::CursorShape getViewerCursor(void); + + void setMenuAccessPauseEnable(bool enable); protected: consoleMenuBar *menubar; diff --git a/src/drivers/Qt/GuiConf.cpp b/src/drivers/Qt/GuiConf.cpp index 1b21df31..9660e1d5 100644 --- a/src/drivers/Qt/GuiConf.cpp +++ b/src/drivers/Qt/GuiConf.cpp @@ -49,10 +49,10 @@ GuiConfDialog_t::GuiConfDialog_t(QWidget *parent) : QDialog(parent) { int useNativeFileDialogVal; - int useNativeMenuBarVal; + int useNativeMenuBarVal, pauseOnMenuAccessVal; int useCustomQssVal, useCustomQPalVal; QVBoxLayout *mainLayout, *vbox1, *vbox2; - QHBoxLayout *hbox; + QHBoxLayout *hbox, *hbox1; QPushButton *closeButton, *button; QMenuBar *menuBar; QMenu *fileMenu, *colorMenu; @@ -74,6 +74,7 @@ GuiConfDialog_t::GuiConfDialog_t(QWidget *parent) g_config->getOption("SDL.UseNativeMenuBar", &useNativeMenuBarVal); g_config->getOption("SDL.UseCustomQss", &useCustomQssVal); g_config->getOption("SDL.UseCustomQPal", &useCustomQPalVal); + g_config->getOption("SDL.PauseOnMainMenuAccess", &pauseOnMenuAccessVal); setWindowTitle(tr("GUI Config")); @@ -124,12 +125,15 @@ GuiConfDialog_t::GuiConfDialog_t(QWidget *parent) useNativeFileDialog = new QCheckBox(tr("Use Native OS File Dialog")); useNativeMenuBar = new QCheckBox(tr("Use Native OS Menu Bar")); + pauseOnMenuAccess = new QCheckBox(tr("Pause On Main Menu Access")); useNativeFileDialog->setChecked(useNativeFileDialogVal); useNativeMenuBar->setChecked(useNativeMenuBarVal); + pauseOnMenuAccess->setChecked(pauseOnMenuAccessVal); connect(useNativeFileDialog, SIGNAL(stateChanged(int)), this, SLOT(useNativeFileDialogChanged(int))); connect(useNativeMenuBar, SIGNAL(stateChanged(int)), this, SLOT(useNativeMenuBarChanged(int))); + connect(pauseOnMenuAccess, SIGNAL(stateChanged(int)), this, SLOT(pauseOnMenuAccessChanged(int))); styleComboBox = new QComboBox(); @@ -220,9 +224,17 @@ GuiConfDialog_t::GuiConfDialog_t(QWidget *parent) custom_qss_path->setText(qssFile.c_str()); vbox2->addWidget( custom_qss_path ); - mainLayout->addWidget(useNativeFileDialog); - mainLayout->addWidget(useNativeMenuBar); - mainLayout->addWidget(frame); + hbox1 = new QHBoxLayout(); + vbox1 = new QVBoxLayout(); + + mainLayout->addLayout(hbox1); + hbox1->addLayout(vbox1); + hbox1->addWidget(frame); + + vbox1->addWidget(useNativeFileDialog, 1); + vbox1->addWidget(useNativeMenuBar, 1); + vbox1->addWidget(pauseOnMenuAccess, 1); + vbox1->addStretch(10); closeButton = new QPushButton( tr("Close") ); closeButton->setIcon(style()->standardIcon(QStyle::SP_DialogCloseButton)); @@ -275,6 +287,15 @@ void GuiConfDialog_t::useNativeMenuBarChanged(int state) consoleWindow->menuBar()->setNativeMenuBar(value); } //---------------------------------------------------- +void GuiConfDialog_t::pauseOnMenuAccessChanged(int state) +{ + int value = (state == Qt::Unchecked) ? 0 : 1; + + g_config->setOption("SDL.PauseOnMainMenuAccess", value); + + consoleWindow->setMenuAccessPauseEnable( value ); +} +//---------------------------------------------------- void GuiConfDialog_t::useCustomStyleChanged(int state) { int value = (state == Qt::Unchecked) ? 0 : 1; diff --git a/src/drivers/Qt/GuiConf.h b/src/drivers/Qt/GuiConf.h index 7fb06324..5dbb8aa8 100644 --- a/src/drivers/Qt/GuiConf.h +++ b/src/drivers/Qt/GuiConf.h @@ -142,6 +142,7 @@ protected: QCheckBox *useNativeFileDialog; QCheckBox *useNativeMenuBar; + QCheckBox *pauseOnMenuAccess; QCheckBox *useCustomStyle; QCheckBox *useCustomPalette; QComboBox *styleComboBox; @@ -154,6 +155,7 @@ public slots: private slots: void useNativeFileDialogChanged(int v); void useNativeMenuBarChanged(int v); + void pauseOnMenuAccessChanged(int v); void useCustomQPaletteChanged(int v); void useCustomStyleChanged(int v); void styleChanged(int index); diff --git a/src/drivers/Qt/config.cpp b/src/drivers/Qt/config.cpp index def6ae41..f70629ae 100644 --- a/src/drivers/Qt/config.cpp +++ b/src/drivers/Qt/config.cpp @@ -52,47 +52,6 @@ #include #endif -//static const char* HotkeyStrings[HK_MAX] = { -// "OpenROM", -// "CloseROM", -// "CheatMenu", -// "BindState", -// "LoadLua", -// "ToggleBG", -// "SaveState", -// "FDSSelect", -// "LoadState", -// "FDSEject", -// "VSInsertCoin", -// "VSToggleDip", -// "MovieToggleFrameDisplay", -// "SubtitleDisplay", -// "Reset", -// "Screenshot", -// "Pause", -// "DecreaseSpeed", -// "IncreaseSpeed", -// "FrameAdvance", -// "Turbo", -// "ToggleInputDisplay", -// "ToggleMovieRW", -// "MuteCapture", -// "Quit", -// "FrameAdvanceLagSkip", -// "LagCounterDisplay", -// "SelectState0", "SelectState1", "SelectState2", "SelectState3", -// "SelectState4", "SelectState5", "SelectState6", "SelectState7", -// "SelectState8", "SelectState9", "SelectStateNext", "SelectStatePrev", -// "VolumeDown", "VolumeUp", "FKB_Enable" }; - -//const char *getHotkeyString( int i ) -//{ -// if ( (i>=0) && (iaddOption("_useNativeFileDialog", "SDL.UseNativeFileDialog", false); config->addOption("_useNativeMenuBar" , "SDL.UseNativeMenuBar", false); + config->addOption("SDL.PauseOnMainMenuAccess", true); config->addOption("SDL.GuiStyle", ""); config->addOption("SDL.QtStyleSheet", ""); config->addOption("SDL.QPaletteFile", ""); @@ -776,7 +736,6 @@ InitConfig() for(int i=0; i < HK_MAX; i++) { - char buf[256]; const char *hotKeyName, *hotKeySeq; std::string nameText, keyText;