diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp index 9d853c696..97e67ef50 100644 --- a/src/duckstation-qt/mainwindow.cpp +++ b/src/duckstation-qt/mainwindow.cpp @@ -310,6 +310,34 @@ void MainWindow::onRemoveDiscActionTriggered() m_host_interface->changeDisc(QString()); } +void MainWindow::onViewToolbarActionToggled(bool checked) +{ + m_host_interface->SetBoolSettingValue("UI", "ShowToolbar", checked); + m_ui.toolBar->setVisible(checked); +} + +void MainWindow::onViewStatusBarActionToggled(bool checked) +{ + m_host_interface->SetBoolSettingValue("UI", "ShowStatusBar", checked); + m_ui.statusBar->setVisible(checked); +} + +void MainWindow::onViewGameListActionTriggered() +{ + if (m_emulation_running) + m_host_interface->pauseSystem(true); + switchToGameListView(); +} + +void MainWindow::onViewSystemDisplayTriggered() +{ + if (m_emulation_running) + { + switchToEmulationView(); + m_host_interface->pauseSystem(false); + } +} + void MainWindow::onGitHubRepositoryActionTriggered() { QtUtils::OpenURL(this, "https://github.com/stenzek/duckstation/"); @@ -431,6 +459,14 @@ void MainWindow::setupAdditionalUi() { setWindowTitle(getWindowTitle()); + const bool toolbar_visible = m_host_interface->GetBoolSettingValue("UI", "ShowToolbar", true); + m_ui.actionViewToolbar->setChecked(toolbar_visible); + m_ui.toolBar->setVisible(toolbar_visible); + + const bool status_bar_visible = m_host_interface->GetBoolSettingValue("UI", "ShowStatusBar", true); + m_ui.actionViewStatusBar->setChecked(status_bar_visible); + m_ui.statusBar->setVisible(status_bar_visible); + m_game_list_widget = new GameListWidget(m_ui.mainContainer); m_game_list_widget->initialize(m_host_interface); m_ui.mainContainer->insertWidget(0, m_game_list_widget); @@ -509,6 +545,7 @@ void MainWindow::updateEmulationActions(bool starting, bool running) m_ui.actionPause->setDisabled(starting || !running); m_ui.actionChangeDisc->setDisabled(starting || !running); m_ui.actionScreenshot->setDisabled(starting || !running); + m_ui.actionViewSystemDisplay->setEnabled(starting || running); m_ui.menuChangeDisc->setDisabled(starting || !running); m_ui.actionSaveState->setDisabled(starting || !running); @@ -617,6 +654,10 @@ void MainWindow::connectSignals() [this]() { doSettings(SettingsDialog::Category::AudioSettings); }); connect(m_ui.actionAdvancedSettings, &QAction::triggered, [this]() { doSettings(SettingsDialog::Category::AdvancedSettings); }); + connect(m_ui.actionViewToolbar, &QAction::toggled, this, &MainWindow::onViewToolbarActionToggled); + connect(m_ui.actionViewStatusBar, &QAction::toggled, this, &MainWindow::onViewStatusBarActionToggled); + connect(m_ui.actionViewGameList, &QAction::triggered, this, &MainWindow::onViewGameListActionTriggered); + connect(m_ui.actionViewSystemDisplay, &QAction::triggered, this, &MainWindow::onViewSystemDisplayTriggered); connect(m_ui.actionGitHubRepository, &QAction::triggered, this, &MainWindow::onGitHubRepositoryActionTriggered); connect(m_ui.actionIssueTracker, &QAction::triggered, this, &MainWindow::onIssueTrackerActionTriggered); connect(m_ui.actionDiscordServer, &QAction::triggered, this, &MainWindow::onDiscordServerActionTriggered); diff --git a/src/duckstation-qt/mainwindow.h b/src/duckstation-qt/mainwindow.h index f5c0308d3..e53053866 100644 --- a/src/duckstation-qt/mainwindow.h +++ b/src/duckstation-qt/mainwindow.h @@ -62,6 +62,10 @@ private Q_SLOTS: void onChangeDiscFromPlaylistMenuAboutToShow(); void onChangeDiscFromPlaylistMenuAboutToHide(); void onRemoveDiscActionTriggered(); + void onViewToolbarActionToggled(bool checked); + void onViewStatusBarActionToggled(bool checked); + void onViewGameListActionTriggered(); + void onViewSystemDisplayTriggered(); void onGitHubRepositoryActionTriggered(); void onIssueTrackerActionTriggered(); void onDiscordServerActionTriggered(); diff --git a/src/duckstation-qt/mainwindow.ui b/src/duckstation-qt/mainwindow.ui index 03dafc216..14e80ffee 100644 --- a/src/duckstation-qt/mainwindow.ui +++ b/src/duckstation-qt/mainwindow.ui @@ -30,7 +30,7 @@ 0 0 754 - 22 + 30 @@ -161,8 +161,19 @@ + + + &View + + + + + + + + @@ -560,6 +571,41 @@ Resumes the last save state created. + + + true + + + true + + + &Toolbar + + + + + true + + + true + + + &Status Bar + + + + + &Game List + + + + + false + + + System &Display + +