summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-05-31 13:59:08 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-05-31 13:59:08 -0400
commit7421aaa33b37bc13a9c5a3f5df2f06b6bf0f09e5 (patch)
treed0e495ed8651f527d25f1208fbee481e1d4cee98 /src
parent0da1c2591f0a67560b241515d996c39598da6735 (diff)
conflict lists
- sorting on advanced list - save state of all four lists - call refreshLists() just before showing because the state has to be loaded first, which happens after the ctor
Diffstat (limited to 'src')
-rw-r--r--src/modinfodialog.cpp36
-rw-r--r--src/modinfodialog.h2
-rw-r--r--src/modinfodialog.ui3
3 files changed, 39 insertions, 2 deletions
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index 97507777..b8a8ae69 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -397,8 +397,6 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo
}
}
- refreshLists();
-
if (modInfo->hasFlag(ModInfo::FLAG_SEPARATOR))
{
ui->tabWidget->setTabEnabled(TAB_TEXTFILES, false);
@@ -501,6 +499,12 @@ ModInfoDialog::~ModInfoDialog()
}
+int ModInfoDialog::exec()
+{
+ refreshLists();
+ return TutorableDialog::exec();
+}
+
void ModInfoDialog::initINITweaks()
{
int numTweaks = m_Settings->beginReadArray("INI Tweaks");
@@ -558,12 +562,40 @@ void ModInfoDialog::saveState(Settings& s) const
{
s.directInterface().setValue("mod_info_tabs", saveTabState());
s.directInterface().setValue("mod_info_conflicts", saveConflictsState());
+
+ s.directInterface().setValue(
+ "mod_info_conflicts_overwrite",
+ ui->overwriteTree->header()->saveState());
+
+ s.directInterface().setValue(
+ "mod_info_conflicts_noconflict",
+ ui->noConflictTree->header()->saveState());
+
+ s.directInterface().setValue(
+ "mod_info_conflicts_overwritten",
+ ui->overwrittenTree->header()->saveState());
+
+ s.directInterface().setValue(
+ "mod_info_advanced_conflicts",
+ ui->conflictsAdvancedList->header()->saveState());
}
void ModInfoDialog::restoreState(const Settings& s)
{
restoreTabState(s.directInterface().value("mod_info_tabs").toByteArray());
restoreConflictsState(s.directInterface().value("mod_info_conflicts").toByteArray());
+
+ ui->overwriteTree->header()->restoreState(
+ s.directInterface().value("mod_info_conflicts_overwrite").toByteArray());
+
+ ui->noConflictTree->header()->restoreState(
+ s.directInterface().value("mod_info_conflicts_noconflict").toByteArray());
+
+ ui->overwrittenTree->header()->restoreState(
+ s.directInterface().value("mod_info_conflicts_overwritten").toByteArray());
+
+ ui->conflictsAdvancedList->header()->restoreState(
+ s.directInterface().value("mod_info_advanced_conflicts").toByteArray());
}
void ModInfoDialog::restoreTabState(const QByteArray &state)
diff --git a/src/modinfodialog.h b/src/modinfodialog.h
index 35f87820..85505487 100644
--- a/src/modinfodialog.h
+++ b/src/modinfodialog.h
@@ -280,6 +280,8 @@ public:
**/
void openTab(int tab);
+ int exec() override;
+
void saveState(Settings& s) const;
void restoreState(const Settings& s);
diff --git a/src/modinfodialog.ui b/src/modinfodialog.ui
index 93291c02..20437e58 100644
--- a/src/modinfodialog.ui
+++ b/src/modinfodialog.ui
@@ -716,6 +716,9 @@ text-align: left;</string>
<property name="uniformRowHeights">
<bool>true</bool>
</property>
+ <property name="sortingEnabled">
+ <bool>true</bool>
+ </property>
<property name="columnCount">
<number>3</number>
</property>