qPref: use helper function to ensure key/name grouping

We had a couple of instances of names being incorrectly merged with their
group, this should handle that better. It's a bit of a big hammer to use, but
it seems to work (and it makes it easy to then git grep for cases that don't
use the new helper function.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2018-09-07 09:06:00 -07:00
parent db57a633d5
commit 2ecbea3d24
15 changed files with 157 additions and 149 deletions

View file

@ -46,16 +46,16 @@ 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, default_prefs.cloud_base_url); qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(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");
} }
} }
HANDLE_PREFERENCE_TXT(CloudStorage, "/email", cloud_storage_email); HANDLE_PREFERENCE_TXT(CloudStorage, "email", cloud_storage_email);
HANDLE_PREFERENCE_TXT(CloudStorage, "/email_encoded", cloud_storage_email_encoded); HANDLE_PREFERENCE_TXT(CloudStorage, "email_encoded", cloud_storage_email_encoded);
void qPrefCloudStorage::set_cloud_storage_newpassword(const QString &value) void qPrefCloudStorage::set_cloud_storage_newpassword(const QString &value)
{ {
@ -80,37 +80,37 @@ 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, default_prefs.cloud_storage_password); qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, "password"), default_prefs.cloud_storage_password).toString());
} }
} }
HANDLE_PREFERENCE_TXT(CloudStorage, "/pin", cloud_storage_pin); HANDLE_PREFERENCE_TXT(CloudStorage, "pin", cloud_storage_pin);
HANDLE_PREFERENCE_INT(CloudStorage, "/timeout", cloud_timeout); HANDLE_PREFERENCE_INT(CloudStorage, "timeout", cloud_timeout);
HANDLE_PREFERENCE_INT(CloudStorage, "/cloud_verification_status", cloud_verification_status); HANDLE_PREFERENCE_INT(CloudStorage, "cloud_verification_status", cloud_verification_status);
HANDLE_PREFERENCE_BOOL(CloudStorage, "/git_local_only", git_local_only); HANDLE_PREFERENCE_BOOL(CloudStorage, "git_local_only", git_local_only);
HANDLE_PREFERENCE_BOOL(CloudStorage, "/save_password_local", save_password_local); HANDLE_PREFERENCE_BOOL(CloudStorage, "save_password_local", save_password_local);
HANDLE_PREFERENCE_BOOL(CloudStorage, "/save_userid_local", save_userid_local); HANDLE_PREFERENCE_BOOL(CloudStorage, "save_userid_local", save_userid_local);
SET_PREFERENCE_TXT(CloudStorage, userid); SET_PREFERENCE_TXT(CloudStorage, userid);
void qPrefCloudStorage::disk_userid(bool doSync) 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, default_prefs.userid); qPrefPrivate::propSetValue(keyFromGroupAndName(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
prefs.userid = copy_qstring(qPrefPrivate::propValue(group + "/subsurface_webservice_uid", "NoUserIdHere").toString()); prefs.userid = copy_qstring(qPrefPrivate::propValue(keyFromGroupAndName(group, "subsurface_webservice_uid"), "NoUserIdHere").toString());
if (QString(prefs.userid) == "NoUserIdHere") { if (QString(prefs.userid) == "NoUserIdHere") {
const QString group = QStringLiteral(""); const QString group = QStringLiteral("");
prefs.userid = copy_qstring(qPrefPrivate::propValue(group + "/subsurface_webservice_uid", default_prefs.userid).toString()); prefs.userid = copy_qstring(qPrefPrivate::propValue(keyFromGroupAndName(group,"subsurface_webservice_uid"), default_prefs.userid).toString());
} }
} }
} }

View file

