diff options
| -rw-r--r-- | src/settings.cpp | 24 | ||||
| -rw-r--r-- | src/settings.h | 4 | ||||
| -rw-r--r-- | src/settingsdialog.cpp | 4 | ||||
| -rw-r--r-- | src/settingsdialognexus.cpp | 12 |
4 files changed, 36 insertions, 8 deletions
diff --git a/src/settings.cpp b/src/settings.cpp index 2236fc9d..9c9e4c4d 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -545,6 +545,11 @@ std::optional<bool> Settings::getUseProxy() const return getOptional<bool>(m_Settings, "Settings/use_proxy"); } +void Settings::setUseProxy(bool b) +{ + m_Settings.setValue("Settings/use_proxy", b); +} + std::optional<QVersionNumber> Settings::getVersion() const { if (auto v=getOptional<QString>(m_Settings, "version")) { @@ -658,6 +663,11 @@ bool Settings::offlineMode() const return m_Settings.value("Settings/offline_mode", false).toBool(); } +void Settings::setOfflineMode(bool b) +{ + m_Settings.setValue("Settings/offline_mode", b); +} + log::Levels Settings::logLevel() const { return static_cast<log::Levels>(m_Settings.value("Settings/log_level").toInt()); @@ -756,6 +766,11 @@ bool Settings::endorsementIntegration() const return m_Settings.value("Settings/endorsement_integration", true).toBool(); } +void Settings::setEndorsementIntegration(bool b) const +{ + m_Settings.setValue("Settings/endorsement_integration", b); +} + EndorsementState Settings::endorsementState() const { const auto v = getOptional<QString>(m_Settings, "endorse_state"); @@ -778,6 +793,11 @@ bool Settings::hideAPICounter() const return m_Settings.value("Settings/hide_api_counter", false).toBool(); } +void Settings::setHideAPICounter(bool b) +{ + m_Settings.setValue("Settings/hide_api_counter", b); +} + bool Settings::displayForeign() const { return m_Settings.value("Settings/display_foreign", true).toBool(); @@ -886,8 +906,8 @@ void Settings::updateServers(const QList<ServerInfo> &servers) data["premium"] = server.premium; m_Settings.setValue(server.name, data); + } } - } // clean up unavailable servers QDate now = QDate::currentDate(); @@ -1166,7 +1186,7 @@ void Settings::dump() const { static const QStringList ignore({ "username", "password", "nexus_api_key" - }); + }); log::debug("settings:"); diff --git a/src/settings.h b/src/settings.h index 5b1d7bfc..21776169 100644 --- a/src/settings.h +++ b/src/settings.h @@ -359,6 +359,7 @@ public: * @return true if the user disabled internet features */ bool offlineMode() const; + void setOfflineMode(bool b); /** * @return true if the user chose compact downloads @@ -405,11 +406,13 @@ public: * @return true if the user configured the use of a network proxy */ bool useProxy() const; + void setUseProxy(bool b); /** * @return true if endorsement integration is enabled */ bool endorsementIntegration() const; + void setEndorsementIntegration(bool b) const; EndorsementState endorsementState() const; void setEndorsementState(EndorsementState s); @@ -419,6 +422,7 @@ public: * @return true if the API counter should be hidden */ bool hideAPICounter() const; + void setHideAPICounter(bool b); /** * @return true if the user wants to see non-official plugins installed outside MO in his mod list diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index 9d031785..a24416e9 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -51,8 +51,12 @@ int SettingsDialog::exec() { GeometrySaver gs(m_settings, this); + m_settings.restoreIndex(ui->tabWidget); + auto ret = TutorableDialog::exec(); + m_settings.saveIndex(ui->tabWidget); + if (ret == QDialog::Accepted) { for (auto&& tab : m_tabs) { tab->closing(); diff --git a/src/settingsdialognexus.cpp b/src/settingsdialognexus.cpp index b1964069..4d9a18a2 100644 --- a/src/settingsdialognexus.cpp +++ b/src/settingsdialognexus.cpp @@ -114,10 +114,10 @@ NexusSettingsTab::NexusSettingsTab(Settings& s, SettingsDialog& d) void NexusSettingsTab::update() { - qsettings().setValue("Settings/offline_mode", ui->offlineBox->isChecked()); - qsettings().setValue("Settings/use_proxy", ui->proxyBox->isChecked()); - qsettings().setValue("Settings/endorsement_integration", ui->endorsementBox->isChecked()); - qsettings().setValue("Settings/hide_api_counter", ui->hideAPICounterBox->isChecked()); + settings().setOfflineMode(ui->offlineBox->isChecked()); + settings().setUseProxy(ui->proxyBox->isChecked()); + settings().setEndorsementIntegration(ui->endorsementBox->isChecked()); + settings().setHideAPICounter(ui->hideAPICounterBox->isChecked()); // store server preference qsettings().beginGroup("Servers"); @@ -126,14 +126,14 @@ void NexusSettingsTab::update() QVariantMap val = qsettings().value(key).toMap(); val["preferred"] = 0; qsettings().setValue(key, val); - } + } int count = ui->preferredServersList->count(); for (int i = 0; i < count; ++i) { QString key = ui->preferredServersList->item(i)->data(Qt::UserRole).toString(); QVariantMap val = qsettings().value(key).toMap(); val["preferred"] = count - i; qsettings().setValue(key, val); - } + } qsettings().endGroup(); } |
