mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 14:25:27 +00:00
qPref: only save settings that aren't the default
This brings us back to the previous behavior. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
d88f865793
commit
e71b049498
7 changed files with 30 additions and 27 deletions
|
@ -45,7 +45,7 @@ void qPrefCloudStorage::set_cloud_base_url(const QString &value)
|
||||||
void qPrefCloudStorage::disk_cloud_base_url(bool doSync)
|
void qPrefCloudStorage::disk_cloud_base_url(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync) {
|
if (doSync) {
|
||||||
qPrefPrivate::propSetValue(group + "/cloud_base_url", prefs.cloud_base_url);
|
qPrefPrivate::propSetValue(group + "/cloud_base_url", prefs.cloud_base_url, default_prefs.cloud_base_url);
|
||||||
} else {
|
} else {
|
||||||
prefs.cloud_base_url = copy_qstring(qPrefPrivate::propValue(group + "/cloud_base_url", default_prefs.cloud_base_url).toString());
|
prefs.cloud_base_url = copy_qstring(qPrefPrivate::propValue(group + "/cloud_base_url", default_prefs.cloud_base_url).toString());
|
||||||
qPrefPrivate::copy_txt(&prefs.cloud_git_url, QString(prefs.cloud_base_url) + "/git");
|
qPrefPrivate::copy_txt(&prefs.cloud_git_url, QString(prefs.cloud_base_url) + "/git");
|
||||||
|
@ -79,7 +79,7 @@ void qPrefCloudStorage::disk_cloud_storage_password(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync) {
|
if (doSync) {
|
||||||
if (prefs.save_password_local)
|
if (prefs.save_password_local)
|
||||||
qPrefPrivate::propSetValue(group + "/password", prefs.cloud_storage_password);
|
qPrefPrivate::propSetValue(group + "/password", prefs.cloud_storage_password, default_prefs.cloud_storage_password);
|
||||||
} else {
|
} else {
|
||||||
prefs.cloud_storage_password = copy_qstring(qPrefPrivate::propValue(group + "/password", default_prefs.cloud_storage_password).toString());
|
prefs.cloud_storage_password = copy_qstring(qPrefPrivate::propValue(group + "/password", default_prefs.cloud_storage_password).toString());
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ void qPrefCloudStorage::disk_userid(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync) {
|
if (doSync) {
|
||||||
// always save in new position (part of cloud storage group)
|
// always save in new position (part of cloud storage group)
|
||||||
qPrefPrivate::propSetValue(group + "subsurface_webservice_uid", prefs.userid);
|
qPrefPrivate::propSetValue(group + "subsurface_webservice_uid", prefs.userid, default_prefs.userid);
|
||||||
} else {
|
} else {
|
||||||
//WARNING: UserId was stored outside of any group.
|
//WARNING: UserId was stored outside of any group.
|
||||||
// try to read from new location, if it fails read from old location
|
// try to read from new location, if it fails read from old location
|
||||||
|
@ -120,5 +120,5 @@ bool qPrefCloudStorage::loadFromCloud(const QString& email)
|
||||||
}
|
}
|
||||||
void qPrefCloudStorage::set_loadFromCloud(const QString& email, bool done)
|
void qPrefCloudStorage::set_loadFromCloud(const QString& email, bool done)
|
||||||
{
|
{
|
||||||
qPrefPrivate::propSetValue(QString("loadFromCloud") + email, done);
|
qPrefPrivate::propSetValue(QString("loadFromCloud") + email, done, "");
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,7 +90,7 @@ void qPrefDisplay::set_divelist_font(const QString &value)
|
||||||
void qPrefDisplay::disk_divelist_font(bool doSync)
|
void qPrefDisplay::disk_divelist_font(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync)
|
if (doSync)
|
||||||
qPrefPrivate::propSetValue(group + "/divelist_font", prefs.divelist_font);
|
qPrefPrivate::propSetValue(group + "/divelist_font", prefs.divelist_font, default_prefs.divelist_font);
|
||||||
else
|
else
|
||||||
setCorrectFont();
|
setCorrectFont();
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ void qPrefDisplay::set_font_size(double value)
|
||||||
void qPrefDisplay::disk_font_size(bool doSync)
|
void qPrefDisplay::disk_font_size(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync)
|
if (doSync)
|
||||||
qPrefPrivate::propSetValue(group + "/font_size", prefs.font_size);
|
qPrefPrivate::propSetValue(group + "/font_size", prefs.font_size, default_prefs.font_size);
|
||||||
else
|
else
|
||||||
setCorrectFont();
|
setCorrectFont();
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ void qPrefGeneral::set_default_file_behavior(enum def_file_behavior value)
|
||||||
void qPrefGeneral::disk_default_file_behavior(bool doSync)
|
void qPrefGeneral::disk_default_file_behavior(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync) {
|
if (doSync) {
|
||||||
qPrefPrivate::propSetValue(group + "/default_file_behavior", prefs.default_file_behavior);
|
qPrefPrivate::propSetValue(group + "/default_file_behavior", prefs.default_file_behavior, default_prefs.default_file_behavior);
|
||||||
} else {
|
} else {
|
||||||
prefs.default_file_behavior = (enum def_file_behavior)qPrefPrivate::propValue(group + "/default_file_behavior", default_prefs.default_file_behavior).toInt();
|
prefs.default_file_behavior = (enum def_file_behavior)qPrefPrivate::propValue(group + "/default_file_behavior", default_prefs.default_file_behavior).toInt();
|
||||||
if (prefs.default_file_behavior == UNDEFINED_DEFAULT_FILE)
|
if (prefs.default_file_behavior == UNDEFINED_DEFAULT_FILE)
|
||||||
|
|
|
@ -32,7 +32,7 @@ void qPrefGeocoding::set_first_taxonomy_category(taxonomy_category value)
|
||||||
void qPrefGeocoding::disk_first_taxonomy_category(bool doSync)
|
void qPrefGeocoding::disk_first_taxonomy_category(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync)
|
if (doSync)
|
||||||
qPrefPrivate::propSetValue(group + "/cat0", prefs.geocoding.category[0]);
|
qPrefPrivate::propSetValue(group + "/cat0", prefs.geocoding.category[0], default_prefs.geocoding.category[0]);
|
||||||
else
|
else
|
||||||
prefs.geocoding.category[0] = (enum taxonomy_category)qPrefPrivate::propValue(group + "/cat0", default_prefs.geocoding.category[0]).toInt();
|
prefs.geocoding.category[0] = (enum taxonomy_category)qPrefPrivate::propValue(group + "/cat0", default_prefs.geocoding.category[0]).toInt();
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ void qPrefGeocoding::set_second_taxonomy_category(taxonomy_category value)
|
||||||
void qPrefGeocoding::disk_second_taxonomy_category(bool doSync)
|
void qPrefGeocoding::disk_second_taxonomy_category(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync)
|
if (doSync)
|
||||||
qPrefPrivate::propSetValue(group + "/cat1", prefs.geocoding.category[1]);
|
qPrefPrivate::propSetValue(group + "/cat1", prefs.geocoding.category[1], default_prefs.geocoding.category[1]);
|
||||||
else
|
else
|
||||||
prefs.geocoding.category[1] = (enum taxonomy_category)qPrefPrivate::propValue(group + "/cat1", default_prefs.geocoding.category[1]).toInt();
|
prefs.geocoding.category[1] = (enum taxonomy_category)qPrefPrivate::propValue(group + "/cat1", default_prefs.geocoding.category[1]).toInt();
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ void qPrefGeocoding::set_third_taxonomy_category(taxonomy_category value)
|
||||||
void qPrefGeocoding::disk_third_taxonomy_category(bool doSync)
|
void qPrefGeocoding::disk_third_taxonomy_category(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync)
|
if (doSync)
|
||||||
qPrefPrivate::propSetValue(group + "/cat2", prefs.geocoding.category[2]);
|
qPrefPrivate::propSetValue(group + "/cat2", prefs.geocoding.category[2], default_prefs.geocoding.category[2]);
|
||||||
else
|
else
|
||||||
prefs.geocoding.category[2] = (enum taxonomy_category)qPrefPrivate::propValue(group + "/cat2", default_prefs.geocoding.category[2]).toInt();
|
prefs.geocoding.category[2] = (enum taxonomy_category)qPrefPrivate::propValue(group + "/cat2", default_prefs.geocoding.category[2]).toInt();
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,14 +9,17 @@ void qPrefPrivate::copy_txt(const char **name, const QString &string)
|
||||||
*name = copy_qstring(string);
|
*name = copy_qstring(string);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qPrefPrivate::propSetValue(const QString &key, const QVariant &value)
|
void qPrefPrivate::propSetValue(const QString &key, const QVariant &value, const QVariant &defaultValue)
|
||||||
{
|
{
|
||||||
// REMARK: making s static (which would be logical) does NOT work
|
// REMARK: making s static (which would be logical) does NOT work
|
||||||
// because it gets initialized too early.
|
// because it gets initialized too early.
|
||||||
// Having it as a local variable is light weight, because it is an
|
// Having it as a local variable is light weight, because it is an
|
||||||
// interface class.
|
// interface class.
|
||||||
QSettings s;
|
QSettings s;
|
||||||
|
if (value != defaultValue)
|
||||||
s.setValue(key, value);
|
s.setValue(key, value);
|
||||||
|
else
|
||||||
|
s.remove(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant qPrefPrivate::propValue(const QString &key, const QVariant &defaultValue)
|
QVariant qPrefPrivate::propValue(const QString &key, const QVariant &defaultValue)
|
||||||
|
|
|
@ -15,7 +15,7 @@ public:
|
||||||
// Helper functions
|
// Helper functions
|
||||||
static void copy_txt(const char **name, const QString &string);
|
static void copy_txt(const char **name, const QString &string);
|
||||||
|
|
||||||
static void propSetValue(const QString &key, const QVariant &value);
|
static void propSetValue(const QString &key, const QVariant &value, const QVariant &defaultValue);
|
||||||
static QVariant propValue(const QString &key, const QVariant &defaultValue);
|
static QVariant propValue(const QString &key, const QVariant &defaultValue);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -28,7 +28,7 @@ private:
|
||||||
void qPref##usegroup::disk_##field(bool doSync) \
|
void qPref##usegroup::disk_##field(bool doSync) \
|
||||||
{ \
|
{ \
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
qPrefPrivate::propSetValue(group + name, prefs.usestruct field); \
|
qPrefPrivate::propSetValue(group + name, prefs.usestruct field, default_prefs.usestruct field); \
|
||||||
else \
|
else \
|
||||||
prefs.usestruct field = qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toBool(); \
|
prefs.usestruct field = qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toBool(); \
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ private:
|
||||||
void qPref##usegroup::disk_##field(bool doSync) \
|
void qPref##usegroup::disk_##field(bool doSync) \
|
||||||
{ \
|
{ \
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
qPrefPrivate::propSetValue(group + name, prefs.usestruct field); \
|
qPrefPrivate::propSetValue(group + name, prefs.usestruct field, default_prefs.usestruct field); \
|
||||||
else \
|
else \
|
||||||
prefs.usestruct field = qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toDouble(); \
|
prefs.usestruct field = qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toDouble(); \
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ private:
|
||||||
void qPref##usegroup::disk_##field(bool doSync) \
|
void qPref##usegroup::disk_##field(bool doSync) \
|
||||||
{ \
|
{ \
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
qPrefPrivate::propSetValue(group + name, prefs.usestruct field); \
|
qPrefPrivate::propSetValue(group + name, prefs.usestruct field, default_prefs.usestruct field); \
|
||||||
else \
|
else \
|
||||||
prefs.usestruct field = (enum type)qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toInt(); \
|
prefs.usestruct field = (enum type)qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toInt(); \
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ private:
|
||||||
void qPref##usegroup::disk_##field(bool doSync) \
|
void qPref##usegroup::disk_##field(bool doSync) \
|
||||||
{ \
|
{ \
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
qPrefPrivate::propSetValue(group + name, prefs.usestruct field); \
|
qPrefPrivate::propSetValue(group + name, prefs.usestruct field, default_prefs.usestruct field); \
|
||||||
else \
|
else \
|
||||||
prefs.usestruct field = qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toInt(); \
|
prefs.usestruct field = qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toInt(); \
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ private:
|
||||||
void qPref##usegroup::disk_##field(bool doSync) \
|
void qPref##usegroup::disk_##field(bool doSync) \
|
||||||
{ \
|
{ \
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
qPrefPrivate::propSetValue(group + name, prefs.usestruct field); \
|
qPrefPrivate::propSetValue(group + name, prefs.usestruct field, default_prefs.usestruct field); \
|
||||||
else \
|
else \
|
||||||
prefs.usestruct field = qPrefPrivate::propValue(group + name, defval).toInt(); \
|
prefs.usestruct field = qPrefPrivate::propValue(group + name, defval).toInt(); \
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@ private:
|
||||||
void qPref##usegroup::disk_##field(bool doSync) \
|
void qPref##usegroup::disk_##field(bool doSync) \
|
||||||
{ \
|
{ \
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
qPrefPrivate::propSetValue(group + name, prefs.usestruct field . var); \
|
qPrefPrivate::propSetValue(group + name, prefs.usestruct field . var, default_prefs.usestruct field . var); \
|
||||||
else \
|
else \
|
||||||
prefs.usestruct field . var = qPrefPrivate::propValue(group + name, default_prefs.usestruct field . var).toInt(); \
|
prefs.usestruct field . var = qPrefPrivate::propValue(group + name, default_prefs.usestruct field . var).toInt(); \
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ private:
|
||||||
void qPref##usegroup::disk_##field(bool doSync) \
|
void qPref##usegroup::disk_##field(bool doSync) \
|
||||||
{ \
|
{ \
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
qPrefPrivate::propSetValue(group + name, prefs.usestruct field); \
|
qPrefPrivate::propSetValue(group + name, prefs.usestruct field, default_prefs.usestruct field); \
|
||||||
else \
|
else \
|
||||||
prefs.usestruct field = copy_qstring(qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toString()); \
|
prefs.usestruct field = copy_qstring(qPrefPrivate::propValue(group + name, default_prefs.usestruct field).toString()); \
|
||||||
}
|
}
|
||||||
|
@ -222,7 +222,7 @@ private:
|
||||||
{ \
|
{ \
|
||||||
if (value != st_##field) { \
|
if (value != st_##field) { \
|
||||||
st_##field = value; \
|
st_##field = value; \
|
||||||
qPrefPrivate::propSetValue(name, st_##field); \
|
qPrefPrivate::propSetValue(name, st_##field, QPointF()); \
|
||||||
emit qPref##useclass::instance()->field##_changed(value); \
|
emit qPref##useclass::instance()->field##_changed(value); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
|
@ -236,7 +236,7 @@ private:
|
||||||
{ \
|
{ \
|
||||||
if (value != st_##field) { \
|
if (value != st_##field) { \
|
||||||
st_##field = value; \
|
st_##field = value; \
|
||||||
qPrefPrivate::propSetValue(name, st_##field); \
|
qPrefPrivate::propSetValue(name, st_##field, ""); \
|
||||||
emit qPref##useclass::instance()->field##_changed(value); \
|
emit qPref##useclass::instance()->field##_changed(value); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
|
@ -250,7 +250,7 @@ private:
|
||||||
{ \
|
{ \
|
||||||
if (value != st_##field) { \
|
if (value != st_##field) { \
|
||||||
st_##field = value; \
|
st_##field = value; \
|
||||||
qPrefPrivate::propSetValue(name, st_##field); \
|
qPrefPrivate::propSetValue(name, st_##field, false); \
|
||||||
emit qPref##useclass::instance()->field##_changed(value); \
|
emit qPref##useclass::instance()->field##_changed(value); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
|
@ -264,7 +264,7 @@ private:
|
||||||
{ \
|
{ \
|
||||||
if (value != st_##field) { \
|
if (value != st_##field) { \
|
||||||
st_##field = value; \
|
st_##field = value; \
|
||||||
qPrefPrivate::propSetValue(name, st_##field); \
|
qPrefPrivate::propSetValue(name, st_##field, 0.0); \
|
||||||
emit qPref##useclass::instance()->field##_changed(value); \
|
emit qPref##useclass::instance()->field##_changed(value); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
|
@ -278,7 +278,7 @@ private:
|
||||||
{ \
|
{ \
|
||||||
if (value != st_##field) { \
|
if (value != st_##field) { \
|
||||||
st_##field = value; \
|
st_##field = value; \
|
||||||
qPrefPrivate::propSetValue(name, st_##field); \
|
qPrefPrivate::propSetValue(name, st_##field, 0); \
|
||||||
emit qPref##useclass::instance()->field##_changed(value); \
|
emit qPref##useclass::instance()->field##_changed(value); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
|
@ -292,7 +292,7 @@ private:
|
||||||
{ \
|
{ \
|
||||||
if (value != st_##field) { \
|
if (value != st_##field) { \
|
||||||
st_##field = value; \
|
st_##field = value; \
|
||||||
qPrefPrivate::propSetValue(name, st_##field); \
|
qPrefPrivate::propSetValue(name, st_##field, QByteArray()); \
|
||||||
emit qPref##useclass::instance()->field##_changed(value); \
|
emit qPref##useclass::instance()->field##_changed(value); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
|
|
|
@ -57,7 +57,7 @@ void qPrefUpdateManager::set_next_check(const QDate& value)
|
||||||
void qPrefUpdateManager::disk_next_check(bool doSync)
|
void qPrefUpdateManager::disk_next_check(bool doSync)
|
||||||
{
|
{
|
||||||
if (doSync)
|
if (doSync)
|
||||||
qPrefPrivate::propSetValue(group + "/NextCheck", prefs.update_manager.next_check);
|
qPrefPrivate::propSetValue(group + "/NextCheck", prefs.update_manager.next_check, default_prefs.update_manager.next_check);
|
||||||
else
|
else
|
||||||
prefs.update_manager.next_check = qPrefPrivate::propValue(group + "/NextCheck", 0).toInt();
|
prefs.update_manager.next_check = qPrefPrivate::propValue(group + "/NextCheck", 0).toInt();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue