Branch Watch Tool: Toolbar Visiblity Menu

Adds the ability to hide unneeded features of the controls toolbar.
This commit is contained in:
mitaclaw 2024-08-04 05:44:44 -07:00
parent 8f76a32be4
commit 2a20e6e3df
2 changed files with 38 additions and 4 deletions

View File

@ -321,7 +321,7 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
group_box->setLayout(layout);
group_box->setAlignment(Qt::AlignHCenter);
m_control_toolbar->addWidget(group_box);
m_act_branch_type_filters = m_control_toolbar->addWidget(group_box);
}
{
// Origin and Destination Filter Options
@ -353,7 +353,7 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
group_box->setLayout(layout);
group_box->setAlignment(Qt::AlignHCenter);
m_control_toolbar->addWidget(group_box);
m_act_origin_destin_filters = m_control_toolbar->addWidget(group_box);
}
{
// Condition Filter Options
@ -382,7 +382,7 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
group_box->setLayout(layout);
group_box->setAlignment(Qt::AlignHCenter);
m_control_toolbar->addWidget(group_box);
m_act_condition_filters = m_control_toolbar->addWidget(group_box);
}
{
// Misc. Controls
@ -411,7 +411,7 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
group_box->setLayout(layout);
group_box->setAlignment(Qt::AlignHCenter);
m_control_toolbar->addWidget(group_box);
m_act_misc_controls = m_control_toolbar->addWidget(group_box);
}
// Table Context Menus
@ -486,6 +486,21 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
}
}
// Toolbar Visibility Menu
auto* const toolbar_visibility_menu = new QMenu(this);
{
const auto routine = [toolbar_visibility_menu](const QString& text, QAction* toolbar_action) {
auto* const menu_action =
toolbar_visibility_menu->addAction(text, toolbar_action, &QAction::setVisible);
menu_action->setChecked(toolbar_action->isVisible());
menu_action->setCheckable(true);
};
routine(tr("&Branch Type"), m_act_branch_type_filters);
routine(tr("&Origin and Destination"), m_act_origin_destin_filters);
routine(tr("&Condition"), m_act_condition_filters);
routine(tr("&Misc. Controls"), m_act_misc_controls);
}
// Menu Bar
auto* const menu_bar = new QMenuBar(nullptr);
menu_bar->setNativeMenuBar(false);
@ -512,6 +527,7 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
connect(act_ignore_apploader, &QAction::toggled, this,
&BranchWatchDialog::OnToggleIgnoreApploader);
menu->addMenu(m_mnu_column_visibility)->setText(tr("Column &Visibility"));
menu->addMenu(toolbar_visibility_menu)->setText(tr("&Toolbar Visibility"));
menu->addAction(tr("Wipe &Inspection Data"), this, &BranchWatchDialog::OnWipeInspection);
menu->addAction(tr("&Help"), this, &BranchWatchDialog::OnHelp);
}
@ -985,6 +1001,14 @@ void BranchWatchDialog::LoadQSettings()
restoreGeometry(settings.value(QStringLiteral("branchwatchdialog/geometry")).toByteArray());
m_table_view->horizontalHeader()->restoreState( // Restore column visibility state.
settings.value(QStringLiteral("branchwatchdialog/tableheader/state")).toByteArray());
m_act_branch_type_filters->setVisible(
!settings.value(QStringLiteral("branchwatchdialog/toolbar/branch_type_hidden")).toBool());
m_act_origin_destin_filters->setVisible(
!settings.value(QStringLiteral("branchwatchdialog/toolbar/origin_destin_hidden")).toBool());
m_act_condition_filters->setVisible(
!settings.value(QStringLiteral("branchwatchdialog/toolbar/condition_hidden")).toBool());
m_act_misc_controls->setVisible(
!settings.value(QStringLiteral("branchwatchdialog/toolbar/misc_controls_hidden")).toBool());
}
void BranchWatchDialog::SaveQSettings() const
@ -993,6 +1017,14 @@ void BranchWatchDialog::SaveQSettings() const
settings.setValue(QStringLiteral("branchwatchdialog/geometry"), saveGeometry());
settings.setValue(QStringLiteral("branchwatchdialog/tableheader/state"),
m_table_view->horizontalHeader()->saveState());
settings.setValue(QStringLiteral("branchwatchdialog/toolbar/branch_type_hidden"),
!m_act_branch_type_filters->isVisible());
settings.setValue(QStringLiteral("branchwatchdialog/toolbar/origin_destin_hidden"),
!m_act_origin_destin_filters->isVisible());
settings.setValue(QStringLiteral("branchwatchdialog/toolbar/condition_hidden"),
!m_act_condition_filters->isVisible());
settings.setValue(QStringLiteral("branchwatchdialog/toolbar/misc_controls_hidden"),
!m_act_misc_controls->isVisible());
}
void BranchWatchDialog::Update() const

View File

@ -153,6 +153,8 @@ private:
QMenu* m_mnu_column_visibility;
QToolBar* m_control_toolbar;
QAction *m_act_branch_type_filters, *m_act_origin_destin_filters, *m_act_condition_filters,
*m_act_misc_controls;
QTableView* m_table_view;
BranchWatchProxyModel* m_table_proxy;
BranchWatchTableModel* m_table_model;