@ -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, default_prefs.divelist_font); qPrefPrivate::propSetValue(keyFromGroupAndName(group, "divelist_font"), prefs.divelist_font, default_prefs.divelist_font);
else else
setCorrectFont(); setCorrectFont();
} }
@ -110,29 +110,29 @@ 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, default_prefs.font_size); qPrefPrivate::propSetValue(keyFromGroupAndName(group, "font_size"), prefs.font_size, default_prefs.font_size);
else else
setCorrectFont(); setCorrectFont();
} }
//JAN static const QString group = QStringLiteral("Animations"); //JAN static const QString group = QStringLiteral("Animations");
HANDLE_PREFERENCE_INT(Display, "/animation_speed", animation_speed); HANDLE_PREFERENCE_INT(Display, "animation_speed", animation_speed);
HANDLE_PREFERENCE_BOOL(Display, "/displayinvalid", display_invalid_dives); HANDLE_PREFERENCE_BOOL(Display, "displayinvalid", display_invalid_dives);
HANDLE_PREFERENCE_BOOL(Display, "/show_developer", show_developer); HANDLE_PREFERENCE_BOOL(Display, "show_developer", show_developer);
void qPrefDisplay::setCorrectFont() void qPrefDisplay::setCorrectFont()
{ {
// get the font from the settings or our defaults // get the font from the settings or our defaults
// respect the system default font size if none is explicitly set // respect the system default font size if none is explicitly set
QFont defaultFont = qPrefPrivate::propValue(group + "/divelist_font", prefs.divelist_font).value<QFont>(); QFont defaultFont = qPrefPrivate::propValue(keyFromGroupAndName(group, "divelist_font"), prefs.divelist_font).value<QFont>();
if (IS_FP_SAME(system_divelist_default_font_size, -1.0)) { if (IS_FP_SAME(system_divelist_default_font_size, -1.0)) {
prefs.font_size = qApp->font().pointSizeF(); prefs.font_size = qApp->font().pointSizeF();
system_divelist_default_font_size = prefs.font_size; // this way we don't save it on exit system_divelist_default_font_size = prefs.font_size; // this way we don't save it on exit
} }
prefs.font_size = qPrefPrivate::propValue(group + "/font_size", prefs.font_size).toFloat(); prefs.font_size = qPrefPrivate::propValue(keyFromGroupAndName(group, "font_size"), prefs.font_size).toFloat();
// painful effort to ignore previous default fonts on Windows - ridiculous // painful effort to ignore previous default fonts on Windows - ridiculous
QString fontName = defaultFont.toString(); QString fontName = defaultFont.toString();
if (fontName.contains(",")) if (fontName.contains(","))
@ -146,7 +146,7 @@ void qPrefDisplay::setCorrectFont()
defaultFont.setPointSizeF(prefs.font_size); defaultFont.setPointSizeF(prefs.font_size);
qApp->setFont(defaultFont); qApp->setFont(defaultFont);
prefs.display_invalid_dives = qPrefPrivate::propValue(group + "/displayinvalid", default_prefs.display_invalid_dives).toBool(); prefs.display_invalid_dives = qPrefPrivate::propValue(keyFromGroupAndName(group, "displayinvalid"), default_prefs.display_invalid_dives).toBool();
} }
HANDLE_PROP_QSTRING(Display, "FileDialog/LastDir", lastDir); HANDLE_PROP_QSTRING(Display, "FileDialog/LastDir", lastDir);

View file

@ -23,12 +23,12 @@ void qPrefDiveComputer::loadSync(bool doSync)
disk_vendor(doSync); disk_vendor(doSync);
} }
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "/dive_computer_device", device, dive_computer.); HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_device", device, dive_computer.);
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "/dive_computer_device_name", device_name, dive_computer.); HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_device_name", device_name, dive_computer.);
HANDLE_PREFERENCE_INT_EXT(DiveComputer, "/dive_computer_download_mode", download_mode, dive_computer.); HANDLE_PREFERENCE_INT_EXT(DiveComputer, "dive_computer_download_mode", download_mode, dive_computer.);
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "/dive_computer_product", product, dive_computer.); HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_product", product, dive_computer.);
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "/dive_computer_vendor", vendor, dive_computer.); HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_vendor", vendor, dive_computer.);

View file

