From d0796b4ab23122d5f01378743d93f8c75b19c35c Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Fri, 29 Jan 2021 19:43:24 +0100 Subject: Move settings around. Remove unused settings. --- src/settingsdialogworkarounds.cpp | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'src/settingsdialogworkarounds.cpp') diff --git a/src/settingsdialogworkarounds.cpp b/src/settingsdialogworkarounds.cpp index c050c722..5a4b15ca 100644 --- a/src/settingsdialogworkarounds.cpp +++ b/src/settingsdialogworkarounds.cpp @@ -10,19 +10,6 @@ WorkaroundsSettingsTab::WorkaroundsSettingsTab(Settings& s, SettingsDialog& d) { ui->appIDEdit->setText(settings().steam().appID()); - LoadMechanism::EMechanism mechanismID = settings().game().loadMechanismType(); - int index = 0; - - if (settings().game().loadMechanism().isDirectLoadingSupported()) { - ui->mechanismBox->addItem(QObject::tr("Mod Organizer"), LoadMechanism::LOAD_MODORGANIZER); - if (mechanismID == LoadMechanism::LOAD_MODORGANIZER) { - index = ui->mechanismBox->count() - 1; - } - } - - ui->mechanismBox->setCurrentIndex(index); - - ui->hideUncheckedBox->setChecked(settings().game().hideUncheckedPlugins()); ui->forceEnableBox->setChecked(settings().game().forceEnableCoreFiles()); ui->lockGUIBox->setChecked(settings().interface().lockGUI()); ui->enableArchiveParsingBox->setChecked(settings().archiveParsing()); @@ -42,10 +29,6 @@ void WorkaroundsSettingsTab::update() settings().steam().setAppID(""); } - settings().game().setLoadMechanism(static_cast( - ui->mechanismBox->itemData(ui->mechanismBox->currentIndex()).toInt())); - - settings().game().setHideUncheckedPlugins(ui->hideUncheckedBox->isChecked()); settings().game().setForceEnableCoreFiles(ui->forceEnableBox->isChecked()); settings().interface().setLockGUI(ui->lockGUIBox->isChecked()); settings().setArchiveParsing(ui->enableArchiveParsingBox->isChecked()); -- cgit v1.3.1 From 7610e3139408a8947795140a14a6bd396d4e0f71 Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Fri, 29 Jan 2021 20:03:47 +0100 Subject: Reorganize settingsdialog classes to match UI. --- src/CMakeLists.txt | 4 +- src/settingsdialog.cpp | 8 ++-- src/settingsdialoggeneral.cpp | 74 ++++++++---------------------- src/settingsdialoggeneral.h | 4 -- src/settingsdialogmodlist.cpp | 71 +++++++++++++++++++++++++++++ src/settingsdialogmodlist.h | 27 +++++++++++ src/settingsdialognexus.cpp | 8 ---- src/settingsdialogsteam.cpp | 17 ------- src/settingsdialogsteam.h | 14 ------ src/settingsdialogtheme.cpp | 82 +++++++++++++++++++++++++++++++++ src/settingsdialogtheme.h | 24 ++++++++++ src/settingsdialoguserinterface.cpp | 91 ------------------------------------- src/settingsdialoguserinterface.h | 27 ----------- src/settingsdialogworkarounds.cpp | 35 ++++++++++++-- 14 files changed, 259 insertions(+), 227 deletions(-) create mode 100644 src/settingsdialogmodlist.cpp create mode 100644 src/settingsdialogmodlist.h delete mode 100644 src/settingsdialogsteam.cpp delete mode 100644 src/settingsdialogsteam.h create mode 100644 src/settingsdialogtheme.cpp create mode 100644 src/settingsdialogtheme.h delete mode 100644 src/settingsdialoguserinterface.cpp delete mode 100644 src/settingsdialoguserinterface.h (limited to 'src/settingsdialogworkarounds.cpp') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e8c52721..393ee79a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -202,9 +202,9 @@ add_filter(NAME src/settingsdialog GROUPS settingsdialognexus settingsdialogpaths settingsdialogplugins - settingsdialogsteam settingsdialogworkarounds - settingsdialoguserinterface + settingsdialogmodlist + settingsdialogtheme disableproxyplugindialog ) diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index d6b7ceec..b14deafa 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -24,8 +24,8 @@ along with Mod Organizer. If not, see . #include "settingsdialognexus.h" #include "settingsdialogpaths.h" #include "settingsdialogplugins.h" -#include "settingsdialogsteam.h" -#include "settingsdialoguserinterface.h" +#include "settingsdialogmodlist.h" +#include "settingsdialogtheme.h" #include "settingsdialogworkarounds.h" using namespace MOBase; @@ -40,11 +40,11 @@ SettingsDialog::SettingsDialog(PluginContainer *pluginContainer, Settings& setti ui->setupUi(this); m_tabs.push_back(std::unique_ptr(new GeneralSettingsTab(settings, *this))); - m_tabs.push_back(std::unique_ptr(new UserInterfaceSettingsTab(settings, *this))); + m_tabs.push_back(std::unique_ptr(new ThemeSettingsTab(settings, *this))); + m_tabs.push_back(std::unique_ptr(new ModListSettingsTab(settings, *this))); m_tabs.push_back(std::unique_ptr(new PathsSettingsTab(settings, *this))); m_tabs.push_back(std::unique_ptr(new DiagnosticsSettingsTab(settings, *this))); m_tabs.push_back(std::unique_ptr(new NexusSettingsTab(settings, *this))); - m_tabs.push_back(std::unique_ptr(new SteamSettingsTab(settings, *this))); m_tabs.push_back(std::unique_ptr(new PluginsSettingsTab(settings, m_pluginContainer, *this))); m_tabs.push_back(std::unique_ptr(new WorkaroundsSettingsTab(settings, *this))); } diff --git a/src/settingsdialoggeneral.cpp b/src/settingsdialoggeneral.cpp index 11294d2a..30039575 100644 --- a/src/settingsdialoggeneral.cpp +++ b/src/settingsdialoggeneral.cpp @@ -11,19 +11,23 @@ using namespace MOBase; GeneralSettingsTab::GeneralSettingsTab(Settings& s, SettingsDialog& d) : SettingsTab(s, d) { + // language addLanguages(); selectLanguage(); - addStyles(); - selectStyle(); + // download list + ui->compactBox->setChecked(settings().interface().compactDownloads()); + ui->showMetaBox->setChecked(settings().interface().metaDownloads()); + ui->hideDownloadInstallBox->setChecked(settings().interface().hideDownloadsAfterInstallation()); - ui->centerDialogs->setChecked(settings().geometry().centerDialogs()); - ui->changeGameConfirmation->setChecked(settings().interface().showChangeGameConfirmation()); - ui->doubleClickPreviews->setChecked(settings().interface().doubleClicksOpenPreviews()); + // updates ui->checkForUpdates->setChecked(settings().checkForUpdates()); ui->usePrereleaseBox->setChecked(settings().usePrereleases()); - QObject::connect(ui->exploreStyles, &QPushButton::clicked, [&]{ onExploreStyles(); }); + // miscellaneous + ui->centerDialogs->setChecked(settings().geometry().centerDialogs()); + ui->changeGameConfirmation->setChecked(settings().interface().showChangeGameConfirmation()); + ui->doubleClickPreviews->setChecked(settings().interface().doubleClicksOpenPreviews()); QObject::connect( ui->categoriesBtn, &QPushButton::clicked, [&]{ onEditCategories(); }); @@ -34,6 +38,7 @@ GeneralSettingsTab::GeneralSettingsTab(Settings& s, SettingsDialog& d) void GeneralSettingsTab::update() { + // language const QString oldLanguage = settings().interface().language(); const QString newLanguage = ui->languageBox->itemData( ui->languageBox->currentIndex()).toString(); @@ -43,20 +48,19 @@ void GeneralSettingsTab::update() emit settings().languageChanged(newLanguage); } - const QString oldStyle = settings().interface().styleName().value_or(""); - const QString newStyle = ui->styleBox->itemData( - ui->styleBox->currentIndex()).toString(); + // download list + settings().interface().setCompactDownloads(ui->compactBox->isChecked()); + settings().interface().setMetaDownloads(ui->showMetaBox->isChecked()); + settings().interface().setHideDownloadsAfterInstallation(ui->hideDownloadInstallBox->isChecked()); - if (oldStyle != newStyle) { - settings().interface().setStyleName(newStyle); - emit settings().styleChanged(newStyle); - } + // updates + settings().setCheckForUpdates(ui->checkForUpdates->isChecked()); + settings().setUsePrereleases(ui->usePrereleaseBox->isChecked()); + // miscellaneous settings().geometry().setCenterDialogs(ui->centerDialogs->isChecked()); settings().interface().setShowChangeGameConfirmation(ui->changeGameConfirmation->isChecked()); settings().interface().setDoubleClicksOpenPreviews(ui->doubleClickPreviews->isChecked()); - settings().setCheckForUpdates(ui->checkForUpdates->isChecked()); - settings().setUsePrereleases(ui->usePrereleaseBox->isChecked()); } void GeneralSettingsTab::addLanguages() @@ -127,52 +131,12 @@ void GeneralSettingsTab::selectLanguage() } } -void GeneralSettingsTab::addStyles() -{ - ui->styleBox->addItem("None", ""); - for (auto&& key : QStyleFactory::keys()) { - ui->styleBox->addItem(key, key); - } - - ui->styleBox->insertSeparator(ui->styleBox->count()); - - QDirIterator iter( - QCoreApplication::applicationDirPath() + "/" + - QString::fromStdWString(AppConfig::stylesheetsPath()), - QStringList("*.qss"), - QDir::Files); - - while (iter.hasNext()) { - iter.next(); - - ui->styleBox->addItem( - iter.fileInfo().completeBaseName(), - iter.fileName()); - } -} - -void GeneralSettingsTab::selectStyle() -{ - const int currentID = ui->styleBox->findData( - settings().interface().styleName().value_or("")); - - if (currentID != -1) { - ui->styleBox->setCurrentIndex(currentID); - } -} - void GeneralSettingsTab::resetDialogs() { settings().widgets().resetQuestionButtons(); GlobalSettings::resetDialogs(); } -void GeneralSettingsTab::onExploreStyles() -{ - QString ssPath = QCoreApplication::applicationDirPath() + "/" + ToQString(AppConfig::stylesheetsPath()); - shell::Explore(ssPath); -} - void GeneralSettingsTab::onEditCategories() { CategoriesDialog dialog(&dialog()); diff --git a/src/settingsdialoggeneral.h b/src/settingsdialoggeneral.h index 51e0dc72..8d82564d 100644 --- a/src/settingsdialoggeneral.h +++ b/src/settingsdialoggeneral.h @@ -15,12 +15,8 @@ private: void addLanguages(); void selectLanguage(); - void addStyles(); - void selectStyle(); - void resetDialogs(); - void onExploreStyles(); void onEditCategories(); void onResetDialogs(); }; diff --git a/src/settingsdialogmodlist.cpp b/src/settingsdialogmodlist.cpp new file mode 100644 index 00000000..4c04e3f5 --- /dev/null +++ b/src/settingsdialogmodlist.cpp @@ -0,0 +1,71 @@ +#include "settingsdialogmodlist.h" +#include "ui_settingsdialog.h" +#include "shared/appconfig.h" +#include "categoriesdialog.h" +#include "colortable.h" +#include "modlist.h" +#include +#include + +using namespace MOBase; + +ModListSettingsTab::ModListSettingsTab(Settings& s, SettingsDialog& d) + : SettingsTab(s, d), + m_columnToBox{ + { ModList::COL_CONFLICTFLAGS, ui->collapsibleSeparatorsIconsConflictsBox }, + { ModList::COL_FLAGS, ui->collapsibleSeparatorsIconsFlagsBox }, + { ModList::COL_CONTENT, ui->collapsibleSeparatorsIconsContentsBox}, + { ModList::COL_VERSION, ui->collapsibleSeparatorsIconsVersionBox } + } +{ + // connect before setting to trigger + QObject::connect(ui->collapsibleSeparatorsAscBox, &QCheckBox::toggled, [=] { updateCollapsibleSeparatorsGroup(); }); + QObject::connect(ui->collapsibleSeparatorsDscBox, &QCheckBox::toggled, [=] { updateCollapsibleSeparatorsGroup(); }); + + ui->colorSeparatorsBox->setChecked(settings().colors().colorSeparatorScrollbar()); + ui->displayForeignBox->setChecked(settings().interface().displayForeign()); + ui->collapsibleSeparatorsAscBox->setChecked(settings().interface().collapsibleSeparators(Qt::AscendingOrder)); + ui->collapsibleSeparatorsDscBox->setChecked(settings().interface().collapsibleSeparators(Qt::DescendingOrder)); + ui->collapsibleSeparatorsHighlightFromBox->setChecked(settings().interface().collapsibleSeparatorsHighlightFrom()); + ui->collapsibleSeparatorsHighlightToBox->setChecked(settings().interface().collapsibleSeparatorsHighlightTo()); + ui->collapsibleSeparatorsPerProfileBox->setChecked(settings().interface().collapsibleSeparatorsPerProfile()); + ui->saveFiltersBox->setChecked(settings().interface().saveFilters()); + ui->autoCollapseDelayBox->setChecked(settings().interface().autoCollapseOnHover()); + ui->checkUpdateInstallBox->setChecked(settings().interface().checkUpdateAfterInstallation()); + + for (auto& p : m_columnToBox) { + p.second->setChecked(settings().interface().collapsibleSeparatorsIcons(p.first)); + } + +} + +void ModListSettingsTab::update() +{ + // mod list + settings().colors().setColorSeparatorScrollbar(ui->colorSeparatorsBox->isChecked()); + settings().interface().setDisplayForeign(ui->displayForeignBox->isChecked()); + settings().interface().setCollapsibleSeparators( + ui->collapsibleSeparatorsAscBox->isChecked(), ui->collapsibleSeparatorsDscBox->isChecked()); + settings().interface().setCollapsibleSeparatorsHighlightFrom(ui->collapsibleSeparatorsHighlightFromBox->isChecked()); + settings().interface().setCollapsibleSeparatorsHighlightTo(ui->collapsibleSeparatorsHighlightToBox->isChecked()); + settings().interface().setCollapsibleSeparatorsPerProfile(ui->collapsibleSeparatorsPerProfileBox->isChecked()); + settings().interface().setSaveFilters(ui->saveFiltersBox->isChecked()); + settings().interface().setAutoCollapseOnHover(ui->autoCollapseDelayBox->isChecked()); + settings().interface().setCheckUpdateAfterInstallation(ui->checkUpdateInstallBox->isChecked()); + + for (auto& p : m_columnToBox) { + settings().interface().setCollapsibleSeparatorsIcons(p.first, p.second->isChecked()); + } +} + +void ModListSettingsTab::updateCollapsibleSeparatorsGroup() +{ + const auto checked = ui->collapsibleSeparatorsAscBox->isChecked() || + ui->collapsibleSeparatorsDscBox->isChecked(); + for (auto* widget : ui->collapsibleSeparatorsWidget->findChildren()) { + widget->setEnabled(checked); + } + ui->collapsibleSeparatorsLabel->setEnabled(true); + ui->collapsibleSeparatorsAscBox->setEnabled(true); + ui->collapsibleSeparatorsDscBox->setEnabled(true); +} diff --git a/src/settingsdialogmodlist.h b/src/settingsdialogmodlist.h new file mode 100644 index 00000000..0c0510b5 --- /dev/null +++ b/src/settingsdialogmodlist.h @@ -0,0 +1,27 @@ +#ifndef SETTINGSDIALOGMODLIST_H +#define SETTINGSDIALOGMODLIST_H + +#include + +#include "settingsdialog.h" +#include "settings.h" + +class ModListSettingsTab : public SettingsTab +{ +public: + ModListSettingsTab(Settings& settings, SettingsDialog& dialog); + + void update() override; + +protected slots: + + // enable/disable the collapsible separators group depending on + // the checkbox states + void updateCollapsibleSeparatorsGroup(); + +private: + + const std::map m_columnToBox; +}; + +#endif // SETTINGSDIALOGGENERAL_H diff --git a/src/settingsdialognexus.cpp b/src/settingsdialognexus.cpp index 48827a0e..364c6aa7 100644 --- a/src/settingsdialognexus.cpp +++ b/src/settingsdialognexus.cpp @@ -295,13 +295,9 @@ void NexusConnectionUI::updateState() NexusSettingsTab::NexusSettingsTab(Settings& s, SettingsDialog& d) : SettingsTab(s, d) { - ui->offlineBox->setChecked(settings().network().offlineMode()); - ui->proxyBox->setChecked(settings().network().useProxy()); ui->endorsementBox->setChecked(settings().nexus().endorsementIntegration()); ui->trackedBox->setChecked(settings().nexus().trackedIntegration()); ui->hideAPICounterBox->setChecked(settings().interface().hideAPICounter()); - ui->useCustomBrowser->setChecked(settings().network().useCustomBrowser()); - ui->browserCommand->setText(settings().network().customBrowserCommand()); // display server preferences for (const auto& server : s.network().servers()) { @@ -358,13 +354,9 @@ NexusSettingsTab::NexusSettingsTab(Settings& s, SettingsDialog& d) void NexusSettingsTab::update() { - settings().network().setOfflineMode(ui->offlineBox->isChecked()); - settings().network().setUseProxy(ui->proxyBox->isChecked()); settings().nexus().setEndorsementIntegration(ui->endorsementBox->isChecked()); settings().nexus().setTrackedIntegration(ui->trackedBox->isChecked()); settings().interface().setHideAPICounter(ui->hideAPICounterBox->isChecked()); - settings().network().setUseCustomBrowser(ui->useCustomBrowser->isChecked()); - settings().network().setCustomBrowserCommand(ui->browserCommand->text()); auto servers = settings().network().servers(); diff --git a/src/settingsdialogsteam.cpp b/src/settingsdialogsteam.cpp deleted file mode 100644 index 3c4c5de6..00000000 --- a/src/settingsdialogsteam.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "settingsdialogsteam.h" -#include "ui_settingsdialog.h" - -SteamSettingsTab::SteamSettingsTab(Settings& s, SettingsDialog& d) - : SettingsTab(s, d) -{ - QString username, password; - settings().steam().login(username, password); - - ui->steamUserEdit->setText(username); - ui->steamPassEdit->setText(password); -} - -void SteamSettingsTab::update() -{ - settings().steam().setLogin(ui->steamUserEdit->text(), ui->steamPassEdit->text()); -} diff --git a/src/settingsdialogsteam.h b/src/settingsdialogsteam.h deleted file mode 100644 index 6a3d75f4..00000000 --- a/src/settingsdialogsteam.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef SETTINGSDIALOGSTEAM_H -#define SETTINGSDIALOGSTEAM_H - -#include "settings.h" -#include "settingsdialog.h" - -class SteamSettingsTab : public SettingsTab -{ -public: - SteamSettingsTab(Settings& settings, SettingsDialog& dialog); - void update(); -}; - -#endif // SETTINGSDIALOGSTEAM_H diff --git a/src/settingsdialogtheme.cpp b/src/settingsdialogtheme.cpp new file mode 100644 index 00000000..9b32773b --- /dev/null +++ b/src/settingsdialogtheme.cpp @@ -0,0 +1,82 @@ +#include "settingsdialogtheme.h" +#include "ui_settingsdialog.h" +#include "shared/appconfig.h" +#include "categoriesdialog.h" +#include "colortable.h" +#include "modlist.h" +#include +#include + +using namespace MOBase; + +ThemeSettingsTab::ThemeSettingsTab(Settings& s, SettingsDialog& d) + : SettingsTab(s, d) +{ + // style + addStyles(); + selectStyle(); + + // colors + ui->colorTable->load(s); + + QObject::connect(ui->resetColorsBtn, &QPushButton::clicked, [&] { ui->colorTable->resetColors(); }); + + QObject::connect(ui->exploreStyles, &QPushButton::clicked, [&] { onExploreStyles(); }); +} + +void ThemeSettingsTab::update() +{ + // style + const QString oldStyle = settings().interface().styleName().value_or(""); + const QString newStyle = ui->styleBox->itemData( + ui->styleBox->currentIndex()).toString(); + + if (oldStyle != newStyle) { + settings().interface().setStyleName(newStyle); + emit settings().styleChanged(newStyle); + } + + // colors + ui->colorTable->commitColors(); +} + +void ThemeSettingsTab::addStyles() +{ + ui->styleBox->addItem("None", ""); + for (auto&& key : QStyleFactory::keys()) { + ui->styleBox->addItem(key, key); + } + + ui->styleBox->insertSeparator(ui->styleBox->count()); + + QDirIterator iter( + QCoreApplication::applicationDirPath() + "/" + + QString::fromStdWString(AppConfig::stylesheetsPath()), + QStringList("*.qss"), + QDir::Files); + + while (iter.hasNext()) { + iter.next(); + + ui->styleBox->addItem( + iter.fileInfo().completeBaseName(), + iter.fileName()); + } +} + +void ThemeSettingsTab::selectStyle() +{ + const int currentID = ui->styleBox->findData( + settings().interface().styleName().value_or("")); + + if (currentID != -1) { + ui->styleBox->setCurrentIndex(currentID); + } +} + +void ThemeSettingsTab::onExploreStyles() +{ + QString ssPath = QCoreApplication::applicationDirPath() + "/" + ToQString(AppConfig::stylesheetsPath()); + shell::Explore(ssPath); +} + diff --git a/src/settingsdialogtheme.h b/src/settingsdialogtheme.h new file mode 100644 index 00000000..61334c0b --- /dev/null +++ b/src/settingsdialogtheme.h @@ -0,0 +1,24 @@ +#ifndef SETTINGSDIALOGTHEME_H +#define SETTINGSDIALOGTHEME_H + +#include + +#include "settingsdialog.h" +#include "settings.h" + +class ThemeSettingsTab : public SettingsTab +{ +public: + ThemeSettingsTab(Settings& settings, SettingsDialog& dialog); + + void update() override; + +private: + + void addStyles(); + void selectStyle(); + void onExploreStyles(); + +}; + +#endif // SETTINGSDIALOGGENERAL_H diff --git a/src/settingsdialoguserinterface.cpp b/src/settingsdialoguserinterface.cpp deleted file mode 100644 index 503e0feb..00000000 --- a/src/settingsdialoguserinterface.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include "settingsdialoguserinterface.h" -#include "ui_settingsdialog.h" -#include "shared/appconfig.h" -#include "categoriesdialog.h" -#include "colortable.h" -#include "modlist.h" -#include -#include - -using namespace MOBase; - -UserInterfaceSettingsTab::UserInterfaceSettingsTab(Settings& s, SettingsDialog& d) - : SettingsTab(s, d), - m_columnToBox{ - { ModList::COL_CONFLICTFLAGS, ui->collapsibleSeparatorsIconsConflictsBox }, - { ModList::COL_FLAGS, ui->collapsibleSeparatorsIconsFlagsBox }, - { ModList::COL_CONTENT, ui->collapsibleSeparatorsIconsContentsBox}, - { ModList::COL_VERSION, ui->collapsibleSeparatorsIconsVersionBox } - } -{ - - // connect before setting to trigger - QObject::connect(ui->collapsibleSeparatorsAscBox, &QCheckBox::toggled, [=] { updateCollapsibleSeparatorsGroup(); }); - QObject::connect(ui->collapsibleSeparatorsDscBox, &QCheckBox::toggled, [=] { updateCollapsibleSeparatorsGroup(); }); - - // mod list - ui->displayForeignBox->setChecked(settings().interface().displayForeign()); - ui->colorSeparatorsBox->setChecked(settings().colors().colorSeparatorScrollbar()); - ui->collapsibleSeparatorsAscBox->setChecked(settings().interface().collapsibleSeparators(Qt::AscendingOrder)); - ui->collapsibleSeparatorsDscBox->setChecked(settings().interface().collapsibleSeparators(Qt::DescendingOrder)); - ui->collapsibleSeparatorsHighlightFromBox->setChecked(settings().interface().collapsibleSeparatorsHighlightFrom()); - ui->collapsibleSeparatorsHighlightToBox->setChecked(settings().interface().collapsibleSeparatorsHighlightTo()); - ui->collapsibleSeparatorsPerProfileBox->setChecked(settings().interface().collapsibleSeparatorsPerProfile()); - ui->saveFiltersBox->setChecked(settings().interface().saveFilters()); - ui->autoCollapseDelayBox->setChecked(settings().interface().autoCollapseOnHover()); - ui->checkUpdateInstallBox->setChecked(settings().interface().checkUpdateAfterInstallation()); - - for (auto& p : m_columnToBox) { - p.second->setChecked(settings().interface().collapsibleSeparatorsIcons(p.first)); - } - - // download list - ui->compactBox->setChecked(settings().interface().compactDownloads()); - ui->showMetaBox->setChecked(settings().interface().metaDownloads()); - ui->hideDownloadInstallBox->setChecked(settings().interface().hideDownloadsAfterInstallation()); - - // colors - ui->colorTable->load(s); - - QObject::connect(ui->resetColorsBtn, &QPushButton::clicked, [&] { ui->colorTable->resetColors(); }); - -} - -void UserInterfaceSettingsTab::update() -{ - // mod list - settings().colors().setColorSeparatorScrollbar(ui->colorSeparatorsBox->isChecked()); - settings().interface().setDisplayForeign(ui->displayForeignBox->isChecked()); - settings().interface().setCollapsibleSeparators( - ui->collapsibleSeparatorsAscBox->isChecked(), ui->collapsibleSeparatorsDscBox->isChecked()); - settings().interface().setCollapsibleSeparatorsHighlightFrom(ui->collapsibleSeparatorsHighlightFromBox->isChecked()); - settings().interface().setCollapsibleSeparatorsHighlightTo(ui->collapsibleSeparatorsHighlightToBox->isChecked()); - settings().interface().setCollapsibleSeparatorsPerProfile(ui->collapsibleSeparatorsPerProfileBox->isChecked()); - settings().interface().setSaveFilters(ui->saveFiltersBox->isChecked()); - settings().interface().setAutoCollapseOnHover(ui->autoCollapseDelayBox->isChecked()); - settings().interface().setCheckUpdateAfterInstallation(ui->checkUpdateInstallBox->isChecked()); - - for (auto& p : m_columnToBox) { - settings().interface().setCollapsibleSeparatorsIcons(p.first, p.second->isChecked()); - } - - // download list - settings().interface().setCompactDownloads(ui->compactBox->isChecked()); - settings().interface().setMetaDownloads(ui->showMetaBox->isChecked()); - settings().interface().setHideDownloadsAfterInstallation(ui->hideDownloadInstallBox->isChecked()); - - // colors - ui->colorTable->commitColors(); -} - -void UserInterfaceSettingsTab::updateCollapsibleSeparatorsGroup() -{ - const auto checked = ui->collapsibleSeparatorsAscBox->isChecked() || - ui->collapsibleSeparatorsDscBox->isChecked(); - for (auto* widget : ui->collapsibleSeparatorsWidget->findChildren()) { - widget->setEnabled(checked); - } - ui->collapsibleSeparatorsLabel->setEnabled(true); - ui->collapsibleSeparatorsAscBox->setEnabled(true); - ui->collapsibleSeparatorsDscBox->setEnabled(true); -} diff --git a/src/settingsdialoguserinterface.h b/src/settingsdialoguserinterface.h deleted file mode 100644 index 0c3c7fb7..00000000 --- a/src/settingsdialoguserinterface.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef SETTINGSDIALOGUSERINTERFACE_H -#define SETTINGSDIALOGUSERINTERFACE_H - -#include - -#include "settingsdialog.h" -#include "settings.h" - -class UserInterfaceSettingsTab : public SettingsTab -{ -public: - UserInterfaceSettingsTab(Settings& settings, SettingsDialog& dialog); - - void update() override; - -protected slots: - - // enable/disable the collapsible separators group depending on - // the checkbox states - void updateCollapsibleSeparatorsGroup(); - -private: - - const std::map m_columnToBox; -}; - -#endif // SETTINGSDIALOGGENERAL_H diff --git a/src/settingsdialogworkarounds.cpp b/src/settingsdialogworkarounds.cpp index 5a4b15ca..17b2259b 100644 --- a/src/settingsdialogworkarounds.cpp +++ b/src/settingsdialogworkarounds.cpp @@ -8,12 +8,26 @@ WorkaroundsSettingsTab::WorkaroundsSettingsTab(Settings& s, SettingsDialog& d) : SettingsTab(s, d) { - ui->appIDEdit->setText(settings().steam().appID()); - + // options ui->forceEnableBox->setChecked(settings().game().forceEnableCoreFiles()); ui->lockGUIBox->setChecked(settings().interface().lockGUI()); ui->enableArchiveParsingBox->setChecked(settings().archiveParsing()); + // steam + QString username, password; + settings().steam().login(username, password); + + ui->appIDEdit->setText(settings().steam().appID()); + ui->steamUserEdit->setText(username); + ui->steamPassEdit->setText(password); + + // network + ui->offlineBox->setChecked(settings().network().offlineMode()); + ui->proxyBox->setChecked(settings().network().useProxy()); + ui->useCustomBrowser->setChecked(settings().network().useCustomBrowser()); + ui->browserCommand->setText(settings().network().customBrowserCommand()); + + // buttons m_ExecutableBlacklist = settings().executablesBlacklist(); QObject::connect(ui->bsaDateBtn, &QPushButton::clicked, [&]{ on_bsaDateBtn_clicked(); }); @@ -23,15 +37,26 @@ WorkaroundsSettingsTab::WorkaroundsSettingsTab(Settings& s, SettingsDialog& d) void WorkaroundsSettingsTab::update() { + // options + settings().game().setForceEnableCoreFiles(ui->forceEnableBox->isChecked()); + settings().interface().setLockGUI(ui->lockGUIBox->isChecked()); + settings().setArchiveParsing(ui->enableArchiveParsingBox->isChecked()); + + // steam if (ui->appIDEdit->text() != settings().game().plugin()->steamAPPId()) { settings().steam().setAppID(ui->appIDEdit->text()); } else { settings().steam().setAppID(""); } + settings().steam().setLogin(ui->steamUserEdit->text(), ui->steamPassEdit->text()); - settings().game().setForceEnableCoreFiles(ui->forceEnableBox->isChecked()); - settings().interface().setLockGUI(ui->lockGUIBox->isChecked()); - settings().setArchiveParsing(ui->enableArchiveParsingBox->isChecked()); + // network + settings().network().setOfflineMode(ui->offlineBox->isChecked()); + settings().network().setUseProxy(ui->proxyBox->isChecked()); + settings().network().setUseCustomBrowser(ui->useCustomBrowser->isChecked()); + settings().network().setCustomBrowserCommand(ui->browserCommand->text()); + + // buttons settings().setExecutablesBlacklist(m_ExecutableBlacklist); } -- cgit v1.3.1