diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-05-31 13:59:08 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-05-31 13:59:08 -0400 |
| commit | 7421aaa33b37bc13a9c5a3f5df2f06b6bf0f09e5 (patch) | |
| tree | d0e495ed8651f527d25f1208fbee481e1d4cee98 /src | |
| parent | 0da1c2591f0a67560b241515d996c39598da6735 (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.cpp | 36 | ||||
| -rw-r--r-- | src/modinfodialog.h | 2 | ||||
| -rw-r--r-- | src/modinfodialog.ui | 3 |
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>
|