@ -45,51 +45,51 @@ void qPrefDivePlanner::loadSync(bool doSync)
disk_verbatim_plan(doSync); disk_verbatim_plan(doSync);
} }
HANDLE_PREFERENCE_INT(DivePlanner, "/ascratelast6m", ascratelast6m); HANDLE_PREFERENCE_INT(DivePlanner, "ascratelast6m", ascratelast6m);
HANDLE_PREFERENCE_INT(DivePlanner, "/ascratestops", ascratestops); HANDLE_PREFERENCE_INT(DivePlanner, "ascratestops", ascratestops);
HANDLE_PREFERENCE_INT(DivePlanner, "/ascrate50", ascrate50); HANDLE_PREFERENCE_INT(DivePlanner, "ascrate50", ascrate50);
HANDLE_PREFERENCE_INT(DivePlanner, "/ascrate75", ascrate75); HANDLE_PREFERENCE_INT(DivePlanner, "ascrate75", ascrate75);
HANDLE_PREFERENCE_STRUCT(DivePlanner, depth_t, "/bestmixend", bestmixend, mm); HANDLE_PREFERENCE_STRUCT(DivePlanner, depth_t, "bestmixend", bestmixend, mm);
HANDLE_PREFERENCE_INT(DivePlanner, "/bottompo2", bottompo2); HANDLE_PREFERENCE_INT(DivePlanner, "bottompo2", bottompo2);
HANDLE_PREFERENCE_INT(DivePlanner, "/bottomsac", bottomsac); HANDLE_PREFERENCE_INT(DivePlanner, "bottomsac", bottomsac);
HANDLE_PREFERENCE_INT(DivePlanner, "/decopo2", decopo2); HANDLE_PREFERENCE_INT(DivePlanner, "decopo2", decopo2);
HANDLE_PREFERENCE_INT(DivePlanner, "/decosac", decosac); HANDLE_PREFERENCE_INT(DivePlanner, "decosac", decosac);
HANDLE_PREFERENCE_INT(DivePlanner, "/descrate", descrate); HANDLE_PREFERENCE_INT(DivePlanner, "descrate", descrate);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/display_duration", display_duration); HANDLE_PREFERENCE_BOOL(DivePlanner, "display_duration", display_duration);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/display_runtime", display_runtime); HANDLE_PREFERENCE_BOOL(DivePlanner, "display_runtime", display_runtime);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/display_transitions", display_transitions); HANDLE_PREFERENCE_BOOL(DivePlanner, "display_transitions", display_transitions);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/display_variations", display_variations); HANDLE_PREFERENCE_BOOL(DivePlanner, "display_variations", display_variations);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/doo2breaks", doo2breaks); HANDLE_PREFERENCE_BOOL(DivePlanner, "doo2breaks", doo2breaks);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/drop_stone_mode", drop_stone_mode); HANDLE_PREFERENCE_BOOL(DivePlanner, "drop_stone_mode", drop_stone_mode);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/last_stop", last_stop); HANDLE_PREFERENCE_BOOL(DivePlanner, "last_stop", last_stop);
HANDLE_PREFERENCE_INT(DivePlanner, "/min_switch_duration", min_switch_duration); HANDLE_PREFERENCE_INT(DivePlanner, "min_switch_duration", min_switch_duration);
HANDLE_PREFERENCE_ENUM(DivePlanner, deco_mode, "/deco_mode", planner_deco_mode); HANDLE_PREFERENCE_ENUM(DivePlanner, deco_mode, "deco_mode", planner_deco_mode);
HANDLE_PREFERENCE_INT(DivePlanner, "/problemsolvingtime", problemsolvingtime); HANDLE_PREFERENCE_INT(DivePlanner, "problemsolvingtime", problemsolvingtime);
HANDLE_PREFERENCE_INT(DivePlanner, "/reserve_gas", reserve_gas); HANDLE_PREFERENCE_INT(DivePlanner, "reserve_gas", reserve_gas);
HANDLE_PREFERENCE_INT(DivePlanner, "/sacfactor", sacfactor); HANDLE_PREFERENCE_INT(DivePlanner, "sacfactor", sacfactor);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/safetystop", safetystop); HANDLE_PREFERENCE_BOOL(DivePlanner, "safetystop", safetystop);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/switch_at_req_stop", switch_at_req_stop); HANDLE_PREFERENCE_BOOL(DivePlanner, "switch_at_req_stop", switch_at_req_stop);
HANDLE_PREFERENCE_BOOL(DivePlanner, "/verbatim_plan", verbatim_plan); HANDLE_PREFERENCE_BOOL(DivePlanner, "verbatim_plan", verbatim_plan);

