summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/settings.cpp24
-rw-r--r--src/settings.h4
-rw-r--r--src/settingsdialog.cpp4
-rw-r--r--src/settingsdialognexus.cpp12
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();
}