From 5335188e635c8c1b1cb2529e2a921d15c7d02058 Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Tue, 11 Dec 2018 14:47:50 -0600 Subject: Add option to remove column colors for mod list separators --- src/modlist.cpp | 8 +++++--- src/settings.cpp | 8 ++++++++ src/settings.h | 7 +++++++ src/settingsdialog.ui | 40 ++++++++++++++++++++++++++++------------ 4 files changed, 48 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/modlist.cpp b/src/modlist.cpp index 547cc853..dfe2efd3 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -395,7 +395,6 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const return QVariant(); } else if ((role == Qt::BackgroundRole) || (role == ViewMarkingScrollBar::DEFAULT_ROLE)) { - auto flags = modInfo->getFlags(); if (modInfo->getHighlight() & ModInfo::HIGHLIGHT_PLUGIN) { return Settings::instance().modlistContainsPluginColor(); } else if (m_Overwrite.find(modIndex) != m_Overwrite.end()) { @@ -403,8 +402,11 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const } else if (m_Overwritten.find(modIndex) != m_Overwritten.end()) { return Settings::instance().modlistOverwritingLooseColor(); - } else if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_SEPARATOR) != flags.end() && modInfo->getColor().isValid()) { - return modInfo->getColor(); + } else if (modInfo->hasFlag(ModInfo::FLAG_SEPARATOR) + && modInfo->getColor().isValid() + && ((role != ViewMarkingScrollBar::DEFAULT_ROLE) + || Settings::instance().colorSeparatorScrollbar())) { + return modInfo->getColor(); } else { return QVariant(); } diff --git a/src/settings.cpp b/src/settings.cpp index 5db656d8..18e893cb 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -148,6 +148,11 @@ void Settings::registerAsNXMHandler(bool force) } } +bool Settings::colorSeparatorScrollbar() const +{ + return m_Settings.value("Settings/colorSeparatorScrollbars", true).toBool(); +} + void Settings::managedGameChanged(IPluginGame const *gamePlugin) { m_GamePlugin = gamePlugin; @@ -716,6 +721,7 @@ Settings::GeneralTab::GeneralTab(Settings *m_parent, SettingsDialog &m_dialog) , m_overwrittenBtn(m_dialog.findChild("overwrittenBtn")) , m_containsBtn(m_dialog.findChild("containsBtn")) , m_containedBtn(m_dialog.findChild("containedBtn")) + , m_colorSeparatorsBox(m_dialog.findChild("colorSeparatorsBox")) { // FIXME I think 'addLanguages' lives in here not in parent m_parent->addLanguages(m_languageBox); @@ -788,6 +794,7 @@ Settings::GeneralTab::GeneralTab(Settings *m_parent, SettingsDialog &m_dialog) m_compactBox->setChecked(m_parent->compactDownloads()); m_showMetaBox->setChecked(m_parent->metaDownloads()); m_usePrereleaseBox->setChecked(m_parent->usePrereleases()); + m_colorSeparatorsBox->setChecked(m_parent->colorSeparatorScrollbar()); } void Settings::GeneralTab::update() @@ -813,6 +820,7 @@ void Settings::GeneralTab::update() m_Settings.setValue("Settings/compact_downloads", m_compactBox->isChecked()); m_Settings.setValue("Settings/meta_downloads", m_showMetaBox->isChecked()); m_Settings.setValue("Settings/use_prereleases", m_usePrereleaseBox->isChecked()); + m_Settings.setValue("Settings/colorSeparatorScrollbars", m_colorSeparatorsBox->isChecked()); } Settings::PathsTab::PathsTab(Settings *parent, SettingsDialog &dialog) diff --git a/src/settings.h b/src/settings.h index 4009d4a3..912864e2 100644 --- a/src/settings.h +++ b/src/settings.h @@ -365,6 +365,12 @@ public: */ void registerAsNXMHandler(bool force); + /** + * @brief color the scrollbar of the mod list for custom separator colors? + * @return the state of the setting + */ + bool colorSeparatorScrollbar() const; + public slots: void managedGameChanged(MOBase::IPluginGame const *gamePlugin); @@ -414,6 +420,7 @@ private: QPushButton *m_overwrittenBtn; QPushButton *m_containsBtn; QPushButton *m_containedBtn; + QCheckBox *m_colorSeparatorsBox; }; class PathsTab : public SettingsTab diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui index 80a6a0e7..6557bbcc 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -99,31 +99,31 @@ If you use pre-releases, never contact me directly by e-mail or via private mess Colors - - + + - Mod Contains selected Plugin + Reset Colors - - + + - Plugin is Contained in selected Mod + Is overwritten (loose files) - - + + - Reset Colors + Mod Contains selected Plugin - - + + - Is overwritten (loose files) + Plugin is Contained in selected Mod @@ -134,6 +134,22 @@ If you use pre-releases, never contact me directly by e-mail or via private mess + + + + When this is enabled, the color defined for a separator will be shown on the mod list scrollbar at the location of the separator. This can be useful for quick navigation between separator sections or to a specific separator section. + + + When this is enabled, the color defined for a separator will be shown on the mod list scrollbar at the location of the separator. This can be useful for quick navigation between separator sections or to a specific separator section. + + + Show mod list separator colors on the scrollbar + + + true + + + -- cgit v1.3.1