From f1b621d0babd33537cde97fc9d53e0dfa0ad5ea5 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Mon, 25 Nov 2019 03:34:51 -0500 Subject: save/restore state for loot dialog --- src/lootdialog.cpp | 18 +++++++++++++++--- src/lootdialog.h | 3 +++ 2 files changed, 18 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/lootdialog.cpp b/src/lootdialog.cpp index a8f73cdc..9e269fef 100644 --- a/src/lootdialog.cpp +++ b/src/lootdialog.cpp @@ -3,7 +3,6 @@ #include "loot.h" #include "organizercore.h" #include -#include #include using namespace MOBase; @@ -151,6 +150,20 @@ void LootDialog::openReport() shell::Open(path); } +int LootDialog::exec() +{ + auto& s = m_core.settings(); + + GeometrySaver gs(s, this); + s.geometry().restoreState(&m_expander); + + const auto r = QDialog::exec(); + + s.geometry().saveState(&m_expander); + + return r; +} + void LootDialog::accept() { // no-op @@ -193,11 +206,10 @@ void LootDialog::createUI() log::error("can't open '{}', {}", path, f.errorString()); } + m_expander.set(ui->details, ui->detailsPanel); ui->openJsonReport->setEnabled(false); connect(ui->openJsonReport, &QPushButton::clicked, [&]{ openReport(); }); - new ExpanderWidget(ui->details, ui->detailsPanel); - ui->buttons->setStandardButtons(QDialogButtonBox::Cancel); resize(650, 450); diff --git a/src/lootdialog.h b/src/lootdialog.h index fcdeb304..bc8c01fb 100644 --- a/src/lootdialog.h +++ b/src/lootdialog.h @@ -3,6 +3,7 @@ #include #include +#include namespace Ui { class LootDialog; } @@ -53,11 +54,13 @@ public: void cancel(); void openReport(); + int exec() override; void accept() override; void reject() override; private: std::unique_ptr ui; + MOBase::ExpanderWidget m_expander; OrganizerCore& m_core; Loot& m_loot; bool m_finished; -- cgit v1.3.1