summaryrefslogtreecommitdiff
path: root/src/citra_qt/main.cpp
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner2017-02-19 12:13:52 -0800
committerGravatar GitHub2017-02-19 12:13:52 -0800
commit7628f3a6fcc166ee123ff26936fbd2e0fed1c4cd (patch)
treeac713d61d2691408d9363c8acb4d666f054248bb /src/citra_qt/main.cpp
parentOpenGL: Check if uniform block exists before updating it (#2581) (diff)
parentQt: Move some connections from .ui file to code (diff)
downloadyuzu-7628f3a6fcc166ee123ff26936fbd2e0fed1c4cd.tar.gz
yuzu-7628f3a6fcc166ee123ff26936fbd2e0fed1c4cd.tar.xz
yuzu-7628f3a6fcc166ee123ff26936fbd2e0fed1c4cd.zip
Merge pull request #2580 from yuriks/qt-cleanup2
Qt cleanups 2
Diffstat (limited to 'src/citra_qt/main.cpp')
-rw-r--r--src/citra_qt/main.cpp115
1 files changed, 63 insertions, 52 deletions
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index 717552468..513da8001 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
@@ -59,13 +59,14 @@ GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) {
59 statusBar()->hide(); 59 statusBar()->hide();
60 60
61 InitializeWidgets(); 61 InitializeWidgets();
62 InitializeDebugMenuActions(); 62 InitializeDebugWidgets();
63 InitializeRecentFileMenuActions(); 63 InitializeRecentFileMenuActions();
64 InitializeHotkeys(); 64 InitializeHotkeys();
65 65
66 SetDefaultUIGeometry(); 66 SetDefaultUIGeometry();
67 RestoreUIState(); 67 RestoreUIState();
68 68
69 ConnectMenuEvents();
69 ConnectWidgetEvents(); 70 ConnectWidgetEvents();
70 71
71 setWindowTitle(QString("Citra | %1-%2").arg(Common::g_scm_branch, Common::g_scm_desc)); 72 setWindowTitle(QString("Citra | %1-%2").arg(Common::g_scm_branch, Common::g_scm_desc));
@@ -93,74 +94,85 @@ void GMainWindow::InitializeWidgets() {
93 94
94 game_list = new GameList(); 95 game_list = new GameList();
95 ui.horizontalLayout->addWidget(game_list); 96 ui.horizontalLayout->addWidget(game_list);
97}
98
99void GMainWindow::InitializeDebugWidgets() {
100 connect(ui.action_Create_Pica_Surface_Viewer, &QAction::triggered, this,
101 &GMainWindow::OnCreateGraphicsSurfaceViewer);
102
103 QMenu* debug_menu = ui.menu_View_Debugging;
96 104
97 profilerWidget = new ProfilerWidget(this); 105 profilerWidget = new ProfilerWidget(this);
98 addDockWidget(Qt::BottomDockWidgetArea, profilerWidget); 106 addDockWidget(Qt::BottomDockWidgetArea, profilerWidget);
99 profilerWidget->hide(); 107 profilerWidget->hide();
108 debug_menu->addAction(profilerWidget->toggleViewAction());
100 109
101#if MICROPROFILE_ENABLED 110#if MICROPROFILE_ENABLED
102 microProfileDialog = new MicroProfileDialog(this); 111 microProfileDialog = new MicroProfileDialog(this);
103 microProfileDialog->hide(); 112 microProfileDialog->hide();
113 debug_menu->addAction(microProfileDialog->toggleViewAction());
104#endif 114#endif
105 115
106 disasmWidget = new DisassemblerWidget(this, emu_thread.get()); 116 disasmWidget = new DisassemblerWidget(this, emu_thread.get());
107 addDockWidget(Qt::BottomDockWidgetArea, disasmWidget); 117 addDockWidget(Qt::BottomDockWidgetArea, disasmWidget);
108 disasmWidget->hide(); 118 disasmWidget->hide();
119 debug_menu->addAction(disasmWidget->toggleViewAction());
120 connect(this, &GMainWindow::EmulationStarting, disasmWidget,
121 &DisassemblerWidget::OnEmulationStarting);
122 connect(this, &GMainWindow::EmulationStopping, disasmWidget,
123 &DisassemblerWidget::OnEmulationStopping);
109 124
110 registersWidget = new RegistersWidget(this); 125 registersWidget = new RegistersWidget(this);
111 addDockWidget(Qt::RightDockWidgetArea, registersWidget); 126 addDockWidget(Qt::RightDockWidgetArea, registersWidget);
112 registersWidget->hide(); 127 registersWidget->hide();
128 debug_menu->addAction(registersWidget->toggleViewAction());
129 connect(this, &GMainWindow::EmulationStarting, registersWidget,
130 &RegistersWidget::OnEmulationStarting);
131 connect(this, &GMainWindow::EmulationStopping, registersWidget,
132 &RegistersWidget::OnEmulationStopping);
113 133
114 callstackWidget = new CallstackWidget(this); 134 callstackWidget = new CallstackWidget(this);
115 addDockWidget(Qt::RightDockWidgetArea, callstackWidget); 135 addDockWidget(Qt::RightDockWidgetArea, callstackWidget);
116 callstackWidget->hide(); 136 callstackWidget->hide();
137 debug_menu->addAction(callstackWidget->toggleViewAction());
117 138
118 graphicsWidget = new GPUCommandStreamWidget(this); 139 graphicsWidget = new GPUCommandStreamWidget(this);
119 addDockWidget(Qt::RightDockWidgetArea, graphicsWidget); 140 addDockWidget(Qt::RightDockWidgetArea, graphicsWidget);
120 graphicsWidget->hide(); 141 graphicsWidget->hide();
142 debug_menu->addAction(graphicsWidget->toggleViewAction());
121 143
122 graphicsCommandsWidget = new GPUCommandListWidget(this); 144 graphicsCommandsWidget = new GPUCommandListWidget(this);
123 addDockWidget(Qt::RightDockWidgetArea, graphicsCommandsWidget); 145 addDockWidget(Qt::RightDockWidgetArea, graphicsCommandsWidget);
124 graphicsCommandsWidget->hide(); 146 graphicsCommandsWidget->hide();
147 debug_menu->addAction(graphicsCommandsWidget->toggleViewAction());
125 148
126 graphicsBreakpointsWidget = new GraphicsBreakPointsWidget(Pica::g_debug_context, this); 149 graphicsBreakpointsWidget = new GraphicsBreakPointsWidget(Pica::g_debug_context, this);
127 addDockWidget(Qt::RightDockWidgetArea, graphicsBreakpointsWidget); 150 addDockWidget(Qt::RightDockWidgetArea, graphicsBreakpointsWidget);
128 graphicsBreakpointsWidget->hide(); 151 graphicsBreakpointsWidget->hide();
152 debug_menu->addAction(graphicsBreakpointsWidget->toggleViewAction());
129 153
130 graphicsVertexShaderWidget = new GraphicsVertexShaderWidget(Pica::g_debug_context, this); 154 graphicsVertexShaderWidget = new GraphicsVertexShaderWidget(Pica::g_debug_context, this);
131 addDockWidget(Qt::RightDockWidgetArea, graphicsVertexShaderWidget); 155 addDockWidget(Qt::RightDockWidgetArea, graphicsVertexShaderWidget);
132 graphicsVertexShaderWidget->hide(); 156 graphicsVertexShaderWidget->hide();
157 debug_menu->addAction(graphicsVertexShaderWidget->toggleViewAction());
133 158
134 graphicsTracingWidget = new GraphicsTracingWidget(Pica::g_debug_context, this); 159 graphicsTracingWidget = new GraphicsTracingWidget(Pica::g_debug_context, this);
135 addDockWidget(Qt::RightDockWidgetArea, graphicsTracingWidget); 160 addDockWidget(Qt::RightDockWidgetArea, graphicsTracingWidget);
136 graphicsTracingWidget->hide(); 161 graphicsTracingWidget->hide();
162 debug_menu->addAction(graphicsTracingWidget->toggleViewAction());
163 connect(this, &GMainWindow::EmulationStarting, graphicsTracingWidget,
164 &GraphicsTracingWidget::OnEmulationStarting);
165 connect(this, &GMainWindow::EmulationStopping, graphicsTracingWidget,
166 &GraphicsTracingWidget::OnEmulationStopping);
137 167
138 waitTreeWidget = new WaitTreeWidget(this); 168 waitTreeWidget = new WaitTreeWidget(this);
139 addDockWidget(Qt::LeftDockWidgetArea, waitTreeWidget); 169 addDockWidget(Qt::LeftDockWidgetArea, waitTreeWidget);
140 waitTreeWidget->hide(); 170 waitTreeWidget->hide();
141}
142
143void GMainWindow::InitializeDebugMenuActions() {
144 auto graphicsSurfaceViewerAction = new QAction(tr("Create Pica Surface Viewer"), this);
145 connect(graphicsSurfaceViewerAction, SIGNAL(triggered()), this,
146 SLOT(OnCreateGraphicsSurfaceViewer()));
147
148 QMenu* debug_menu = ui.menu_View->addMenu(tr("Debugging"));
149 debug_menu->addAction(graphicsSurfaceViewerAction);
150 debug_menu->addSeparator();
151 debug_menu->addAction(profilerWidget->toggleViewAction());
152#if MICROPROFILE_ENABLED
153 debug_menu->addAction(microProfileDialog->toggleViewAction());
154#endif
155 debug_menu->addAction(disasmWidget->toggleViewAction());
156 debug_menu->addAction(registersWidget->toggleViewAction());
157 debug_menu->addAction(callstackWidget->toggleViewAction());
158 debug_menu->addAction(graphicsWidget->toggleViewAction());
159 debug_menu->addAction(graphicsCommandsWidget->toggleViewAction());
160 debug_menu->addAction(graphicsBreakpointsWidget->toggleViewAction());
161 debug_menu->addAction(graphicsVertexShaderWidget->toggleViewAction());
162 debug_menu->addAction(graphicsTracingWidget->toggleViewAction());
163 debug_menu->addAction(waitTreeWidget->toggleViewAction()); 171 debug_menu->addAction(waitTreeWidget->toggleViewAction());
172 connect(this, &GMainWindow::EmulationStarting, waitTreeWidget,
173 &WaitTreeWidget::OnEmulationStarting);
174 connect(this, &GMainWindow::EmulationStopping, waitTreeWidget,
175 &WaitTreeWidget::OnEmulationStopping);
164} 176}
165 177
166void GMainWindow::InitializeRecentFileMenuActions() { 178void GMainWindow::InitializeRecentFileMenuActions() {
@@ -215,41 +227,40 @@ void GMainWindow::RestoreUIState() {
215 ui.action_Single_Window_Mode->setChecked(UISettings::values.single_window_mode); 227 ui.action_Single_Window_Mode->setChecked(UISettings::values.single_window_mode);
216 ToggleWindowMode(); 228 ToggleWindowMode();
217 229
218 ui.actionDisplay_widget_title_bars->setChecked(UISettings::values.display_titlebar); 230 ui.action_Display_Dock_Widget_Headers->setChecked(UISettings::values.display_titlebar);
219 OnDisplayTitleBars(ui.actionDisplay_widget_title_bars->isChecked()); 231 OnDisplayTitleBars(ui.action_Display_Dock_Widget_Headers->isChecked());
220} 232}
221 233
222void GMainWindow::ConnectWidgetEvents() { 234void GMainWindow::ConnectWidgetEvents() {
223 connect(game_list, SIGNAL(GameChosen(QString)), this, SLOT(OnGameListLoadFile(QString)), 235 connect(game_list, SIGNAL(GameChosen(QString)), this, SLOT(OnGameListLoadFile(QString)));
224 Qt::DirectConnection);
225 connect(game_list, SIGNAL(OpenSaveFolderRequested(u64)), this, 236 connect(game_list, SIGNAL(OpenSaveFolderRequested(u64)), this,
226 SLOT(OnGameListOpenSaveFolder(u64)), Qt::DirectConnection); 237 SLOT(OnGameListOpenSaveFolder(u64)));
227 connect(ui.action_Configure, SIGNAL(triggered()), this, SLOT(OnConfigure())); 238
228 connect(ui.action_Load_File, SIGNAL(triggered()), this, SLOT(OnMenuLoadFile()),
229 Qt::DirectConnection);
230 connect(ui.action_Load_Symbol_Map, SIGNAL(triggered()), this, SLOT(OnMenuLoadSymbolMap()));
231 connect(ui.action_Select_Game_List_Root, SIGNAL(triggered()), this,
232 SLOT(OnMenuSelectGameListRoot()));
233 connect(ui.action_Start, SIGNAL(triggered()), this, SLOT(OnStartGame()));
234 connect(ui.action_Pause, SIGNAL(triggered()), this, SLOT(OnPauseGame()));
235 connect(ui.action_Stop, SIGNAL(triggered()), this, SLOT(OnStopGame()));
236 connect(ui.action_Single_Window_Mode, SIGNAL(triggered(bool)), this, SLOT(ToggleWindowMode()));
237
238 connect(this, SIGNAL(EmulationStarting(EmuThread*)), disasmWidget,
239 SLOT(OnEmulationStarting(EmuThread*)));
240 connect(this, SIGNAL(EmulationStopping()), disasmWidget, SLOT(OnEmulationStopping()));
241 connect(this, SIGNAL(EmulationStarting(EmuThread*)), registersWidget,
242 SLOT(OnEmulationStarting(EmuThread*)));
243 connect(this, SIGNAL(EmulationStopping()), registersWidget, SLOT(OnEmulationStopping()));
244 connect(this, SIGNAL(EmulationStarting(EmuThread*)), render_window, 239 connect(this, SIGNAL(EmulationStarting(EmuThread*)), render_window,
245 SLOT(OnEmulationStarting(EmuThread*))); 240 SLOT(OnEmulationStarting(EmuThread*)));
246 connect(this, SIGNAL(EmulationStopping()), render_window, SLOT(OnEmulationStopping())); 241 connect(this, SIGNAL(EmulationStopping()), render_window, SLOT(OnEmulationStopping()));
247 connect(this, SIGNAL(EmulationStarting(EmuThread*)), graphicsTracingWidget, 242}
248 SLOT(OnEmulationStarting(EmuThread*))); 243
249 connect(this, SIGNAL(EmulationStopping()), graphicsTracingWidget, SLOT(OnEmulationStopping())); 244void GMainWindow::ConnectMenuEvents() {
250 connect(this, SIGNAL(EmulationStarting(EmuThread*)), waitTreeWidget, 245 // File
251 SLOT(OnEmulationStarting(EmuThread*))); 246 connect(ui.action_Load_File, &QAction::triggered, this, &GMainWindow::OnMenuLoadFile);
252 connect(this, SIGNAL(EmulationStopping()), waitTreeWidget, SLOT(OnEmulationStopping())); 247 connect(ui.action_Load_Symbol_Map, &QAction::triggered, this,
248 &GMainWindow::OnMenuLoadSymbolMap);
249 connect(ui.action_Select_Game_List_Root, &QAction::triggered, this,
250 &GMainWindow::OnMenuSelectGameListRoot);
251 connect(ui.action_Exit, &QAction::triggered, this, &QMainWindow::close);
252
253 // Emulation
254 connect(ui.action_Start, &QAction::triggered, this, &GMainWindow::OnStartGame);
255 connect(ui.action_Pause, &QAction::triggered, this, &GMainWindow::OnPauseGame);
256 connect(ui.action_Stop, &QAction::triggered, this, &GMainWindow::OnStopGame);
257 connect(ui.action_Configure, &QAction::triggered, this, &GMainWindow::OnConfigure);
258
259 // View
260 connect(ui.action_Single_Window_Mode, &QAction::triggered, this,
261 &GMainWindow::ToggleWindowMode);
262 connect(ui.action_Display_Dock_Widget_Headers, &QAction::triggered, this,
263 &GMainWindow::OnDisplayTitleBars);
253} 264}
254 265
255void GMainWindow::OnDisplayTitleBars(bool show) { 266void GMainWindow::OnDisplayTitleBars(bool show) {
@@ -612,7 +623,7 @@ void GMainWindow::closeEvent(QCloseEvent* event) {
612 UISettings::values.microprofile_visible = microProfileDialog->isVisible(); 623 UISettings::values.microprofile_visible = microProfileDialog->isVisible();
613#endif 624#endif
614 UISettings::values.single_window_mode = ui.action_Single_Window_Mode->isChecked(); 625 UISettings::values.single_window_mode = ui.action_Single_Window_Mode->isChecked();
615 UISettings::values.display_titlebar = ui.actionDisplay_widget_title_bars->isChecked(); 626 UISettings::values.display_titlebar = ui.action_Display_Dock_Widget_Headers->isChecked();
616 UISettings::values.first_start = false; 627 UISettings::values.first_start = false;
617 628
618 game_list->SaveInterfaceLayout(); 629 game_list->SaveInterfaceLayout();