summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authormitaclaw <140017135+mitaclaw@users.noreply.github.com>2024-08-04 06:04:29 -0700
committermitaclaw <140017135+mitaclaw@users.noreply.github.com>2024-08-24 00:29:53 -0700
commitffaba268308dd5238ffede98b2cad8da953fdf4a (patch)
treeecc18663d2e91f5bc803d9115af93d46ca37407d /Source/Core
parent7b89730daac45c09c85b7a97742860f43ccc5edf (diff)
BranchWatchDialog: Refactor For LoadQSettings / SaveQSettings
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/DolphinQt/Debugger/BranchWatchDialog.cpp129
-rw-r--r--Source/Core/DolphinQt/Debugger/BranchWatchDialog.h3
2 files changed, 67 insertions, 65 deletions
diff --git a/Source/Core/DolphinQt/Debugger/BranchWatchDialog.cpp b/Source/Core/DolphinQt/Debugger/BranchWatchDialog.cpp
index 4bd57bb76f..a2b205b12d 100644
--- a/Source/Core/DolphinQt/Debugger/BranchWatchDialog.cpp
+++ b/Source/Core/DolphinQt/Debugger/BranchWatchDialog.cpp
@@ -202,9 +202,6 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
setWindowTitle(tr("Branch Watch Tool"));
setWindowFlags((windowFlags() | Qt::WindowMinMaxButtonsHint) & ~Qt::WindowContextHelpButtonHint);
- // Controls Toolbar (widgets are added later)
- m_control_toolbar = new QToolBar;
-
// Branch Watch Table
const auto& ui_settings = Settings::Instance();
@@ -238,10 +235,6 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
// The default column width (100 units) is fine for the rest.
QHeaderView* const horizontal_header = m_table_view->horizontalHeader();
- horizontal_header->restoreState( // Restore column visibility state.
- Settings::GetQSettings()
- .value(QStringLiteral("branchwatchdialog/tableheader/state"))
- .toByteArray());
horizontal_header->setContextMenuPolicy(Qt::CustomContextMenu);
horizontal_header->setStretchLastSection(true);
horizontal_header->setSectionsMovable(true);
@@ -255,62 +248,12 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
connect(new QShortcut(QKeySequence(Qt::Key_Delete), this), &QShortcut::activated, this,
&BranchWatchDialog::OnTableDeleteKeypress);
- {
- // Column Visibility Menu
- static constexpr std::array<const char*, Column::NumberOfColumns> headers = {
- QT_TR_NOOP("Instruction"), QT_TR_NOOP("Condition"), QT_TR_NOOP("Origin"),
- QT_TR_NOOP("Destination"), QT_TR_NOOP("Recent Hits"), QT_TR_NOOP("Total Hits"),
- QT_TR_NOOP("Origin Symbol"), QT_TR_NOOP("Destination Symbol")};
-
- m_mnu_column_visibility = new QMenu();
- for (int column = 0; column < Column::NumberOfColumns; ++column)
- {
- QAction* const action =
- m_mnu_column_visibility->addAction(tr(headers[column]), [this, column](bool enabled) {
- m_table_view->setColumnHidden(column, !enabled);
- });
- action->setChecked(!m_table_view->isColumnHidden(column));
- action->setCheckable(true);
- }
- }
-
- // Menu Bar
- QMenuBar* const menu_bar = new QMenuBar;
- menu_bar->setNativeMenuBar(false);
- {
- QMenu* const menu_file = new QMenu(tr("&File"), menu_bar);
- menu_file->addAction(tr("&Save Branch Watch"), this, &BranchWatchDialog::OnSave);
- menu_file->addAction(tr("Save Branch Watch &As..."), this, &BranchWatchDialog::OnSaveAs);
- menu_file->addAction(tr("&Load Branch Watch"), this, &BranchWatchDialog::OnLoad);
- menu_file->addAction(tr("Load Branch Watch &From..."), this, &BranchWatchDialog::OnLoadFrom);
- m_act_autosave = menu_file->addAction(tr("A&uto Save"));
- m_act_autosave->setCheckable(true);
- connect(m_act_autosave, &QAction::toggled, this, &BranchWatchDialog::OnToggleAutoSave);
- menu_bar->addMenu(menu_file);
-
- QMenu* const menu_tool = new QMenu(tr("&Tool"), menu_bar);
- menu_tool->setToolTipsVisible(true);
- menu_tool->addAction(tr("Hide &Controls"), this, &BranchWatchDialog::OnHideShowControls)
- ->setCheckable(true);
- QAction* const act_ignore_apploader = menu_tool->addAction(tr("Ignore &Apploader Branch Hits"));
- act_ignore_apploader->setToolTip(
- tr("This only applies to the initial boot of the emulated software."));
- act_ignore_apploader->setChecked(m_system.IsBranchWatchIgnoreApploader());
- act_ignore_apploader->setCheckable(true);
- connect(act_ignore_apploader, &QAction::toggled, this,
- &BranchWatchDialog::OnToggleIgnoreApploader);
-
- menu_tool->addMenu(m_mnu_column_visibility)->setText(tr("Column &Visibility"));
- menu_tool->addAction(tr("Wipe &Inspection Data"), this, &BranchWatchDialog::OnWipeInspection);
- menu_tool->addAction(tr("&Help"), this, &BranchWatchDialog::OnHelp);
-
- menu_bar->addMenu(menu_tool);
- }
-
// Status Bar
m_status_bar = new QStatusBar;
m_status_bar->setSizeGripEnabled(false);
+ // Controls Toolbar
+ m_control_toolbar = new QToolBar;
{
// Tool Controls
m_btn_start_pause = new QPushButton(tr("Start Branch Watch"));
@@ -480,6 +423,59 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
m_control_toolbar->addWidget(group_box);
}
+ LoadQSettings();
+
+ // Column Visibility Menu
+ m_mnu_column_visibility = new QMenu();
+ {
+ static constexpr std::array<const char*, Column::NumberOfColumns> headers = {
+ QT_TR_NOOP("Instruction"), QT_TR_NOOP("Condition"), QT_TR_NOOP("Origin"),
+ QT_TR_NOOP("Destination"), QT_TR_NOOP("Recent Hits"), QT_TR_NOOP("Total Hits"),
+ QT_TR_NOOP("Origin Symbol"), QT_TR_NOOP("Destination Symbol")};
+
+ for (int column = 0; column < Column::NumberOfColumns; ++column)
+ {
+ QAction* const action =
+ m_mnu_column_visibility->addAction(tr(headers[column]), [this, column](bool enabled) {
+ m_table_view->setColumnHidden(column, !enabled);
+ });
+ action->setChecked(!m_table_view->isColumnHidden(column));
+ action->setCheckable(true);
+ }
+ }
+
+ // Menu Bar
+ QMenuBar* const menu_bar = new QMenuBar;
+ menu_bar->setNativeMenuBar(false);
+ {
+ QMenu* const menu = new QMenu(tr("&File"), menu_bar);
+ menu->addAction(tr("&Save Branch Watch"), this, &BranchWatchDialog::OnSave);
+ menu->addAction(tr("Save Branch Watch &As..."), this, &BranchWatchDialog::OnSaveAs);
+ menu->addAction(tr("&Load Branch Watch"), this, &BranchWatchDialog::OnLoad);
+ menu->addAction(tr("Load Branch Watch &From..."), this, &BranchWatchDialog::OnLoadFrom);
+ m_act_autosave = menu->addAction(tr("A&uto Save"));
+ m_act_autosave->setCheckable(true);
+ connect(m_act_autosave, &QAction::toggled, this, &BranchWatchDialog::OnToggleAutoSave);
+ menu_bar->addMenu(menu);
+ }
+ {
+ QMenu* const menu = new QMenu(tr("&Tool"), menu_bar);
+ menu->setToolTipsVisible(true);
+ menu->addAction(tr("Hide &Controls"), this, &BranchWatchDialog::OnHideShowControls)
+ ->setCheckable(true);
+ QAction* const act_ignore_apploader = menu->addAction(tr("Ignore &Apploader Branch Hits"));
+ act_ignore_apploader->setToolTip(
+ tr("This only applies to the initial boot of the emulated software."));
+ act_ignore_apploader->setChecked(m_system.IsBranchWatchIgnoreApploader());
+ act_ignore_apploader->setCheckable(true);
+ connect(act_ignore_apploader, &QAction::toggled, this,
+ &BranchWatchDialog::OnToggleIgnoreApploader);
+ menu->addMenu(m_mnu_column_visibility)->setText(tr("Column &Visibility"));
+ menu->addAction(tr("Wipe &Inspection Data"), this, &BranchWatchDialog::OnWipeInspection);
+ menu->addAction(tr("&Help"), this, &BranchWatchDialog::OnHelp);
+ menu_bar->addMenu(menu);
+ }
+
UpdateIcons();
connect(m_timer = new QTimer, &QTimer::timeout, this, &BranchWatchDialog::OnTimeout);
@@ -495,14 +491,11 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
main_layout->addWidget(m_table_view);
main_layout->addWidget(m_status_bar);
setLayout(main_layout);
-
- const auto& settings = Settings::GetQSettings();
- restoreGeometry(settings.value(QStringLiteral("branchwatchdialog/geometry")).toByteArray());
}
BranchWatchDialog::~BranchWatchDialog()
{
- SaveSettings();
+ SaveQSettings();
}
static constexpr int BRANCH_WATCH_TOOL_TIMER_DELAY_MS = 100;
@@ -893,7 +886,15 @@ void BranchWatchDialog::OnTableSetBreakpointBoth()
SetBreakpoints(true, true);
}
-void BranchWatchDialog::SaveSettings()
+void BranchWatchDialog::LoadQSettings()
+{
+ const auto& settings = Settings::GetQSettings();
+ restoreGeometry(settings.value(QStringLiteral("branchwatchdialog/geometry")).toByteArray());
+ m_table_view->horizontalHeader()->restoreState( // Restore column visibility state.
+ settings.value(QStringLiteral("branchwatchdialog/tableheader/state")).toByteArray());
+}
+
+void BranchWatchDialog::SaveQSettings() const
{
auto& settings = Settings::GetQSettings();
settings.setValue(QStringLiteral("branchwatchdialog/geometry"), saveGeometry());
diff --git a/Source/Core/DolphinQt/Debugger/BranchWatchDialog.h b/Source/Core/DolphinQt/Debugger/BranchWatchDialog.h
index 05a8c82432..52d684ff34 100644
--- a/Source/Core/DolphinQt/Debugger/BranchWatchDialog.h
+++ b/Source/Core/DolphinQt/Debugger/BranchWatchDialog.h
@@ -98,7 +98,8 @@ private:
void OnTableSetBreakpointLog();
void OnTableSetBreakpointBoth();
- void SaveSettings();
+ void LoadQSettings();
+ void SaveQSettings() const;
public:
// TODO: Step doesn't cause EmulationStateChanged to be emitted, so it has to call this manually.