mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07:00
BranchWatchDialog: Defer Layout Construction When Possible
The main layout, tool controls layout, and misc. controls layout all don't need the QLayout constructed so early.
This commit is contained in:
parent
9eb79f1d28
commit
7b89730daa
@ -202,10 +202,8 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
|
|||||||
setWindowTitle(tr("Branch Watch Tool"));
|
setWindowTitle(tr("Branch Watch Tool"));
|
||||||
setWindowFlags((windowFlags() | Qt::WindowMinMaxButtonsHint) & ~Qt::WindowContextHelpButtonHint);
|
setWindowFlags((windowFlags() | Qt::WindowMinMaxButtonsHint) & ~Qt::WindowContextHelpButtonHint);
|
||||||
|
|
||||||
auto* main_layout = new QVBoxLayout;
|
|
||||||
|
|
||||||
// Controls Toolbar (widgets are added later)
|
// Controls Toolbar (widgets are added later)
|
||||||
main_layout->addWidget(m_control_toolbar = new QToolBar);
|
m_control_toolbar = new QToolBar;
|
||||||
|
|
||||||
// Branch Watch Table
|
// Branch Watch Table
|
||||||
const auto& ui_settings = Settings::Instance();
|
const auto& ui_settings = Settings::Instance();
|
||||||
@ -257,8 +255,6 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
|
|||||||
connect(new QShortcut(QKeySequence(Qt::Key_Delete), this), &QShortcut::activated, this,
|
connect(new QShortcut(QKeySequence(Qt::Key_Delete), this), &QShortcut::activated, this,
|
||||||
&BranchWatchDialog::OnTableDeleteKeypress);
|
&BranchWatchDialog::OnTableDeleteKeypress);
|
||||||
|
|
||||||
main_layout->addWidget(m_table_view);
|
|
||||||
|
|
||||||
{
|
{
|
||||||
// Column Visibility Menu
|
// Column Visibility Menu
|
||||||
static constexpr std::array<const char*, Column::NumberOfColumns> headers = {
|
static constexpr std::array<const char*, Column::NumberOfColumns> headers = {
|
||||||
@ -277,11 +273,11 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
|
|||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
|
||||||
// Menu Bar
|
// Menu Bar
|
||||||
QMenuBar* const menu_bar = new QMenuBar;
|
QMenuBar* const menu_bar = new QMenuBar;
|
||||||
menu_bar->setNativeMenuBar(false);
|
menu_bar->setNativeMenuBar(false);
|
||||||
|
{
|
||||||
QMenu* const menu_file = new QMenu(tr("&File"), menu_bar);
|
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"), this, &BranchWatchDialog::OnSave);
|
||||||
menu_file->addAction(tr("Save Branch Watch &As..."), this, &BranchWatchDialog::OnSaveAs);
|
menu_file->addAction(tr("Save Branch Watch &As..."), this, &BranchWatchDialog::OnSaveAs);
|
||||||
@ -309,38 +305,39 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
|
|||||||
menu_tool->addAction(tr("&Help"), this, &BranchWatchDialog::OnHelp);
|
menu_tool->addAction(tr("&Help"), this, &BranchWatchDialog::OnHelp);
|
||||||
|
|
||||||
menu_bar->addMenu(menu_tool);
|
menu_bar->addMenu(menu_tool);
|
||||||
|
|
||||||
main_layout->setMenuBar(menu_bar);
|
|
||||||
}
|
}
|
||||||
{
|
|
||||||
// Status Bar
|
// Status Bar
|
||||||
m_status_bar = new QStatusBar;
|
m_status_bar = new QStatusBar;
|
||||||
m_status_bar->setSizeGripEnabled(false);
|
m_status_bar->setSizeGripEnabled(false);
|
||||||
main_layout->addWidget(m_status_bar);
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
// Tool Controls
|
// Tool Controls
|
||||||
auto* const layout = new QGridLayout;
|
m_btn_start_pause = new QPushButton(tr("Start Branch Watch"));
|
||||||
|
|
||||||
layout->addWidget(m_btn_start_pause = new QPushButton(tr("Start Branch Watch")), 0, 0);
|
|
||||||
connect(m_btn_start_pause, &QPushButton::toggled, this, &BranchWatchDialog::OnStartPause);
|
connect(m_btn_start_pause, &QPushButton::toggled, this, &BranchWatchDialog::OnStartPause);
|
||||||
m_btn_start_pause->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
m_btn_start_pause->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||||
m_btn_start_pause->setCheckable(true);
|
m_btn_start_pause->setCheckable(true);
|
||||||
|
|
||||||
layout->addWidget(m_btn_clear_watch = new QPushButton(tr("Clear Branch Watch")), 1, 0);
|
m_btn_clear_watch = new QPushButton(tr("Clear Branch Watch"));
|
||||||
connect(m_btn_clear_watch, &QPushButton::pressed, this, &BranchWatchDialog::OnClearBranchWatch);
|
connect(m_btn_clear_watch, &QPushButton::pressed, this, &BranchWatchDialog::OnClearBranchWatch);
|
||||||
m_btn_clear_watch->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
m_btn_clear_watch->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||||
|
|
||||||
layout->addWidget(m_btn_path_was_taken = new QPushButton(tr("Code Path Was Taken")), 0, 1);
|
m_btn_path_was_taken = new QPushButton(tr("Code Path Was Taken"));
|
||||||
connect(m_btn_path_was_taken, &QPushButton::pressed, this,
|
connect(m_btn_path_was_taken, &QPushButton::pressed, this,
|
||||||
&BranchWatchDialog::OnCodePathWasTaken);
|
&BranchWatchDialog::OnCodePathWasTaken);
|
||||||
m_btn_path_was_taken->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
m_btn_path_was_taken->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||||
|
|
||||||
layout->addWidget(m_btn_path_not_taken = new QPushButton(tr("Code Path Not Taken")), 1, 1);
|
m_btn_path_not_taken = new QPushButton(tr("Code Path Not Taken"));
|
||||||
connect(m_btn_path_not_taken, &QPushButton::pressed, this,
|
connect(m_btn_path_not_taken, &QPushButton::pressed, this,
|
||||||
&BranchWatchDialog::OnCodePathNotTaken);
|
&BranchWatchDialog::OnCodePathNotTaken);
|
||||||
m_btn_path_not_taken->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
m_btn_path_not_taken->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||||
|
|
||||||
|
auto* const layout = new QGridLayout;
|
||||||
|
layout->addWidget(m_btn_start_pause, 0, 0);
|
||||||
|
layout->addWidget(m_btn_clear_watch, 1, 0);
|
||||||
|
layout->addWidget(m_btn_path_was_taken, 0, 1);
|
||||||
|
layout->addWidget(m_btn_path_not_taken, 1, 1);
|
||||||
|
|
||||||
auto* const group_box = new QGroupBox(tr("Tool Controls"));
|
auto* const group_box = new QGroupBox(tr("Tool Controls"));
|
||||||
group_box->setLayout(layout);
|
group_box->setLayout(layout);
|
||||||
group_box->setAlignment(Qt::AlignHCenter);
|
group_box->setAlignment(Qt::AlignHCenter);
|
||||||
@ -455,24 +452,27 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Misc. Controls
|
// Misc. Controls
|
||||||
auto* const layout = new QVBoxLayout;
|
m_btn_was_overwritten = new QPushButton(tr("Branch Was Overwritten"));
|
||||||
|
|
||||||
layout->addWidget(m_btn_was_overwritten = new QPushButton(tr("Branch Was Overwritten")));
|
|
||||||
connect(m_btn_was_overwritten, &QPushButton::pressed, this,
|
connect(m_btn_was_overwritten, &QPushButton::pressed, this,
|
||||||
&BranchWatchDialog::OnBranchWasOverwritten);
|
&BranchWatchDialog::OnBranchWasOverwritten);
|
||||||
m_btn_was_overwritten->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
m_btn_was_overwritten->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||||
|
|
||||||
layout->addWidget(m_btn_not_overwritten = new QPushButton(tr("Branch Not Overwritten")));
|
m_btn_not_overwritten = new QPushButton(tr("Branch Not Overwritten"));
|
||||||
connect(m_btn_not_overwritten, &QPushButton::pressed, this,
|
connect(m_btn_not_overwritten, &QPushButton::pressed, this,
|
||||||
&BranchWatchDialog::OnBranchNotOverwritten);
|
&BranchWatchDialog::OnBranchNotOverwritten);
|
||||||
m_btn_not_overwritten->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
m_btn_not_overwritten->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||||
|
|
||||||
layout->addWidget(m_btn_wipe_recent_hits = new QPushButton(tr("Wipe Recent Hits")));
|
m_btn_wipe_recent_hits = new QPushButton(tr("Wipe Recent Hits"));
|
||||||
connect(m_btn_wipe_recent_hits, &QPushButton::pressed, this,
|
connect(m_btn_wipe_recent_hits, &QPushButton::pressed, this,
|
||||||
&BranchWatchDialog::OnWipeRecentHits);
|
&BranchWatchDialog::OnWipeRecentHits);
|
||||||
m_btn_wipe_recent_hits->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
m_btn_wipe_recent_hits->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||||
m_btn_wipe_recent_hits->setEnabled(false);
|
m_btn_wipe_recent_hits->setEnabled(false);
|
||||||
|
|
||||||
|
auto* const layout = new QVBoxLayout;
|
||||||
|
layout->addWidget(m_btn_was_overwritten);
|
||||||
|
layout->addWidget(m_btn_not_overwritten);
|
||||||
|
layout->addWidget(m_btn_wipe_recent_hits);
|
||||||
|
|
||||||
auto* const group_box = new QGroupBox(tr("Misc. Controls"));
|
auto* const group_box = new QGroupBox(tr("Misc. Controls"));
|
||||||
group_box->setLayout(layout);
|
group_box->setLayout(layout);
|
||||||
group_box->setAlignment(Qt::AlignHCenter);
|
group_box->setAlignment(Qt::AlignHCenter);
|
||||||
@ -489,6 +489,11 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
|
|||||||
connect(m_table_proxy, &BranchWatchProxyModel::layoutChanged, this,
|
connect(m_table_proxy, &BranchWatchProxyModel::layoutChanged, this,
|
||||||
&BranchWatchDialog::UpdateStatus);
|
&BranchWatchDialog::UpdateStatus);
|
||||||
|
|
||||||
|
auto* const main_layout = new QVBoxLayout;
|
||||||
|
main_layout->setMenuBar(menu_bar);
|
||||||
|
main_layout->addWidget(m_control_toolbar);
|
||||||
|
main_layout->addWidget(m_table_view);
|
||||||
|
main_layout->addWidget(m_status_bar);
|
||||||
setLayout(main_layout);
|
setLayout(main_layout);
|
||||||
|
|
||||||
const auto& settings = Settings::GetQSettings();
|
const auto& settings = Settings::GetQSettings();
|
||||||
|
Loading…
Reference in New Issue
Block a user