From e02ba3b26d30ffb5010394992c69e94b287eacd7 Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Fri, 1 Jan 2021 12:24:57 +0100 Subject: Some cleaning. Avoid using Qt::UserRole. --- src/modconflicticondelegate.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/modconflicticondelegate.cpp') diff --git a/src/modconflicticondelegate.cpp b/src/modconflicticondelegate.cpp index 2ccf3363..9680aca3 100644 --- a/src/modconflicticondelegate.cpp +++ b/src/modconflicticondelegate.cpp @@ -1,4 +1,5 @@ #include "modconflicticondelegate.h" +#include "modlist.h" #include #include @@ -96,7 +97,7 @@ QList ModConflictIconDelegate::getIconsForFlags( QList ModConflictIconDelegate::getIcons(const QModelIndex &index) const { - QVariant modid = index.data(Qt::UserRole + 1); + QVariant modid = index.data(ModList::IndexRole); if (modid.isValid()) { ModInfo::Ptr info = ModInfo::getByIndex(modid.toInt()); @@ -127,7 +128,7 @@ QString ModConflictIconDelegate::getFlagIcon(ModInfo::EConflictFlag flag) size_t ModConflictIconDelegate::getNumIcons(const QModelIndex &index) const { - unsigned int modIdx = index.data(Qt::UserRole + 1).toInt(); + unsigned int modIdx = index.data(ModList::IndexRole).toInt(); if (modIdx < ModInfo::getNumMods()) { ModInfo::Ptr info = ModInfo::getByIndex(modIdx); std::vector flags = info->getConflictFlags(); @@ -145,7 +146,7 @@ size_t ModConflictIconDelegate::getNumIcons(const QModelIndex &index) const QSize ModConflictIconDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &modelIndex) const { size_t count = getNumIcons(modelIndex); - unsigned int index = modelIndex.data(Qt::UserRole + 1).toInt(); + unsigned int index = modelIndex.data(ModList::IndexRole).toInt(); QSize result; if (index < ModInfo::getNumMods()) { result = QSize(static_cast(count) * 40, 20); -- cgit v1.3.1 From d708287c9e73db94a097b8151ba8f2b6c820a84d Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Fri, 1 Jan 2021 15:30:08 +0100 Subject: Clean code and reorganize. --- src/CMakeLists.txt | 13 ++++++++++--- src/modconflicticondelegate.cpp | 25 ++++++------------------- src/modconflicticondelegate.h | 26 ++++++++++++++++++++------ src/modflagicondelegate.h | 6 +++--- 4 files changed, 39 insertions(+), 31 deletions(-) (limited to 'src/modconflicticondelegate.cpp') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ecb95c9e..da317309 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -132,6 +132,11 @@ add_filter(NAME src/modinfo/dialog GROUPS modinfodialogtab modinfodialogtextfiles ) + +add_filter(NAME src/modinfo/dialog/widgets GROUPS + modidlineedit +) + add_filter(NAME src/modlist GROUPS modlist modlistdropinfo @@ -142,6 +147,11 @@ add_filter(NAME src/modlist GROUPS modlistcontextmenu ) +add_filter(NAME src/delegates GROUPS + modflagicondelegate + modconflicticondelegate +) + add_filter(NAME src/plugins GROUPS pluginlist pluginlistsortproxy @@ -221,9 +231,6 @@ add_filter(NAME src/widgets GROUPS lcdnumber loglist loghighlighter - modflagicondelegate - modconflicticondelegate - modidlineedit noeditdelegate qtgroupingproxy texteditor diff --git a/src/modconflicticondelegate.cpp b/src/modconflicticondelegate.cpp index 9680aca3..a5e80d53 100644 --- a/src/modconflicticondelegate.cpp +++ b/src/modconflicticondelegate.cpp @@ -5,18 +5,6 @@ using namespace MOBase; -ModInfo::EConflictFlag ModConflictIconDelegate::m_ConflictFlags[4] = { ModInfo::FLAG_CONFLICT_MIXED - , ModInfo::FLAG_CONFLICT_OVERWRITE - , ModInfo::FLAG_CONFLICT_OVERWRITTEN - , ModInfo::FLAG_CONFLICT_REDUNDANT }; - -ModInfo::EConflictFlag ModConflictIconDelegate::m_ArchiveLooseConflictFlags[2] = { ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITE - , ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITTEN }; - -ModInfo::EConflictFlag ModConflictIconDelegate::m_ArchiveConflictFlags[3] = { ModInfo::FLAG_ARCHIVE_CONFLICT_MIXED - , ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITE - , ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITTEN }; - ModConflictIconDelegate::ModConflictIconDelegate(QObject *parent, int logicalIndex, int compactSize) : IconDelegate(parent) , m_LogicalIndex(logicalIndex) @@ -44,7 +32,7 @@ QList ModConflictIconDelegate::getIconsForFlags( // insert conflict icons to provide nicer alignment { // insert loose file conflicts first auto iter = std::find_first_of(flags.begin(), flags.end(), - m_ConflictFlags, m_ConflictFlags + 4); + s_ConflictFlags.begin(), s_ConflictFlags.end()); if (iter != flags.end()) { result.append(getFlagIcon(*iter)); flags.erase(iter); @@ -65,8 +53,8 @@ QList ModConflictIconDelegate::getIconsForFlags( } { // insert loose vs archive overwritten third - auto iter = std::find_first_of(flags.begin(), flags.end(), - m_ArchiveLooseConflictFlags + 1, m_ArchiveLooseConflictFlags + 2); + auto iter = std::find(flags.begin(), flags.end(), + ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITTEN); if (iter != flags.end()) { result.append(getFlagIcon(*iter)); flags.erase(iter); @@ -77,7 +65,7 @@ QList ModConflictIconDelegate::getIconsForFlags( { // insert archive conflicts last auto iter = std::find_first_of(flags.begin(), flags.end(), - m_ArchiveConflictFlags, m_ArchiveConflictFlags + 3); + s_ArchiveConflictFlags.begin(), s_ArchiveConflictFlags.end()); if (iter != flags.end()) { result.append(getFlagIcon(*iter)); flags.erase(iter); @@ -133,7 +121,8 @@ size_t ModConflictIconDelegate::getNumIcons(const QModelIndex &index) const ModInfo::Ptr info = ModInfo::getByIndex(modIdx); std::vector flags = info->getConflictFlags(); size_t count = flags.size(); - if (std::find_first_of(flags.begin(), flags.end(), m_ConflictFlags, m_ConflictFlags + 4) == flags.end()) { + if (std::find_first_of(flags.begin(), flags.end(), + s_ConflictFlags.begin(), s_ConflictFlags.end()) == flags.end()) { ++count; } return count; @@ -142,7 +131,6 @@ size_t ModConflictIconDelegate::getNumIcons(const QModelIndex &index) const } } - QSize ModConflictIconDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &modelIndex) const { size_t count = getNumIcons(modelIndex); @@ -158,4 +146,3 @@ QSize ModConflictIconDelegate::sizeHint(const QStyleOptionViewItem &option, cons } return result; } - diff --git a/src/modconflicticondelegate.h b/src/modconflicticondelegate.h index 8645da12..7ab1bd11 100644 --- a/src/modconflicticondelegate.h +++ b/src/modconflicticondelegate.h @@ -1,6 +1,8 @@ #ifndef MODCONFLICTICONDELEGATE_H #define MODCONFLICTICONDELEGATE_H +#include + #include "icondelegate.h" class ModConflictIconDelegate : public IconDelegate @@ -9,7 +11,7 @@ class ModConflictIconDelegate : public IconDelegate public: explicit ModConflictIconDelegate(QObject *parent = 0, int logicalIndex = -1, int compactSize = 80); - virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; + QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override; static QList getIconsForFlags( std::vector flags, bool compact); @@ -20,13 +22,25 @@ public slots: void columnResized(int logicalIndex, int oldSize, int newSize); protected: - virtual QList getIcons(const QModelIndex &index) const; - virtual size_t getNumIcons(const QModelIndex &index) const; + QList getIcons(const QModelIndex &index) const override; + size_t getNumIcons(const QModelIndex &index) const override; private: - static ModInfo::EConflictFlag m_ConflictFlags[4]; - static ModInfo::EConflictFlag m_ArchiveLooseConflictFlags[2]; - static ModInfo::EConflictFlag m_ArchiveConflictFlags[3]; + static constexpr std::array s_ConflictFlags{ + ModInfo::FLAG_CONFLICT_MIXED, + ModInfo::FLAG_CONFLICT_OVERWRITE, + ModInfo::FLAG_CONFLICT_OVERWRITTEN, + ModInfo::FLAG_CONFLICT_REDUNDANT + }; + static constexpr std::array s_ArchiveLooseConflictFlags{ + ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITE, + ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITTEN + }; + static constexpr std::array s_ArchiveConflictFlags{ + ModInfo::FLAG_ARCHIVE_CONFLICT_MIXED, + ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITE, + ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITTEN + }; int m_LogicalIndex; int m_CompactSize; diff --git a/src/modflagicondelegate.h b/src/modflagicondelegate.h index ecab7e95..c6c7c3e8 100644 --- a/src/modflagicondelegate.h +++ b/src/modflagicondelegate.h @@ -9,7 +9,7 @@ class ModFlagIconDelegate : public IconDelegate public: explicit ModFlagIconDelegate(QObject *parent = 0, int logicalIndex = -1, int compactSize = 120); - virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; + QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override; static QList getIconsForFlags( std::vector flags, bool compact); @@ -20,8 +20,8 @@ public slots: void columnResized(int logicalIndex, int oldSize, int newSize); protected: - virtual QList getIcons(const QModelIndex &index) const; - virtual size_t getNumIcons(const QModelIndex &index) const; + QList getIcons(const QModelIndex &index) const override; + size_t getNumIcons(const QModelIndex &index) const override; private: int m_LogicalIndex; -- cgit v1.3.1 From b708bcc097122e5b4f12b520d7f9880cd3cc28aa Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Sun, 3 Jan 2021 12:24:27 +0100 Subject: Show conflict icons from children when separator is collapsed. --- src/modconflicticondelegate.cpp | 38 ++++++++++++++++++++++++++++++-------- src/modconflicticondelegate.h | 16 +++++++++------- 2 files changed, 39 insertions(+), 15 deletions(-) (limited to 'src/modconflicticondelegate.cpp') diff --git a/src/modconflicticondelegate.cpp b/src/modconflicticondelegate.cpp index a5e80d53..4cdea658 100644 --- a/src/modconflicticondelegate.cpp +++ b/src/modconflicticondelegate.cpp @@ -1,12 +1,14 @@ #include "modconflicticondelegate.h" #include "modlist.h" +#include "modlistview.h" #include #include using namespace MOBase; -ModConflictIconDelegate::ModConflictIconDelegate(QObject *parent, int logicalIndex, int compactSize) - : IconDelegate(parent) +ModConflictIconDelegate::ModConflictIconDelegate(ModListView* view, int logicalIndex, int compactSize) + : IconDelegate(view) + , m_View(view) , m_LogicalIndex(logicalIndex) , m_CompactSize(compactSize) , m_Compact(false) @@ -26,7 +28,7 @@ QList ModConflictIconDelegate::getIconsForFlags( QList result; // Don't do flags for overwrite - if (std::find(flags.begin(), flags.end(),ModInfo::FLAG_OVERWRITE_CONFLICT) != flags.end()) + if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE_CONFLICT) != flags.end()) return result; // insert conflict icons to provide nicer alignment @@ -85,14 +87,34 @@ QList ModConflictIconDelegate::getIconsForFlags( QList ModConflictIconDelegate::getIcons(const QModelIndex &index) const { - QVariant modid = index.data(ModList::IndexRole); + QVariant modIndex = index.data(ModList::IndexRole); - if (modid.isValid()) { - ModInfo::Ptr info = ModInfo::getByIndex(modid.toInt()); - return getIconsForFlags(info->getConflictFlags(), m_Compact); + if (!modIndex.isValid()) { + return {}; } - return {}; + ModInfo::Ptr info = ModInfo::getByIndex(modIndex.toInt()); + + auto flags = info->getConflictFlags(); + bool compact = m_Compact; + if (info->isSeparator() + && m_View->hasCollapsibleSeparators() + && !m_View->isExpanded(index.sibling(index.row(), 0))) { + MOBase::log::debug("Recurse for sep {}: {} {} {}", info->name(), info->isSeparator(), m_View->hasCollapsibleSeparators(), m_View->isExpanded(index)); + // combine the child conflicts + std::set eFlags(flags.begin(), flags.end()); + for (int i = 0; i < m_View->model()->rowCount(index); ++i) { + auto cIndex = m_View->model()->index(i, index.column(), index).data(ModList::IndexRole).toInt(); + auto cFlags = ModInfo::getByIndex(cIndex)->getConflictFlags(); + eFlags.insert(cFlags.begin(), cFlags.end()); + } + flags = { eFlags.begin(), eFlags.end() }; + + // force compact because there can be a lots of flags here + compact = true; + } + + return getIconsForFlags(flags, compact); } QString ModConflictIconDelegate::getFlagIcon(ModInfo::EConflictFlag flag) diff --git a/src/modconflicticondelegate.h b/src/modconflicticondelegate.h index 7ab1bd11..a44ce89b 100644 --- a/src/modconflicticondelegate.h +++ b/src/modconflicticondelegate.h @@ -5,23 +5,24 @@ #include "icondelegate.h" +class ModListView; + class ModConflictIconDelegate : public IconDelegate { Q_OBJECT; public: - explicit ModConflictIconDelegate(QObject *parent = 0, int logicalIndex = -1, int compactSize = 80); - QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override; - - static QList getIconsForFlags( - std::vector flags, bool compact); - - static QString getFlagIcon(ModInfo::EConflictFlag flag); + explicit ModConflictIconDelegate(ModListView* parent = nullptr, int logicalIndex = -1, int compactSize = 80); + QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex &index) const override; public slots: void columnResized(int logicalIndex, int oldSize, int newSize); protected: + + static QList getIconsForFlags(std::vector flags, bool compact); + static QString getFlagIcon(ModInfo::EConflictFlag flag); + QList getIcons(const QModelIndex &index) const override; size_t getNumIcons(const QModelIndex &index) const override; @@ -42,6 +43,7 @@ private: ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITTEN }; + ModListView* m_View; int m_LogicalIndex; int m_CompactSize; bool m_Compact; -- cgit v1.3.1 From c36d1126df94d879181a95d63862117a62d5ff60 Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Sun, 3 Jan 2021 12:28:29 +0100 Subject: Remove log. --- src/modconflicticondelegate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/modconflicticondelegate.cpp') diff --git a/src/modconflicticondelegate.cpp b/src/modconflicticondelegate.cpp index 4cdea658..cbc32037 100644 --- a/src/modconflicticondelegate.cpp +++ b/src/modconflicticondelegate.cpp @@ -100,7 +100,7 @@ QList ModConflictIconDelegate::getIcons(const QModelIndex &index) const if (info->isSeparator() && m_View->hasCollapsibleSeparators() && !m_View->isExpanded(index.sibling(index.row(), 0))) { - MOBase::log::debug("Recurse for sep {}: {} {} {}", info->name(), info->isSeparator(), m_View->hasCollapsibleSeparators(), m_View->isExpanded(index)); + // combine the child conflicts std::set eFlags(flags.begin(), flags.end()); for (int i = 0; i < m_View->model()->rowCount(index); ++i) { -- cgit v1.3.1 From fbd7e777d76c2032d8c4df418e5550b14b9c2943 Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Sun, 3 Jan 2021 16:30:35 +0100 Subject: Add option to enable/disable displaying conflicts on collapsed separators. --- src/modconflicticondelegate.cpp | 25 +++---------------------- src/modlistview.cpp | 35 ++++++++++++++++++++++++++++++++++- src/modlistview.h | 6 ++++++ src/settings.cpp | 10 ++++++++++ src/settings.h | 5 +++++ src/settingsdialog.ui | 19 +++++++++++++++++++ src/settingsdialoggeneral.cpp | 7 +++++++ 7 files changed, 84 insertions(+), 23 deletions(-) (limited to 'src/modconflicticondelegate.cpp') diff --git a/src/modconflicticondelegate.cpp b/src/modconflicticondelegate.cpp index cbc32037..73c47a03 100644 --- a/src/modconflicticondelegate.cpp +++ b/src/modconflicticondelegate.cpp @@ -93,28 +93,9 @@ QList ModConflictIconDelegate::getIcons(const QModelIndex &index) const return {}; } - ModInfo::Ptr info = ModInfo::getByIndex(modIndex.toInt()); - - auto flags = info->getConflictFlags(); - bool compact = m_Compact; - if (info->isSeparator() - && m_View->hasCollapsibleSeparators() - && !m_View->isExpanded(index.sibling(index.row(), 0))) { - - // combine the child conflicts - std::set eFlags(flags.begin(), flags.end()); - for (int i = 0; i < m_View->model()->rowCount(index); ++i) { - auto cIndex = m_View->model()->index(i, index.column(), index).data(ModList::IndexRole).toInt(); - auto cFlags = ModInfo::getByIndex(cIndex)->getConflictFlags(); - eFlags.insert(cFlags.begin(), cFlags.end()); - } - flags = { eFlags.begin(), eFlags.end() }; - - // force compact because there can be a lots of flags here - compact = true; - } - - return getIconsForFlags(flags, compact); + bool compact; + auto flags = m_View->conflictFlags(index, &compact); + return getIconsForFlags(flags, compact || m_Compact); } QString ModConflictIconDelegate::getFlagIcon(ModInfo::EConflictFlag flag) diff --git a/src/modlistview.cpp b/src/modlistview.cpp index e6d78bab..531a8d43 100644 --- a/src/modlistview.cpp +++ b/src/modlistview.cpp @@ -1045,7 +1045,9 @@ QColor ModListView::markerColor(const QModelIndex& index) const // collapsed separator auto rowIndex = index.sibling(index.row(), 0); - if (hasCollapsibleSeparators() && model()->hasChildren(rowIndex) && !isExpanded(rowIndex)) { + if (hasCollapsibleSeparators() + && m_core->settings().interface().collapsibleSeparatorsConflicts() + && model()->hasChildren(rowIndex) && !isExpanded(rowIndex)) { std::vector colors; for (int i = 0; i < model()->rowCount(rowIndex); ++i) { @@ -1073,6 +1075,37 @@ QColor ModListView::markerColor(const QModelIndex& index) const return QColor(); } +std::vector ModListView::conflictFlags(const QModelIndex& index, bool* forceCompact) const +{ + ModInfo::Ptr info = ModInfo::getByIndex(index.data(ModList::IndexRole).toInt()); + + auto flags = info->getConflictFlags(); + bool compact = false; + if (info->isSeparator() + && hasCollapsibleSeparators() + && m_core->settings().interface().collapsibleSeparatorsConflicts() + && !isExpanded(index.sibling(index.row(), 0))) { + + // combine the child conflicts + std::set eFlags(flags.begin(), flags.end()); + for (int i = 0; i < model()->rowCount(index); ++i) { + auto cIndex = model()->index(i, index.column(), index).data(ModList::IndexRole).toInt(); + auto cFlags = ModInfo::getByIndex(cIndex)->getConflictFlags(); + eFlags.insert(cFlags.begin(), cFlags.end()); + } + flags = { eFlags.begin(), eFlags.end() }; + + // force compact because there can be a lots of flags here + compact = true; + } + + if (forceCompact) { + *forceCompact = true; + } + + return flags; +} + void ModListView::onSelectionChanged(const QItemSelection& selected, const QItemSelection& deselected) { if (hasCollapsibleSeparators()) { diff --git a/src/modlistview.h b/src/modlistview.h index 9712deab..faa33b6a 100644 --- a/src/modlistview.h +++ b/src/modlistview.h @@ -170,6 +170,7 @@ protected slots: private: + friend class ModConflictIconDelegate; friend class ModListStyledItemDelegated; friend class ModListViewMarkingScrollBar; @@ -191,6 +192,11 @@ private: // QColor markerColor(const QModelIndex& index) const; + // retrieve the conflicts flags for the given index + // + std::vector conflictFlags( + const QModelIndex& index, bool* forceCompact = nullptr) const; + // get/set the selected items on the view, this method return/take indices // from the mod list model, not the view, so it's safe to restore // diff --git a/src/settings.cpp b/src/settings.cpp index 3cc026cf..e04cd0c1 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2185,6 +2185,16 @@ void InterfaceSettings::setCollapsibleSeparators(bool b) set(m_Settings, "Settings", "collapsible_separators", b); } +bool InterfaceSettings::collapsibleSeparatorsConflicts() const +{ + return get(m_Settings, "Settings", "collapsible_separators_conflicts", true); +} + +void InterfaceSettings::setCollapsibleSeparatorsConflicts(bool b) +{ + set(m_Settings, "Settings", "collapsible_separators_conflicts", b); +} + bool InterfaceSettings::compactDownloads() const { return get(m_Settings, "Settings", "compact_downloads", false); diff --git a/src/settings.h b/src/settings.h index 9c3765c2..043b22a4 100644 --- a/src/settings.h +++ b/src/settings.h @@ -626,6 +626,11 @@ public: bool collapsibleSeparators() const; void setCollapsibleSeparators(bool b); + // whether to display mod conflicts on separators when collapsed + // + bool collapsibleSeparatorsConflicts() const; + void setCollapsibleSeparatorsConflicts(bool b); + // whether to show compact downloads // bool compactDownloads() const; diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui index 6655ca97..ae4f4f34 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -403,6 +403,9 @@ + + Allow collapsing separators when sorting by ascending priority. + Use collapsible separators @@ -414,6 +417,22 @@ + + + + Display mod conflicts on separator when collapsed. + + + Display mod conflicts on separator when collapsed. + + + Show conflicts on separators + + + true + + + diff --git a/src/settingsdialoggeneral.cpp b/src/settingsdialoggeneral.cpp index 47388c96..7b854260 100644 --- a/src/settingsdialoggeneral.cpp +++ b/src/settingsdialoggeneral.cpp @@ -19,6 +19,11 @@ GeneralSettingsTab::GeneralSettingsTab(Settings& s, SettingsDialog& d) ui->colorTable->load(s); + // connect before setting to trigger + QObject::connect(ui->collapsibleSeparatorsBox, &QCheckBox::stateChanged, [=](auto&& state) { + ui->collapsibleSeparatorsConflictsBox->setEnabled(state == Qt::Checked); + }); + ui->centerDialogs->setChecked(settings().geometry().centerDialogs()); ui->changeGameConfirmation->setChecked(settings().interface().showChangeGameConfirmation()); ui->doubleClickPreviews->setChecked(settings().interface().doubleClicksOpenPreviews()); @@ -27,6 +32,7 @@ GeneralSettingsTab::GeneralSettingsTab(Settings& s, SettingsDialog& d) ui->checkForUpdates->setChecked(settings().checkForUpdates()); ui->usePrereleaseBox->setChecked(settings().usePrereleases()); ui->colorSeparatorsBox->setChecked(settings().colors().colorSeparatorScrollbar()); + ui->collapsibleSeparatorsConflictsBox->setChecked(settings().interface().collapsibleSeparatorsConflicts()); ui->collapsibleSeparatorsBox->setChecked(settings().interface().collapsibleSeparators()); QObject::connect(ui->exploreStyles, &QPushButton::clicked, [&]{ onExploreStyles(); }); @@ -72,6 +78,7 @@ void GeneralSettingsTab::update() settings().setUsePrereleases(ui->usePrereleaseBox->isChecked()); settings().colors().setColorSeparatorScrollbar(ui->colorSeparatorsBox->isChecked()); settings().interface().setCollapsibleSeparators(ui->collapsibleSeparatorsBox->isChecked()); + settings().interface().setCollapsibleSeparatorsConflicts(ui->collapsibleSeparatorsConflictsBox->isChecked()); } void GeneralSettingsTab::addLanguages() -- cgit v1.3.1