diff options
| -rw-r--r-- | src/yuzu/main.cpp | 272 | ||||
| -rw-r--r-- | src/yuzu/main.h | 7 | 
2 files changed, 142 insertions, 137 deletions
| diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 9f80a245c..926dbe213 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -104,6 +104,7 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual  #include "core/telemetry_session.h"  #include "input_common/main.h"  #include "input_common/tas/tas_input.h" +#include "ui_main.h"  #include "util/overlay_dialog.h"  #include "video_core/gpu.h"  #include "video_core/renderer_base.h" @@ -199,7 +200,7 @@ GMainWindow::GMainWindow(Core::System& system_)      LoadTranslation();      setAcceptDrops(true); -    ui.setupUi(this); +    ui->setupUi(this);      statusBar()->hide();      default_theme_paths = QIcon::themeSearchPaths(); @@ -274,16 +275,16 @@ GMainWindow::GMainWindow(Core::System& system_)      ShowTelemetryCallout();      // make sure menubar has the arrow cursor instead of inheriting from this -    ui.menubar->setCursor(QCursor()); +    ui->menubar->setCursor(QCursor());      statusBar()->setCursor(QCursor());      mouse_hide_timer.setInterval(default_mouse_timeout);      connect(&mouse_hide_timer, &QTimer::timeout, this, &GMainWindow::HideMouseCursor); -    connect(ui.menubar, &QMenuBar::hovered, this, &GMainWindow::ShowMouseCursor); +    connect(ui->menubar, &QMenuBar::hovered, this, &GMainWindow::ShowMouseCursor);      MigrateConfigFiles(); -    ui.action_Fullscreen->setChecked(false); +    ui->action_Fullscreen->setChecked(false);      QStringList args = QApplication::arguments(); @@ -302,7 +303,7 @@ GMainWindow::GMainWindow(Core::System& system_)          // Launch game in fullscreen mode          if (args[i] == QStringLiteral("-f")) { -            ui.action_Fullscreen->setChecked(true); +            ui->action_Fullscreen->setChecked(true);              continue;          } @@ -568,9 +569,9 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url,      QtNXWebEngineView web_browser_view(this, system, input_subsystem.get()); -    ui.action_Pause->setEnabled(false); -    ui.action_Restart->setEnabled(false); -    ui.action_Stop->setEnabled(false); +    ui->action_Pause->setEnabled(false); +    ui->action_Restart->setEnabled(false); +    ui->action_Stop->setEnabled(false);      {          QProgressDialog loading_progress(this); @@ -634,7 +635,7 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url,              web_browser_view.SetFinished(true);          }      }); -    ui.menubar->addAction(exit_action); +    ui->menubar->addAction(exit_action);      while (!web_browser_view.IsFinished()) {          QCoreApplication::processEvents(); @@ -676,11 +677,11 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url,          render_window->show();      } -    ui.action_Pause->setEnabled(true); -    ui.action_Restart->setEnabled(true); -    ui.action_Stop->setEnabled(true); +    ui->action_Pause->setEnabled(true); +    ui->action_Restart->setEnabled(true); +    ui->action_Stop->setEnabled(true); -    ui.menubar->removeAction(exit_action); +    ui->menubar->removeAction(exit_action);      QCoreApplication::processEvents(); @@ -696,21 +697,21 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url,  void GMainWindow::InitializeWidgets() {  #ifdef YUZU_ENABLE_COMPATIBILITY_REPORTING -    ui.action_Report_Compatibility->setVisible(true); +    ui->action_Report_Compatibility->setVisible(true);  #endif      render_window = new GRenderWindow(this, emu_thread.get(), input_subsystem, system);      render_window->hide();      game_list = new GameList(vfs, provider.get(), system, this); -    ui.horizontalLayout->addWidget(game_list); +    ui->horizontalLayout->addWidget(game_list);      game_list_placeholder = new GameListPlaceholder(this); -    ui.horizontalLayout->addWidget(game_list_placeholder); +    ui->horizontalLayout->addWidget(game_list_placeholder);      game_list_placeholder->setVisible(false);      loading_screen = new LoadingScreen(this);      loading_screen->hide(); -    ui.horizontalLayout->addWidget(loading_screen); +    ui->horizontalLayout->addWidget(loading_screen);      connect(loading_screen, &LoadingScreen::Hidden, [&] {          loading_screen->Clear();          if (emulation_running) { @@ -835,7 +836,7 @@ void GMainWindow::InitializeWidgets() {  }  void GMainWindow::InitializeDebugWidgets() { -    QMenu* debug_menu = ui.menu_View_Debugging; +    QMenu* debug_menu = ui->menu_View_Debugging;  #if MICROPROFILE_ENABLED      microProfileDialog = new MicroProfileDialog(this); @@ -864,16 +865,16 @@ void GMainWindow::InitializeRecentFileMenuActions() {          actions_recent_files[i]->setVisible(false);          connect(actions_recent_files[i], &QAction::triggered, this, &GMainWindow::OnMenuRecentFile); -        ui.menu_recent_files->addAction(actions_recent_files[i]); +        ui->menu_recent_files->addAction(actions_recent_files[i]);      } -    ui.menu_recent_files->addSeparator(); +    ui->menu_recent_files->addSeparator();      QAction* action_clear_recent_files = new QAction(this);      action_clear_recent_files->setText(tr("&Clear Recent Files"));      connect(action_clear_recent_files, &QAction::triggered, this, [this] {          UISettings::values.recent_files.clear();          UpdateRecentFiles();      }); -    ui.menu_recent_files->addAction(action_clear_recent_files); +    ui->menu_recent_files->addAction(action_clear_recent_files);      UpdateRecentFiles();  } @@ -892,43 +893,43 @@ void GMainWindow::InitializeHotkeys() {      const QString fullscreen = QStringLiteral("Fullscreen");      const QString capture_screenshot = QStringLiteral("Capture Screenshot"); -    ui.action_Load_File->setShortcut(hotkey_registry.GetKeySequence(main_window, load_file)); -    ui.action_Load_File->setShortcutContext( +    ui->action_Load_File->setShortcut(hotkey_registry.GetKeySequence(main_window, load_file)); +    ui->action_Load_File->setShortcutContext(          hotkey_registry.GetShortcutContext(main_window, load_file)); -    ui.action_Load_Amiibo->setShortcut(hotkey_registry.GetKeySequence(main_window, load_amiibo)); -    ui.action_Load_Amiibo->setShortcutContext( +    ui->action_Load_Amiibo->setShortcut(hotkey_registry.GetKeySequence(main_window, load_amiibo)); +    ui->action_Load_Amiibo->setShortcutContext(          hotkey_registry.GetShortcutContext(main_window, load_amiibo)); -    ui.action_Exit->setShortcut(hotkey_registry.GetKeySequence(main_window, exit_yuzu)); -    ui.action_Exit->setShortcutContext(hotkey_registry.GetShortcutContext(main_window, exit_yuzu)); +    ui->action_Exit->setShortcut(hotkey_registry.GetKeySequence(main_window, exit_yuzu)); +    ui->action_Exit->setShortcutContext(hotkey_registry.GetShortcutContext(main_window, exit_yuzu)); -    ui.action_Restart->setShortcut(hotkey_registry.GetKeySequence(main_window, restart_emulation)); -    ui.action_Restart->setShortcutContext( +    ui->action_Restart->setShortcut(hotkey_registry.GetKeySequence(main_window, restart_emulation)); +    ui->action_Restart->setShortcutContext(          hotkey_registry.GetShortcutContext(main_window, restart_emulation)); -    ui.action_Stop->setShortcut(hotkey_registry.GetKeySequence(main_window, stop_emulation)); -    ui.action_Stop->setShortcutContext( +    ui->action_Stop->setShortcut(hotkey_registry.GetKeySequence(main_window, stop_emulation)); +    ui->action_Stop->setShortcutContext(          hotkey_registry.GetShortcutContext(main_window, stop_emulation)); -    ui.action_Show_Filter_Bar->setShortcut( +    ui->action_Show_Filter_Bar->setShortcut(          hotkey_registry.GetKeySequence(main_window, toggle_filter_bar)); -    ui.action_Show_Filter_Bar->setShortcutContext( +    ui->action_Show_Filter_Bar->setShortcutContext(          hotkey_registry.GetShortcutContext(main_window, toggle_filter_bar)); -    ui.action_Show_Status_Bar->setShortcut( +    ui->action_Show_Status_Bar->setShortcut(          hotkey_registry.GetKeySequence(main_window, toggle_status_bar)); -    ui.action_Show_Status_Bar->setShortcutContext( +    ui->action_Show_Status_Bar->setShortcutContext(          hotkey_registry.GetShortcutContext(main_window, toggle_status_bar)); -    ui.action_Capture_Screenshot->setShortcut( +    ui->action_Capture_Screenshot->setShortcut(          hotkey_registry.GetKeySequence(main_window, capture_screenshot)); -    ui.action_Capture_Screenshot->setShortcutContext( +    ui->action_Capture_Screenshot->setShortcutContext(          hotkey_registry.GetShortcutContext(main_window, capture_screenshot)); -    ui.action_Fullscreen->setShortcut( +    ui->action_Fullscreen->setShortcut(          hotkey_registry.GetHotkey(main_window, fullscreen, this)->key()); -    ui.action_Fullscreen->setShortcutContext( +    ui->action_Fullscreen->setShortcutContext(          hotkey_registry.GetShortcutContext(main_window, fullscreen));      connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Load File"), this), @@ -952,13 +953,13 @@ void GMainWindow::InitializeHotkeys() {                  BootGame(game_path);              });      connect(hotkey_registry.GetHotkey(main_window, fullscreen, render_window), -            &QShortcut::activated, ui.action_Fullscreen, &QAction::trigger); +            &QShortcut::activated, ui->action_Fullscreen, &QAction::trigger);      connect(hotkey_registry.GetHotkey(main_window, fullscreen, render_window), -            &QShortcut::activatedAmbiguously, ui.action_Fullscreen, &QAction::trigger); +            &QShortcut::activatedAmbiguously, ui->action_Fullscreen, &QAction::trigger);      connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Exit Fullscreen"), this),              &QShortcut::activated, this, [&] {                  if (emulation_running) { -                    ui.action_Fullscreen->setChecked(false); +                    ui->action_Fullscreen->setChecked(false);                      ToggleFullscreen();                  }              }); @@ -987,7 +988,7 @@ void GMainWindow::InitializeHotkeys() {              });      connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Load Amiibo"), this),              &QShortcut::activated, this, [&] { -                if (ui.action_Load_Amiibo->isEnabled()) { +                if (ui->action_Load_Amiibo->isEnabled()) {                      OnLoadAmiibo();                  }              }); @@ -1068,20 +1069,20 @@ void GMainWindow::RestoreUIState() {      game_list->LoadInterfaceLayout(); -    ui.action_Single_Window_Mode->setChecked(UISettings::values.single_window_mode.GetValue()); +    ui->action_Single_Window_Mode->setChecked(UISettings::values.single_window_mode.GetValue());      ToggleWindowMode(); -    ui.action_Fullscreen->setChecked(UISettings::values.fullscreen.GetValue()); +    ui->action_Fullscreen->setChecked(UISettings::values.fullscreen.GetValue()); -    ui.action_Display_Dock_Widget_Headers->setChecked( +    ui->action_Display_Dock_Widget_Headers->setChecked(          UISettings::values.display_titlebar.GetValue()); -    OnDisplayTitleBars(ui.action_Display_Dock_Widget_Headers->isChecked()); +    OnDisplayTitleBars(ui->action_Display_Dock_Widget_Headers->isChecked()); -    ui.action_Show_Filter_Bar->setChecked(UISettings::values.show_filter_bar.GetValue()); -    game_list->SetFilterVisible(ui.action_Show_Filter_Bar->isChecked()); +    ui->action_Show_Filter_Bar->setChecked(UISettings::values.show_filter_bar.GetValue()); +    game_list->SetFilterVisible(ui->action_Show_Filter_Bar->isChecked()); -    ui.action_Show_Status_Bar->setChecked(UISettings::values.show_status_bar.GetValue()); -    statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked()); +    ui->action_Show_Status_Bar->setChecked(UISettings::values.show_status_bar.GetValue()); +    statusBar()->setVisible(ui->action_Show_Status_Bar->isChecked());      Debugger::ToggleConsole();  } @@ -1093,11 +1094,11 @@ void GMainWindow::OnAppFocusStateChanged(Qt::ApplicationState state) {          state != Qt::ApplicationActive) {          LOG_DEBUG(Frontend, "ApplicationState unusual flag: {} ", state);      } -    if (ui.action_Pause->isEnabled() && +    if (ui->action_Pause->isEnabled() &&          (state & (Qt::ApplicationHidden | Qt::ApplicationInactive))) {          auto_paused = true;          OnPauseGame(); -    } else if (ui.action_Start->isEnabled() && auto_paused && state == Qt::ApplicationActive) { +    } else if (ui->action_Start->isEnabled() && auto_paused && state == Qt::ApplicationActive) {          auto_paused = false;          OnStartGame();      } @@ -1142,59 +1143,60 @@ void GMainWindow::ConnectWidgetEvents() {  void GMainWindow::ConnectMenuEvents() {      // File -    connect(ui.action_Load_File, &QAction::triggered, this, &GMainWindow::OnMenuLoadFile); -    connect(ui.action_Load_Folder, &QAction::triggered, this, &GMainWindow::OnMenuLoadFolder); -    connect(ui.action_Install_File_NAND, &QAction::triggered, this, +    connect(ui->action_Load_File, &QAction::triggered, this, &GMainWindow::OnMenuLoadFile); +    connect(ui->action_Load_Folder, &QAction::triggered, this, &GMainWindow::OnMenuLoadFolder); +    connect(ui->action_Install_File_NAND, &QAction::triggered, this,              &GMainWindow::OnMenuInstallToNAND); -    connect(ui.action_Exit, &QAction::triggered, this, &QMainWindow::close); -    connect(ui.action_Load_Amiibo, &QAction::triggered, this, &GMainWindow::OnLoadAmiibo); +    connect(ui->action_Exit, &QAction::triggered, this, &QMainWindow::close); +    connect(ui->action_Load_Amiibo, &QAction::triggered, this, &GMainWindow::OnLoadAmiibo);      // Emulation -    connect(ui.action_Start, &QAction::triggered, this, &GMainWindow::OnStartGame); -    connect(ui.action_Pause, &QAction::triggered, this, &GMainWindow::OnPauseGame); -    connect(ui.action_Stop, &QAction::triggered, this, &GMainWindow::OnStopGame); -    connect(ui.action_Report_Compatibility, &QAction::triggered, this, +    connect(ui->action_Start, &QAction::triggered, this, &GMainWindow::OnStartGame); +    connect(ui->action_Pause, &QAction::triggered, this, &GMainWindow::OnPauseGame); +    connect(ui->action_Stop, &QAction::triggered, this, &GMainWindow::OnStopGame); +    connect(ui->action_Report_Compatibility, &QAction::triggered, this,              &GMainWindow::OnMenuReportCompatibility); -    connect(ui.action_Open_Mods_Page, &QAction::triggered, this, &GMainWindow::OnOpenModsPage); -    connect(ui.action_Open_Quickstart_Guide, &QAction::triggered, this, +    connect(ui->action_Open_Mods_Page, &QAction::triggered, this, &GMainWindow::OnOpenModsPage); +    connect(ui->action_Open_Quickstart_Guide, &QAction::triggered, this,              &GMainWindow::OnOpenQuickstartGuide); -    connect(ui.action_Open_FAQ, &QAction::triggered, this, &GMainWindow::OnOpenFAQ); -    connect(ui.action_Restart, &QAction::triggered, this, [this] { BootGame(QString(game_path)); }); -    connect(ui.action_Configure, &QAction::triggered, this, &GMainWindow::OnConfigure); -    connect(ui.action_Configure_Tas, &QAction::triggered, this, &GMainWindow::OnConfigureTas); -    connect(ui.action_Configure_Current_Game, &QAction::triggered, this, +    connect(ui->action_Open_FAQ, &QAction::triggered, this, &GMainWindow::OnOpenFAQ); +    connect(ui->action_Restart, &QAction::triggered, this, +            [this] { BootGame(QString(game_path)); }); +    connect(ui->action_Configure, &QAction::triggered, this, &GMainWindow::OnConfigure); +    connect(ui->action_Configure_Tas, &QAction::triggered, this, &GMainWindow::OnConfigureTas); +    connect(ui->action_Configure_Current_Game, &QAction::triggered, this,              &GMainWindow::OnConfigurePerGame);      // View -    connect(ui.action_Single_Window_Mode, &QAction::triggered, this, +    connect(ui->action_Single_Window_Mode, &QAction::triggered, this,              &GMainWindow::ToggleWindowMode); -    connect(ui.action_Display_Dock_Widget_Headers, &QAction::triggered, this, +    connect(ui->action_Display_Dock_Widget_Headers, &QAction::triggered, this,              &GMainWindow::OnDisplayTitleBars); -    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_Filter_Bar, &QAction::triggered, this, &GMainWindow::OnToggleFilterBar); +    connect(ui->action_Show_Status_Bar, &QAction::triggered, statusBar(), &QStatusBar::setVisible); -    connect(ui.action_Reset_Window_Size_720, &QAction::triggered, this, +    connect(ui->action_Reset_Window_Size_720, &QAction::triggered, this,              &GMainWindow::ResetWindowSize720); -    connect(ui.action_Reset_Window_Size_900, &QAction::triggered, this, +    connect(ui->action_Reset_Window_Size_900, &QAction::triggered, this,              &GMainWindow::ResetWindowSize900); -    connect(ui.action_Reset_Window_Size_1080, &QAction::triggered, this, +    connect(ui->action_Reset_Window_Size_1080, &QAction::triggered, this,              &GMainWindow::ResetWindowSize1080); -    ui.menu_Reset_Window_Size->addAction(ui.action_Reset_Window_Size_720); -    ui.menu_Reset_Window_Size->addAction(ui.action_Reset_Window_Size_900); -    ui.menu_Reset_Window_Size->addAction(ui.action_Reset_Window_Size_1080); +    ui->menu_Reset_Window_Size->addAction(ui->action_Reset_Window_Size_720); +    ui->menu_Reset_Window_Size->addAction(ui->action_Reset_Window_Size_900); +    ui->menu_Reset_Window_Size->addAction(ui->action_Reset_Window_Size_1080);      // Fullscreen -    connect(ui.action_Fullscreen, &QAction::triggered, this, &GMainWindow::ToggleFullscreen); +    connect(ui->action_Fullscreen, &QAction::triggered, this, &GMainWindow::ToggleFullscreen);      // Movie -    connect(ui.action_Capture_Screenshot, &QAction::triggered, this, +    connect(ui->action_Capture_Screenshot, &QAction::triggered, this,              &GMainWindow::OnCaptureScreenshot);      // Help -    connect(ui.action_Open_yuzu_Folder, &QAction::triggered, this, &GMainWindow::OnOpenYuzuFolder); -    connect(ui.action_Rederive, &QAction::triggered, this, +    connect(ui->action_Open_yuzu_Folder, &QAction::triggered, this, &GMainWindow::OnOpenYuzuFolder); +    connect(ui->action_Rederive, &QAction::triggered, this,              std::bind(&GMainWindow::OnReinitializeKeys, this, ReinitializeKeyBehavior::Warning)); -    connect(ui.action_About, &QAction::triggered, this, &GMainWindow::OnAbout); +    connect(ui->action_About, &QAction::triggered, this, &GMainWindow::OnAbout);  }  void GMainWindow::OnDisplayTitleBars(bool show) { @@ -1405,7 +1407,7 @@ void GMainWindow::BootGame(const QString& filename, u64 program_id, std::size_t      // Update the GUI      UpdateStatusButtons(); -    if (ui.action_Single_Window_Mode->isChecked()) { +    if (ui->action_Single_Window_Mode->isChecked()) {          game_list->hide();          game_list_placeholder->hide();      } @@ -1451,7 +1453,7 @@ void GMainWindow::BootGame(const QString& filename, u64 program_id, std::size_t      loading_screen->show();      emulation_running = true; -    if (ui.action_Fullscreen->isChecked()) { +    if (ui->action_Fullscreen->isChecked()) {          ShowFullscreen();      }      OnStartGame(); @@ -1462,7 +1464,7 @@ void GMainWindow::ShutdownGame() {          return;      } -    if (ui.action_Fullscreen->isChecked()) { +    if (ui->action_Fullscreen->isChecked()) {          HideFullscreen();      } @@ -1483,15 +1485,15 @@ void GMainWindow::ShutdownGame() {      disconnect(render_window, &GRenderWindow::Closed, this, &GMainWindow::OnStopGame);      // Update the GUI -    ui.action_Start->setEnabled(false); -    ui.action_Start->setText(tr("Start")); -    ui.action_Pause->setEnabled(false); -    ui.action_Stop->setEnabled(false); -    ui.action_Restart->setEnabled(false); -    ui.action_Configure_Current_Game->setEnabled(false); -    ui.action_Report_Compatibility->setEnabled(false); -    ui.action_Load_Amiibo->setEnabled(false); -    ui.action_Capture_Screenshot->setEnabled(false); +    ui->action_Start->setEnabled(false); +    ui->action_Start->setText(tr("Start")); +    ui->action_Pause->setEnabled(false); +    ui->action_Stop->setEnabled(false); +    ui->action_Restart->setEnabled(false); +    ui->action_Configure_Current_Game->setEnabled(false); +    ui->action_Report_Compatibility->setEnabled(false); +    ui->action_Load_Amiibo->setEnabled(false); +    ui->action_Capture_Screenshot->setEnabled(false);      render_window->hide();      loading_screen->hide();      loading_screen->Clear(); @@ -1553,7 +1555,7 @@ void GMainWindow::UpdateRecentFiles() {      }      // Enable the recent files menu if the list isn't empty -    ui.menu_recent_files->setEnabled(num_recent_files != 0); +    ui->menu_recent_files->setEnabled(num_recent_files != 0);  }  void GMainWindow::OnGameListLoadFile(QString game_path, u64 program_id) { @@ -2079,7 +2081,7 @@ void GMainWindow::OnGameListAddDirectory() {  }  void GMainWindow::OnGameListShowList(bool show) { -    if (emulation_running && ui.action_Single_Window_Mode->isChecked()) +    if (emulation_running && ui->action_Single_Window_Mode->isChecked())          return;      game_list->setVisible(show);      game_list_placeholder->setVisible(!show); @@ -2181,7 +2183,7 @@ void GMainWindow::OnMenuInstallToNAND() {      QStringList failed_files{};      // Files that failed to install due to errors      bool detected_base_install{};    // Whether a base game was attempted to be installed -    ui.action_Install_File_NAND->setEnabled(false); +    ui->action_Install_File_NAND->setEnabled(false);      install_progress = new QProgressDialog(QString{}, tr("Cancel"), 0, total_size, this);      install_progress->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint & @@ -2257,7 +2259,7 @@ void GMainWindow::OnMenuInstallToNAND() {      Common::FS::RemoveDirRecursively(Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) /                                       "game_list");      game_list->PopulateAsync(UISettings::values.game_dirs); -    ui.action_Install_File_NAND->setEnabled(true); +    ui->action_Install_File_NAND->setEnabled(true);  }  InstallResult GMainWindow::InstallNSPXCI(const QString& filename) { @@ -2423,27 +2425,27 @@ void GMainWindow::OnStartGame() {      connect(emu_thread.get(), &EmuThread::ErrorThrown, this, &GMainWindow::OnCoreError); -    ui.action_Start->setEnabled(false); -    ui.action_Start->setText(tr("&Continue")); +    ui->action_Start->setEnabled(false); +    ui->action_Start->setText(tr("&Continue")); -    ui.action_Pause->setEnabled(true); -    ui.action_Stop->setEnabled(true); -    ui.action_Restart->setEnabled(true); -    ui.action_Configure_Current_Game->setEnabled(true); -    ui.action_Report_Compatibility->setEnabled(true); +    ui->action_Pause->setEnabled(true); +    ui->action_Stop->setEnabled(true); +    ui->action_Restart->setEnabled(true); +    ui->action_Configure_Current_Game->setEnabled(true); +    ui->action_Report_Compatibility->setEnabled(true);      discord_rpc->Update(); -    ui.action_Load_Amiibo->setEnabled(true); -    ui.action_Capture_Screenshot->setEnabled(true); +    ui->action_Load_Amiibo->setEnabled(true); +    ui->action_Capture_Screenshot->setEnabled(true);  }  void GMainWindow::OnPauseGame() {      emu_thread->SetRunning(false); -    ui.action_Start->setEnabled(true); -    ui.action_Pause->setEnabled(false); -    ui.action_Stop->setEnabled(true); -    ui.action_Capture_Screenshot->setEnabled(false); +    ui->action_Start->setEnabled(true); +    ui->action_Pause->setEnabled(false); +    ui->action_Stop->setEnabled(true); +    ui->action_Capture_Screenshot->setEnabled(false);      AllowOSSleep();  } @@ -2519,7 +2521,7 @@ void GMainWindow::ToggleFullscreen() {      if (!emulation_running) {          return;      } -    if (ui.action_Fullscreen->isChecked()) { +    if (ui->action_Fullscreen->isChecked()) {          ShowFullscreen();      } else {          HideFullscreen(); @@ -2527,10 +2529,10 @@ void GMainWindow::ToggleFullscreen() {  }  void GMainWindow::ShowFullscreen() { -    if (ui.action_Single_Window_Mode->isChecked()) { +    if (ui->action_Single_Window_Mode->isChecked()) {          UISettings::values.geometry = saveGeometry(); -        ui.menubar->hide(); +        ui->menubar->hide();          statusBar()->hide();          if (Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive) { @@ -2564,7 +2566,7 @@ void GMainWindow::ShowFullscreen() {  }  void GMainWindow::HideFullscreen() { -    if (ui.action_Single_Window_Mode->isChecked()) { +    if (ui->action_Single_Window_Mode->isChecked()) {          if (Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive) {              showNormal();              restoreGeometry(UISettings::values.geometry); @@ -2576,8 +2578,8 @@ void GMainWindow::HideFullscreen() {              show();          } -        statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked()); -        ui.menubar->show(); +        statusBar()->setVisible(ui->action_Show_Status_Bar->isChecked()); +        ui->menubar->show();      } else {          if (Settings::values.fullscreen_mode.GetValue() == Settings::FullscreenMode::Exclusive) {              render_window->showNormal(); @@ -2593,10 +2595,10 @@ void GMainWindow::HideFullscreen() {  }  void GMainWindow::ToggleWindowMode() { -    if (ui.action_Single_Window_Mode->isChecked()) { +    if (ui->action_Single_Window_Mode->isChecked()) {          // Render in the main window...          render_window->BackupGeometry(); -        ui.horizontalLayout->addWidget(render_window); +        ui->horizontalLayout->addWidget(render_window);          render_window->setFocusPolicy(Qt::StrongFocus);          if (emulation_running) {              render_window->setVisible(true); @@ -2606,7 +2608,7 @@ void GMainWindow::ToggleWindowMode() {      } else {          // Render in a separate window... -        ui.horizontalLayout->removeWidget(render_window); +        ui->horizontalLayout->removeWidget(render_window);          render_window->setParent(nullptr);          render_window->setFocusPolicy(Qt::NoFocus);          if (emulation_running) { @@ -2621,10 +2623,10 @@ void GMainWindow::ResetWindowSize(u32 width, u32 height) {      const auto aspect_ratio = Layout::EmulationAspectRatio(          static_cast<Layout::AspectRatio>(Settings::values.aspect_ratio.GetValue()),          static_cast<float>(height) / width); -    if (!ui.action_Single_Window_Mode->isChecked()) { +    if (!ui->action_Single_Window_Mode->isChecked()) {          render_window->resize(height / aspect_ratio, height);      } else { -        const bool show_status_bar = ui.action_Show_Status_Bar->isChecked(); +        const bool show_status_bar = ui->action_Show_Status_Bar->isChecked();          const auto status_bar_height = show_status_bar ? statusBar()->height() : 0;          resize(height / aspect_ratio, height + menuBar()->height() + status_bar_height);      } @@ -2835,8 +2837,8 @@ void GMainWindow::OnAbout() {  }  void GMainWindow::OnToggleFilterBar() { -    game_list->SetFilterVisible(ui.action_Show_Filter_Bar->isChecked()); -    if (ui.action_Show_Filter_Bar->isChecked()) { +    game_list->SetFilterVisible(ui->action_Show_Filter_Bar->isChecked()); +    if (ui->action_Show_Filter_Bar->isChecked()) {          game_list->SetFilterFocus();      } else {          game_list->ClearFilter(); @@ -3013,7 +3015,7 @@ void GMainWindow::UpdateStatusButtons() {  }  void GMainWindow::UpdateUISettings() { -    if (!ui.action_Fullscreen->isChecked()) { +    if (!ui->action_Fullscreen->isChecked()) {          UISettings::values.geometry = saveGeometry();          UISettings::values.renderwindow_geometry = render_window->saveGeometry();      } @@ -3022,11 +3024,11 @@ void GMainWindow::UpdateUISettings() {      UISettings::values.microprofile_geometry = microProfileDialog->saveGeometry();      UISettings::values.microprofile_visible = microProfileDialog->isVisible();  #endif -    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.show_filter_bar = ui.action_Show_Filter_Bar->isChecked(); -    UISettings::values.show_status_bar = ui.action_Show_Status_Bar->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.show_filter_bar = ui->action_Show_Filter_Bar->isChecked(); +    UISettings::values.show_status_bar = ui->action_Show_Status_Bar->isChecked();      UISettings::values.first_start = false;  } @@ -3356,7 +3358,7 @@ void GMainWindow::RequestGameExit() {  }  void GMainWindow::filterBarSetChecked(bool state) { -    ui.action_Show_Filter_Bar->setChecked(state); +    ui->action_Show_Filter_Bar->setChecked(state);      emit(OnToggleFilterBar());  } @@ -3424,11 +3426,11 @@ void GMainWindow::OnLanguageChanged(const QString& locale) {      UISettings::values.language = locale;      LoadTranslation(); -    ui.retranslateUi(this); +    ui->retranslateUi(this);      UpdateWindowTitle();      if (emulation_running) -        ui.action_Start->setText(tr("&Continue")); +        ui->action_Start->setText(tr("&Continue"));  }  void GMainWindow::SetDiscordEnabled([[maybe_unused]] bool state) { diff --git a/src/yuzu/main.h b/src/yuzu/main.h index e31b3d06b..f501cf400 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -15,7 +15,6 @@  #include "common/common_types.h"  #include "core/core.h"  #include "core/hle/service/acc/profile_manager.h" -#include "ui_main.h"  #include "yuzu/compatibility_list.h"  #include "yuzu/hotkeys.h" @@ -73,6 +72,10 @@ enum class SwkbdReplyType : u32;  enum class WebExitReason : u32;  } // namespace Service::AM::Applets +namespace Ui { +class MainWindow; +} +  enum class EmulatedDirectoryTarget {      NAND,      SDMC, @@ -306,7 +309,7 @@ private:      void OpenPerGameConfiguration(u64 title_id, const std::string& file_name);      QString GetTasStateDescription() const; -    Ui::MainWindow ui; +    std::unique_ptr<Ui::MainWindow> ui;      std::unique_ptr<DiscordRPC::DiscordInterface> discord_rpc;      std::shared_ptr<InputCommon::InputSubsystem> input_subsystem; | 