View file

@ -41,11 +41,11 @@ void qPrefGeneral::loadSync(bool doSync)
} }
} }
HANDLE_PREFERENCE_BOOL(General, "/auto_recalculate_thumbnails", auto_recalculate_thumbnails); HANDLE_PREFERENCE_BOOL(General, "auto_recalculate_thumbnails", auto_recalculate_thumbnails);
HANDLE_PREFERENCE_TXT(General, "/default_cylinder", default_cylinder); HANDLE_PREFERENCE_TXT(General, "default_cylinder", default_cylinder);
HANDLE_PREFERENCE_TXT(General, "/default_filename", default_filename); HANDLE_PREFERENCE_TXT(General, "default_filename", default_filename);
void qPrefGeneral::set_default_file_behavior(enum def_file_behavior value) void qPrefGeneral::set_default_file_behavior(enum def_file_behavior value)
@ -67,9 +67,9 @@ 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, default_prefs.default_file_behavior); qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(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)
// undefined, so check if there's a filename set and // undefined, so check if there's a filename set and
// use that, otherwise go with no default file // use that, otherwise go with no default file
@ -77,19 +77,19 @@ void qPrefGeneral::disk_default_file_behavior(bool doSync)
} }
} }
HANDLE_PREFERENCE_INT(General, "/defaultsetpoint", defaultsetpoint); HANDLE_PREFERENCE_INT(General, "defaultsetpoint", defaultsetpoint);
HANDLE_PREFERENCE_BOOL(General, "/extract_video_thumbnails", extract_video_thumbnails); HANDLE_PREFERENCE_BOOL(General, "extract_video_thumbnails", extract_video_thumbnails);
HANDLE_PREFERENCE_INT(General, "/extract_video_thumbnails_position", extract_video_thumbnails_position); HANDLE_PREFERENCE_INT(General, "extract_video_thumbnails_position", extract_video_thumbnails_position);
HANDLE_PREFERENCE_TXT(General, "/ffmpeg_executable", ffmpeg_executable); HANDLE_PREFERENCE_TXT(General, "ffmpeg_executable", ffmpeg_executable);
HANDLE_PREFERENCE_INT(General, "/o2consumption", o2consumption); HANDLE_PREFERENCE_INT(General, "o2consumption", o2consumption);
HANDLE_PREFERENCE_INT(General, "/pscr_ratio", pscr_ratio); HANDLE_PREFERENCE_INT(General, "pscr_ratio", pscr_ratio);
HANDLE_PREFERENCE_BOOL(General, "/use_default_file", use_default_file); HANDLE_PREFERENCE_BOOL(General, "use_default_file", use_default_file);
HANDLE_PROP_QSTRING(General, "diveshareExport/uid", diveshareExport_uid); HANDLE_PROP_QSTRING(General, "diveshareExport/uid", diveshareExport_uid);

View file

@ -32,9 +32,9 @@ 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], default_prefs.geocoding.category[0]); qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, "cat0"), default_prefs.geocoding.category[0]).toInt();
} }
@ -49,9 +49,9 @@ 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], default_prefs.geocoding.category[1]); qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(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], default_prefs.geocoding.category[2]); qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, "cat2"), default_prefs.geocoding.category[2]).toInt();
} }

View file

@ -26,18 +26,18 @@ void qPrefLanguage::loadSync(bool doSync)
disk_use_system_language(doSync); disk_use_system_language(doSync);
} }
HANDLE_PREFERENCE_TXT(Language, "/date_format", date_format); HANDLE_PREFERENCE_TXT(Language, "date_format", date_format);
HANDLE_PREFERENCE_BOOL(Language,"/date_format_override", date_format_override); HANDLE_PREFERENCE_BOOL(Language,"date_format_override", date_format_override);
HANDLE_PREFERENCE_TXT(Language, "/date_format_short", date_format_short); HANDLE_PREFERENCE_TXT(Language, "date_format_short", date_format_short);
HANDLE_PREFERENCE_TXT_EXT(Language, "/UiLanguage", language, locale.); HANDLE_PREFERENCE_TXT_EXT(Language, "UiLanguage", language, locale.);
HANDLE_PREFERENCE_TXT_EXT(Language, "/UiLangLocale", lang_locale, locale.); HANDLE_PREFERENCE_TXT_EXT(Language, "UiLangLocale", lang_locale, locale.);
HANDLE_PREFERENCE_TXT(Language, "/time_format", time_format); HANDLE_PREFERENCE_TXT(Language, "time_format", time_format);
HANDLE_PREFERENCE_BOOL(Language, "/time_format_override", time_format_override); HANDLE_PREFERENCE_BOOL(Language, "time_format_override", time_format_override);
HANDLE_PREFERENCE_BOOL_EXT(Language, "/UseSystemLanguage", use_system_language, locale.); HANDLE_PREFERENCE_BOOL_EXT(Language, "UseSystemLanguage", use_system_language, locale.);

View file

@ -19,6 +19,6 @@ void qPrefLocationService::loadSync(bool doSync)
disk_time_threshold(doSync); disk_time_threshold(doSync);
} }
HANDLE_PREFERENCE_INT(LocationService, "/distance_threshold", distance_threshold); HANDLE_PREFERENCE_INT(LocationService, "distance_threshold", distance_threshold);
HANDLE_PREFERENCE_INT(LocationService, "/time_threshold", time_threshold); HANDLE_PREFERENCE_INT(LocationService, "time_threshold", time_threshold);

View file

@ -25,16 +25,16 @@ void qPrefPartialPressureGas::loadSync(bool doSync)
} }
HANDLE_PREFERENCE_BOOL_EXT(PartialPressureGas, "/phegraph", phe, pp_graphs.); HANDLE_PREFERENCE_BOOL_EXT(PartialPressureGas, "phegraph", phe, pp_graphs.);
HANDLE_PREFERENCE_DOUBLE_EXT(PartialPressureGas, "/phethreshold", phe_threshold, pp_graphs.); HANDLE_PREFERENCE_DOUBLE_EXT(PartialPressureGas, "phethreshold", phe_threshold, pp_graphs.);
HANDLE_PREFERENCE_BOOL_EXT(PartialPressureGas, "/pn2graph", pn2, pp_graphs.); HANDLE_PREFERENCE_BOOL_EXT(PartialPressureGas, "pn2graph", pn2, pp_graphs.);
HANDLE_PREFERENCE_DOUBLE_EXT(PartialPressureGas, "/pn2threshold", pn2_threshold, pp_graphs.); HANDLE_PREFERENCE_DOUBLE_EXT(PartialPressureGas, "pn2threshold", pn2_threshold, pp_graphs.);
HANDLE_PREFERENCE_BOOL_EXT(PartialPressureGas, "/po2graph", po2, pp_graphs.); HANDLE_PREFERENCE_BOOL_EXT(PartialPressureGas, "po2graph", po2, pp_graphs.);
HANDLE_PREFERENCE_DOUBLE_EXT(PartialPressureGas, "/po2thresholdmax", po2_threshold_max, pp_graphs.); HANDLE_PREFERENCE_DOUBLE_EXT(PartialPressureGas, "po2thresholdmax", po2_threshold_max, pp_graphs.);
HANDLE_PREFERENCE_DOUBLE_EXT(PartialPressureGas, "/po2thresholdmin", po2_threshold_min, pp_graphs.); HANDLE_PREFERENCE_DOUBLE_EXT(PartialPressureGas, "po2thresholdmin", po2_threshold_min, pp_graphs.);

View file

@ -9,6 +9,12 @@ void qPrefPrivate::copy_txt(const char **name, const QString &string)
*name = copy_qstring(string); *name = copy_qstring(string);
} }
QString keyFromGroupAndName(QString group, QString name)
{
QString slash = (group.endsWith('/') || name.startsWith('/')) ? "" : "/";
return group + slash + name;
}
void qPrefPrivate::propSetValue(const QString &key, const QVariant &value, const QVariant &defaultValue) 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

View file

@ -22,15 +22,17 @@ private:
qPrefPrivate() {} qPrefPrivate() {}
}; };
// helper function to ensure there's a '/' between group and name
extern QString keyFromGroupAndName(QString group, QString name);
//******* Macros to generate disk function //******* Macros to generate disk function
#define DISK_LOADSYNC_BOOL_EXT(usegroup, name, field, usestruct) \ #define DISK_LOADSYNC_BOOL_EXT(usegroup, name, field, usestruct) \
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, default_prefs.usestruct field); \ qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, name), default_prefs.usestruct field).toBool(); \
} }
#define DISK_LOADSYNC_BOOL(usegroup, name, field) \ #define DISK_LOADSYNC_BOOL(usegroup, name, field) \
DISK_LOADSYNC_BOOL_EXT(usegroup, name, field, ) DISK_LOADSYNC_BOOL_EXT(usegroup, name, field, )
@ -39,9 +41,9 @@ 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, default_prefs.usestruct field); \ qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, name), default_prefs.usestruct field).toDouble(); \
} }
#define DISK_LOADSYNC_DOUBLE(usegroup, name, field) \ #define DISK_LOADSYNC_DOUBLE(usegroup, name, field) \
DISK_LOADSYNC_DOUBLE_EXT(usegroup, name, field, ) DISK_LOADSYNC_DOUBLE_EXT(usegroup, name, field, )
@ -50,9 +52,9 @@ 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, default_prefs.usestruct field); \ qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, name), default_prefs.usestruct field).toInt(); \
} }
#define DISK_LOADSYNC_ENUM(usegroup, name, type, field) \ #define DISK_LOADSYNC_ENUM(usegroup, name, type, field) \
DISK_LOADSYNC_ENUM_EXT(usegroup, name, type, field, ) DISK_LOADSYNC_ENUM_EXT(usegroup, name, type, field, )
@ -61,9 +63,9 @@ 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, default_prefs.usestruct field); \ qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, name), default_prefs.usestruct field).toInt(); \
} }
#define DISK_LOADSYNC_INT(usegroup, name, field) \ #define DISK_LOADSYNC_INT(usegroup, name, field) \
DISK_LOADSYNC_INT_EXT(usegroup, name, field, ) DISK_LOADSYNC_INT_EXT(usegroup, name, field, )
@ -72,9 +74,9 @@ 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, default_prefs.usestruct field); \ qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, name), defval).toInt(); \
} }
#define DISK_LOADSYNC_INT_DEF(usegroup, name, field, defval) \ #define DISK_LOADSYNC_INT_DEF(usegroup, name, field, defval) \
DISK_LOADSYNC_INT_DEF_EXT(usegroup, name, field, defval, ) DISK_LOADSYNC_INT_DEF_EXT(usegroup, name, field, defval, )
@ -83,9 +85,9 @@ 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, default_prefs.usestruct field . var); \ qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, name), default_prefs.usestruct field . var).toInt(); \
} }
#define DISK_LOADSYNC_STRUCT(usegroup, name, field, var) \ #define DISK_LOADSYNC_STRUCT(usegroup, name, field, var) \
DISK_LOADSYNC_STRUCT_EXT(usegroup, name, field, var, ) DISK_LOADSYNC_STRUCT_EXT(usegroup, name, field, var, )
@ -94,9 +96,9 @@ 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, default_prefs.usestruct field); \ qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, name), default_prefs.usestruct field).toString()); \
} }
#define DISK_LOADSYNC_TXT(usegroup, name, field) \ #define DISK_LOADSYNC_TXT(usegroup, name, field) \
DISK_LOADSYNC_TXT_EXT(usegroup, name, field, ) DISK_LOADSYNC_TXT_EXT(usegroup, name, field, )

View file

@ -25,14 +25,14 @@ void qPrefProxy::loadSync(bool doSync)
disk_proxy_user(doSync); disk_proxy_user(doSync);
} }
HANDLE_PREFERENCE_BOOL(Proxy, "/proxy_auth", proxy_auth); HANDLE_PREFERENCE_BOOL(Proxy, "proxy_auth", proxy_auth);
HANDLE_PREFERENCE_TXT(Proxy, "/proxy_host", proxy_host); HANDLE_PREFERENCE_TXT(Proxy, "proxy_host", proxy_host);
HANDLE_PREFERENCE_TXT(Proxy, "/proxy_pass", proxy_pass); HANDLE_PREFERENCE_TXT(Proxy, "proxy_pass", proxy_pass);
HANDLE_PREFERENCE_INT(Proxy, "/proxy_port", proxy_port); HANDLE_PREFERENCE_INT(Proxy, "proxy_port", proxy_port);
HANDLE_PREFERENCE_INT_DEF(Proxy, "/proxy_type", proxy_type, QNetworkProxy::DefaultProxy); HANDLE_PREFERENCE_INT_DEF(Proxy, "proxy_type", proxy_type, QNetworkProxy::DefaultProxy);
HANDLE_PREFERENCE_TXT(Proxy, "/proxy_user", proxy_user); HANDLE_PREFERENCE_TXT(Proxy, "proxy_user", proxy_user);

View file

@ -48,56 +48,56 @@ void qPrefTechnicalDetails::loadSync(bool doSync)
disk_zoomed_plot(doSync); disk_zoomed_plot(doSync);
} }
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/calcalltissues", calcalltissues); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "calcalltissues", calcalltissues);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/calcceiling", calcceiling); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "calcceiling", calcceiling);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/calcceiling3m", calcceiling3m); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "calcceiling3m", calcceiling3m);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/calcndltts", calcndltts); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "calcndltts", calcndltts);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/dcceiling", dcceiling); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "dcceiling", dcceiling);
HANDLE_PREFERENCE_ENUM(TechnicalDetails, deco_mode, "/display_deco_mode", display_deco_mode); HANDLE_PREFERENCE_ENUM(TechnicalDetails, deco_mode, "display_deco_mode", display_deco_mode);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/display_unused_tanks", display_unused_tanks); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "display_unused_tanks", display_unused_tanks);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/ead", ead); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "ead", ead);
HANDLE_PREFERENCE_INT(TechnicalDetails, "/gfhigh", gfhigh); HANDLE_PREFERENCE_INT(TechnicalDetails, "gfhigh", gfhigh);
HANDLE_PREFERENCE_INT(TechnicalDetails, "/gflow", gflow); HANDLE_PREFERENCE_INT(TechnicalDetails, "gflow", gflow);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/gf_low_at_maxdepth", gf_low_at_maxdepth); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "gf_low_at_maxdepth", gf_low_at_maxdepth);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/hrgraph", hrgraph); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "hrgraph", hrgraph);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/mod", mod); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "mod", mod);
HANDLE_PREFERENCE_DOUBLE(TechnicalDetails, "/modpO2", modpO2); HANDLE_PREFERENCE_DOUBLE(TechnicalDetails, "modpO2", modpO2);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/percentagegraph", percentagegraph); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "percentagegraph", percentagegraph);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/redceiling", redceiling); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "redceiling", redceiling);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/RulerBar", rulergraph); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "RulerBar", rulergraph);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/show_average_depth", show_average_depth); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_average_depth", show_average_depth);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/show_ccr_sensors", show_ccr_sensors); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_ccr_sensors", show_ccr_sensors);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/show_ccr_setpoint", show_ccr_setpoint); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_ccr_setpoint", show_ccr_setpoint);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/show_icd", show_icd); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_icd", show_icd);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/show_pictures_in_profile", show_pictures_in_profile); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_pictures_in_profile", show_pictures_in_profile);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/show_sac", show_sac); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_sac", show_sac);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/show_scr_ocpo2", show_scr_ocpo2); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_scr_ocpo2", show_scr_ocpo2);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/tankbar", tankbar); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "tankbar", tankbar);
HANDLE_PREFERENCE_INT(TechnicalDetails, "/vpmb_conservatism", vpmb_conservatism); HANDLE_PREFERENCE_INT(TechnicalDetails, "vpmb_conservatism", vpmb_conservatism);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "/zoomed_plot", zoomed_plot); HANDLE_PREFERENCE_BOOL(TechnicalDetails, "zoomed_plot", zoomed_plot);

View file

@ -29,17 +29,17 @@ void qPrefUnits::loadSync(bool doSync)
disk_weight(doSync); disk_weight(doSync);
} }
HANDLE_PREFERENCE_BOOL(Units, "/coordinates", coordinates_traditional); HANDLE_PREFERENCE_BOOL(Units, "coordinates", coordinates_traditional);
HANDLE_PREFERENCE_ENUM_EXT(Units, units::DURATION, "/duration_units", duration_units, units.); HANDLE_PREFERENCE_ENUM_EXT(Units, units::DURATION, "duration_units", duration_units, units.);
HANDLE_PREFERENCE_ENUM_EXT(Units, units::LENGTH, "/length", length, units.); HANDLE_PREFERENCE_ENUM_EXT(Units, units::LENGTH, "length", length, units.);
HANDLE_PREFERENCE_ENUM_EXT(Units, units::PRESSURE, "/pressure", pressure, units.); HANDLE_PREFERENCE_ENUM_EXT(Units, units::PRESSURE, "pressure", pressure, units.);
HANDLE_PREFERENCE_BOOL_EXT(Units, "/show_units_table", show_units_table, units.); HANDLE_PREFERENCE_BOOL_EXT(Units, "show_units_table", show_units_table, units.);
HANDLE_PREFERENCE_ENUM_EXT(Units, units::TEMPERATURE, "/temperature", temperature, units.); HANDLE_PREFERENCE_ENUM_EXT(Units, units::TEMPERATURE, "temperature", temperature, units.);
QString qPrefUnits::unit_system() QString qPrefUnits::unit_system()
{ {
@ -66,10 +66,10 @@ void qPrefUnits::set_unit_system(const QString& value)
emit instance()->unit_system_changed(value); emit instance()->unit_system_changed(value);
} }
} }
DISK_LOADSYNC_ENUM(Units, "/unit_system", unit_system_values, unit_system); DISK_LOADSYNC_ENUM(Units, "unit_system", unit_system_values, unit_system);
HANDLE_PREFERENCE_ENUM_EXT(Units, units::TIME, "/vertical_speed_time", vertical_speed_time, units.); HANDLE_PREFERENCE_ENUM_EXT(Units, units::TIME, "vertical_speed_time", vertical_speed_time, units.);
HANDLE_PREFERENCE_ENUM_EXT(Units, units::VOLUME, "/volume", volume, units.); HANDLE_PREFERENCE_ENUM_EXT(Units, units::VOLUME, "volume", volume, units.);
HANDLE_PREFERENCE_ENUM_EXT(Units, units::WEIGHT, "/weight", weight, units.); HANDLE_PREFERENCE_ENUM_EXT(Units, units::WEIGHT, "weight", weight, units.);

View file

@ -30,7 +30,7 @@ void qPrefUpdateManager::loadSync(bool doSync)
} }
HANDLE_PREFERENCE_BOOL_EXT(UpdateManager, "/DontCheckForUpdates", dont_check_for_updates, update_manager.); HANDLE_PREFERENCE_BOOL_EXT(UpdateManager, "DontCheckForUpdates", dont_check_for_updates, update_manager.);
void qPrefUpdateManager::set_dont_check_exists(bool value) void qPrefUpdateManager::set_dont_check_exists(bool value)
{ {
@ -42,7 +42,7 @@ void qPrefUpdateManager::set_dont_check_exists(bool value)
} }
HANDLE_PREFERENCE_TXT_EXT(UpdateManager, "/LastVersionUsed", last_version_used, update_manager.); HANDLE_PREFERENCE_TXT_EXT(UpdateManager, "LastVersionUsed", last_version_used, update_manager.);
void qPrefUpdateManager::set_next_check(const QDate& value) void qPrefUpdateManager::set_next_check(const QDate& value)
@ -57,9 +57,9 @@ 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, default_prefs.update_manager.next_check); qPrefPrivate::propSetValue(keyFromGroupAndName(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(keyFromGroupAndName(group, "NextCheck"), 0).toInt();
} }
HANDLE_PROP_QSTRING(UpdateManager, "UpdateManager/UUID", uuidString); HANDLE_PROP_QSTRING(UpdateManager, "UpdateManager/UUID", uuidString);