mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Merge pull request #3001 from Styleoshin/qt_fullscreen
citra-qt : Adding fullscreen mode
This commit is contained in:
		
						commit
						f47bf6c8c9
					
				
					 5 changed files with 57 additions and 2 deletions
				
			
		|  | @ -198,6 +198,7 @@ void Config::ReadValues() { | ||||||
|     qt_config->endGroup(); |     qt_config->endGroup(); | ||||||
| 
 | 
 | ||||||
|     UISettings::values.single_window_mode = qt_config->value("singleWindowMode", true).toBool(); |     UISettings::values.single_window_mode = qt_config->value("singleWindowMode", true).toBool(); | ||||||
|  |     UISettings::values.fullscreen = qt_config->value("fullscreen", false).toBool(); | ||||||
|     UISettings::values.display_titlebar = qt_config->value("displayTitleBars", true).toBool(); |     UISettings::values.display_titlebar = qt_config->value("displayTitleBars", true).toBool(); | ||||||
|     UISettings::values.show_filter_bar = qt_config->value("showFilterBar", true).toBool(); |     UISettings::values.show_filter_bar = qt_config->value("showFilterBar", true).toBool(); | ||||||
|     UISettings::values.show_status_bar = qt_config->value("showStatusBar", true).toBool(); |     UISettings::values.show_status_bar = qt_config->value("showStatusBar", true).toBool(); | ||||||
|  | @ -331,6 +332,7 @@ void Config::SaveValues() { | ||||||
|     qt_config->endGroup(); |     qt_config->endGroup(); | ||||||
| 
 | 
 | ||||||
|     qt_config->setValue("singleWindowMode", UISettings::values.single_window_mode); |     qt_config->setValue("singleWindowMode", UISettings::values.single_window_mode); | ||||||
|  |     qt_config->setValue("fullscreen", UISettings::values.fullscreen); | ||||||
|     qt_config->setValue("displayTitleBars", UISettings::values.display_titlebar); |     qt_config->setValue("displayTitleBars", UISettings::values.display_titlebar); | ||||||
|     qt_config->setValue("showFilterBar", UISettings::values.show_filter_bar); |     qt_config->setValue("showFilterBar", UISettings::values.show_filter_bar); | ||||||
|     qt_config->setValue("showStatusBar", UISettings::values.show_status_bar); |     qt_config->setValue("showStatusBar", UISettings::values.show_status_bar); | ||||||
|  |  | ||||||
|  | @ -244,6 +244,8 @@ void GMainWindow::InitializeHotkeys() { | ||||||
|     RegisterHotkey("Main Window", "Load File", QKeySequence::Open); |     RegisterHotkey("Main Window", "Load File", QKeySequence::Open); | ||||||
|     RegisterHotkey("Main Window", "Swap Screens", QKeySequence::NextChild); |     RegisterHotkey("Main Window", "Swap Screens", QKeySequence::NextChild); | ||||||
|     RegisterHotkey("Main Window", "Start Emulation"); |     RegisterHotkey("Main Window", "Start Emulation"); | ||||||
|  |     RegisterHotkey("Main Window", "Fullscreen", QKeySequence::FullScreen); | ||||||
|  |     RegisterHotkey("Main Window", "Exit Fullscreen", QKeySequence::Cancel, Qt::ApplicationShortcut); | ||||||
|     LoadHotkeys(); |     LoadHotkeys(); | ||||||
| 
 | 
 | ||||||
|     connect(GetHotkey("Main Window", "Load File", this), SIGNAL(activated()), this, |     connect(GetHotkey("Main Window", "Load File", this), SIGNAL(activated()), this, | ||||||
|  | @ -252,6 +254,16 @@ void GMainWindow::InitializeHotkeys() { | ||||||
|             SLOT(OnStartGame())); |             SLOT(OnStartGame())); | ||||||
|     connect(GetHotkey("Main Window", "Swap Screens", render_window), SIGNAL(activated()), this, |     connect(GetHotkey("Main Window", "Swap Screens", render_window), SIGNAL(activated()), this, | ||||||
|             SLOT(OnSwapScreens())); |             SLOT(OnSwapScreens())); | ||||||
|  |     connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activated, | ||||||
|  |             ui.action_Fullscreen, &QAction::trigger); | ||||||
|  |     connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activatedAmbiguously, | ||||||
|  |             ui.action_Fullscreen, &QAction::trigger); | ||||||
|  |     connect(GetHotkey("Main Window", "Exit Fullscreen", this), &QShortcut::activated, this, [&] { | ||||||
|  |         if (emulation_running) { | ||||||
|  |             ui.action_Fullscreen->setChecked(false); | ||||||
|  |             ToggleFullscreen(); | ||||||
|  |         } | ||||||
|  |     }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void GMainWindow::SetDefaultUIGeometry() { | void GMainWindow::SetDefaultUIGeometry() { | ||||||
|  | @ -280,6 +292,8 @@ void GMainWindow::RestoreUIState() { | ||||||
|     ui.action_Single_Window_Mode->setChecked(UISettings::values.single_window_mode); |     ui.action_Single_Window_Mode->setChecked(UISettings::values.single_window_mode); | ||||||
|     ToggleWindowMode(); |     ToggleWindowMode(); | ||||||
| 
 | 
 | ||||||
|  |     ui.action_Fullscreen->setChecked(UISettings::values.fullscreen); | ||||||
|  | 
 | ||||||
|     ui.action_Display_Dock_Widget_Headers->setChecked(UISettings::values.display_titlebar); |     ui.action_Display_Dock_Widget_Headers->setChecked(UISettings::values.display_titlebar); | ||||||
|     OnDisplayTitleBars(ui.action_Display_Dock_Widget_Headers->isChecked()); |     OnDisplayTitleBars(ui.action_Display_Dock_Widget_Headers->isChecked()); | ||||||
| 
 | 
 | ||||||
|  | @ -323,6 +337,8 @@ void GMainWindow::ConnectMenuEvents() { | ||||||
|     ui.action_Show_Filter_Bar->setShortcut(tr("CTRL+F")); |     ui.action_Show_Filter_Bar->setShortcut(tr("CTRL+F")); | ||||||
|     connect(ui.action_Show_Filter_Bar, &QAction::triggered, this, &GMainWindow::OnToggleFilterBar); |     connect(ui.action_Show_Filter_Bar, &QAction::triggered, this, &GMainWindow::OnToggleFilterBar); | ||||||
|     connect(ui.action_Show_Status_Bar, &QAction::triggered, statusBar(), &QStatusBar::setVisible); |     connect(ui.action_Show_Status_Bar, &QAction::triggered, statusBar(), &QStatusBar::setVisible); | ||||||
|  |     ui.action_Fullscreen->setShortcut(GetHotkey("Main Window", "Fullscreen", this)->key()); | ||||||
|  |     connect(ui.action_Fullscreen, &QAction::triggered, this, &GMainWindow::ToggleFullscreen); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void GMainWindow::OnDisplayTitleBars(bool show) { | void GMainWindow::OnDisplayTitleBars(bool show) { | ||||||
|  | @ -460,6 +476,7 @@ void GMainWindow::BootGame(const QString& filename) { | ||||||
|     render_window->setFocus(); |     render_window->setFocus(); | ||||||
| 
 | 
 | ||||||
|     emulation_running = true; |     emulation_running = true; | ||||||
|  |     ToggleFullscreen(); | ||||||
|     OnStartGame(); |     OnStartGame(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -624,6 +641,29 @@ void GMainWindow::OnStopGame() { | ||||||
|     ShutdownGame(); |     ShutdownGame(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void GMainWindow::ToggleFullscreen() { | ||||||
|  |     if (!emulation_running) { | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |     if (ui.action_Fullscreen->isChecked()) { | ||||||
|  |         if (ui.action_Single_Window_Mode->isChecked()) { | ||||||
|  |             ui.menubar->hide(); | ||||||
|  |             statusBar()->hide(); | ||||||
|  |             showFullScreen(); | ||||||
|  |         } else { | ||||||
|  |             render_window->showFullScreen(); | ||||||
|  |         } | ||||||
|  |     } else { | ||||||
|  |         if (ui.action_Single_Window_Mode->isChecked()) { | ||||||
|  |             statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked()); | ||||||
|  |             ui.menubar->show(); | ||||||
|  |             showNormal(); | ||||||
|  |         } else { | ||||||
|  |             render_window->showNormal(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void GMainWindow::ToggleWindowMode() { | void GMainWindow::ToggleWindowMode() { | ||||||
|     if (ui.action_Single_Window_Mode->isChecked()) { |     if (ui.action_Single_Window_Mode->isChecked()) { | ||||||
|         // Render in the main window...
 |         // Render in the main window...
 | ||||||
|  | @ -784,6 +824,7 @@ void GMainWindow::closeEvent(QCloseEvent* event) { | ||||||
|     UISettings::values.microprofile_visible = microProfileDialog->isVisible(); |     UISettings::values.microprofile_visible = microProfileDialog->isVisible(); | ||||||
| #endif | #endif | ||||||
|     UISettings::values.single_window_mode = ui.action_Single_Window_Mode->isChecked(); |     UISettings::values.single_window_mode = ui.action_Single_Window_Mode->isChecked(); | ||||||
|  |     UISettings::values.fullscreen = ui.action_Fullscreen->isChecked(); | ||||||
|     UISettings::values.display_titlebar = ui.action_Display_Dock_Widget_Headers->isChecked(); |     UISettings::values.display_titlebar = ui.action_Display_Dock_Widget_Headers->isChecked(); | ||||||
|     UISettings::values.show_filter_bar = ui.action_Show_Filter_Bar->isChecked(); |     UISettings::values.show_filter_bar = ui.action_Show_Filter_Bar->isChecked(); | ||||||
|     UISettings::values.show_status_bar = ui.action_Show_Status_Bar->isChecked(); |     UISettings::values.show_status_bar = ui.action_Show_Status_Bar->isChecked(); | ||||||
|  |  | ||||||
|  | @ -127,6 +127,7 @@ private slots: | ||||||
|     void OnConfigure(); |     void OnConfigure(); | ||||||
|     void OnToggleFilterBar(); |     void OnToggleFilterBar(); | ||||||
|     void OnDisplayTitleBars(bool); |     void OnDisplayTitleBars(bool); | ||||||
|  |     void ToggleFullscreen(); | ||||||
|     void ToggleWindowMode(); |     void ToggleWindowMode(); | ||||||
|     void OnCreateGraphicsSurfaceViewer(); |     void OnCreateGraphicsSurfaceViewer(); | ||||||
|     void OnCoreError(Core::System::ResultStatus, std::string); |     void OnCoreError(Core::System::ResultStatus, std::string); | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ | ||||||
|      <x>0</x> |      <x>0</x> | ||||||
|      <y>0</y> |      <y>0</y> | ||||||
|      <width>1081</width> |      <width>1081</width> | ||||||
|      <height>19</height> |      <height>21</height> | ||||||
|     </rect> |     </rect> | ||||||
|    </property> |    </property> | ||||||
|    <widget class="QMenu" name="menu_File"> |    <widget class="QMenu" name="menu_File"> | ||||||
|  | @ -85,6 +85,7 @@ | ||||||
|      <addaction name="action_Create_Pica_Surface_Viewer"/> |      <addaction name="action_Create_Pica_Surface_Viewer"/> | ||||||
|      <addaction name="separator"/> |      <addaction name="separator"/> | ||||||
|     </widget> |     </widget> | ||||||
|  |     <addaction name="action_Fullscreen"/> | ||||||
|     <addaction name="action_Single_Window_Mode"/> |     <addaction name="action_Single_Window_Mode"/> | ||||||
|     <addaction name="action_Display_Dock_Widget_Headers"/> |     <addaction name="action_Display_Dock_Widget_Headers"/> | ||||||
|     <addaction name="action_Show_Filter_Bar"/> |     <addaction name="action_Show_Filter_Bar"/> | ||||||
|  | @ -196,6 +197,14 @@ | ||||||
|     <string>Create Pica Surface Viewer</string> |     <string>Create Pica Surface Viewer</string> | ||||||
|    </property> |    </property> | ||||||
|   </action> |   </action> | ||||||
|  |   <action name="action_Fullscreen"> | ||||||
|  |    <property name="checkable"> | ||||||
|  |     <bool>true</bool> | ||||||
|  |    </property> | ||||||
|  |    <property name="text"> | ||||||
|  |     <string>Fullscreen</string> | ||||||
|  |    </property> | ||||||
|  |   </action> | ||||||
|  </widget> |  </widget> | ||||||
|  <resources/> |  <resources/> | ||||||
| </ui> | </ui> | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ struct Values { | ||||||
|     bool microprofile_visible; |     bool microprofile_visible; | ||||||
| 
 | 
 | ||||||
|     bool single_window_mode; |     bool single_window_mode; | ||||||
|  |     bool fullscreen; | ||||||
|     bool display_titlebar; |     bool display_titlebar; | ||||||
|     bool show_filter_bar; |     bool show_filter_bar; | ||||||
|     bool show_status_bar; |     bool show_status_bar; | ||||||
|  | @ -53,4 +54,5 @@ struct Values { | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| extern Values values; | extern Values values; | ||||||
| } | 
 | ||||||
|  | } // namespace UISettings
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue