diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp index e71e1b1e8..f3b156a27 100644 --- a/core/subsurface-qt/SettingsObjectWrapper.cpp +++ b/core/subsurface-qt/SettingsObjectWrapper.cpp @@ -35,6 +35,9 @@ int DiveComputerSettings::downloadMode() const void DiveComputerSettings::setVendor(const QString& vendor) { + if (vendor == prefs.dive_computer.vendor) + return; + QSettings s; s.beginGroup(group); s.setValue("dive_computer_vendor", vendor); @@ -44,6 +47,9 @@ void DiveComputerSettings::setVendor(const QString& vendor) void DiveComputerSettings::setProduct(const QString& product) { + if (product == prefs.dive_computer.product) + return; + QSettings s; s.beginGroup(group); s.setValue("dive_computer_product", product); @@ -53,6 +59,9 @@ void DiveComputerSettings::setProduct(const QString& product) void DiveComputerSettings::setDevice(const QString& device) { + if (device == prefs.dive_computer.device) + return; + QSettings s; s.beginGroup(group); s.setValue("dive_computer_device", device); @@ -62,6 +71,9 @@ void DiveComputerSettings::setDevice(const QString& device) void DiveComputerSettings::setDownloadMode(int mode) { + if (mode == prefs.dive_computer.download_mode) + return; + QSettings s; s.beginGroup(group); s.setValue("dive_computer_download_mode", mode); @@ -95,6 +107,9 @@ QDate UpdateManagerSettings::nextCheck() const void UpdateManagerSettings::setDontCheckForUpdates(bool value) { + if (value == prefs.update_manager.dont_check_for_updates) + return; + QSettings s; s.beginGroup(group); s.setValue("DontCheckForUpdates", value); @@ -103,8 +118,11 @@ void UpdateManagerSettings::setDontCheckForUpdates(bool value) emit dontCheckForUpdatesChanged(value); } -void UpdateManagerSettings::setLastVersionUsed(const QString& value)\ +void UpdateManagerSettings::setLastVersionUsed(const QString& value) { + if (value == prefs.update_manager.last_version_used) + return; + QSettings s; s.beginGroup(group); s.setValue("LastVersionUsed", value); @@ -115,6 +133,9 @@ void UpdateManagerSettings::setLastVersionUsed(const QString& value)\ void UpdateManagerSettings::setNextCheck(const QDate& date) { + if (date.toString() == prefs.update_manager.next_check) + return; + QSettings s; s.beginGroup(group); s.setValue("NextCheck", date); @@ -164,6 +185,9 @@ double PartialPressureGasSettings::pheThreshold() const void PartialPressureGasSettings::setShowPo2(short value) { + if (value == prefs.pp_graphs.po2) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("po2graph", value); @@ -173,6 +197,9 @@ void PartialPressureGasSettings::setShowPo2(short value) void PartialPressureGasSettings::setShowPn2(short value) { + if (value == prefs.pp_graphs.pn2) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("pn2graph", value); @@ -182,6 +209,9 @@ void PartialPressureGasSettings::setShowPn2(short value) void PartialPressureGasSettings::setShowPhe(short value) { + if (value == prefs.pp_graphs.phe) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("phegraph", value); @@ -191,6 +221,9 @@ void PartialPressureGasSettings::setShowPhe(short value) void PartialPressureGasSettings::setPo2Threshold(double value) { + if (value == prefs.pp_graphs.po2_threshold) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("po2threshold", value); @@ -200,6 +233,9 @@ void PartialPressureGasSettings::setPo2Threshold(double value) void PartialPressureGasSettings::setPn2Threshold(double value) { + if (value == prefs.pp_graphs.pn2_threshold) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("pn2threshold", value); @@ -209,6 +245,9 @@ void PartialPressureGasSettings::setPn2Threshold(double value) void PartialPressureGasSettings::setPheThreshold(double value) { + if (value == prefs.pp_graphs.phe_threshold) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("phethreshold", value); @@ -339,6 +378,9 @@ bool TechnicalDetailsSettings::showPicturesInProfile() const void TechnicalDetailsSettings::setModp02(double value) { + if (value == prefs.modpO2) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("modpO2", value); @@ -348,6 +390,9 @@ void TechnicalDetailsSettings::setModp02(double value) void TechnicalDetailsSettings::setShowPicturesInProfile(bool value) { + if (value == prefs.show_pictures_in_profile) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("show_pictures_in_profile", value); @@ -357,6 +402,9 @@ void TechnicalDetailsSettings::setShowPicturesInProfile(bool value) void TechnicalDetailsSettings::setEad(bool value) { + if (value == prefs.ead) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("ead", value); @@ -366,6 +414,9 @@ void TechnicalDetailsSettings::setEad(bool value) void TechnicalDetailsSettings::setMod(bool value) { + if (value == prefs.mod) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("mod", value); @@ -375,6 +426,9 @@ void TechnicalDetailsSettings::setMod(bool value) void TechnicalDetailsSettings::setDCceiling(bool value) { + if (value == prefs.dcceiling) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("dcceiling", value); @@ -384,6 +438,9 @@ void TechnicalDetailsSettings::setDCceiling(bool value) void TechnicalDetailsSettings::setRedceiling(bool value) { + if (value == prefs.redceiling) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("redceiling", value); @@ -393,6 +450,9 @@ void TechnicalDetailsSettings::setRedceiling(bool value) void TechnicalDetailsSettings::setCalcceiling(bool value) { + if (value == prefs.calcceiling) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("calcceiling", value); @@ -402,6 +462,9 @@ void TechnicalDetailsSettings::setCalcceiling(bool value) void TechnicalDetailsSettings::setCalcceiling3m(bool value) { + if (value == prefs.calcceiling3m) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("calcceiling3m", value); @@ -411,6 +474,9 @@ void TechnicalDetailsSettings::setCalcceiling3m(bool value) void TechnicalDetailsSettings::setCalcalltissues(bool value) { + if (value == prefs.calcalltissues) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("calcalltissues", value); @@ -420,6 +486,9 @@ void TechnicalDetailsSettings::setCalcalltissues(bool value) void TechnicalDetailsSettings::setCalcndltts(bool value) { + if (value == prefs.calcndltts) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("calcndltts", value); @@ -429,6 +498,9 @@ void TechnicalDetailsSettings::setCalcndltts(bool value) void TechnicalDetailsSettings::setGflow(bool value) { + if (value == prefs.gflow) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("gflow", value); @@ -439,6 +511,9 @@ void TechnicalDetailsSettings::setGflow(bool value) void TechnicalDetailsSettings::setGfhigh(bool value) { + if (value == prefs.gfhigh) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("gfhigh", value); @@ -449,6 +524,9 @@ void TechnicalDetailsSettings::setGfhigh(bool value) void TechnicalDetailsSettings::setHRgraph(bool value) { + if (value == prefs.hrgraph) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("hrgraph", value); @@ -458,6 +536,9 @@ void TechnicalDetailsSettings::setHRgraph(bool value) void TechnicalDetailsSettings::setTankBar(bool value) { + if (value == prefs.tankbar) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("tankbar", value); @@ -467,6 +548,9 @@ void TechnicalDetailsSettings::setTankBar(bool value) void TechnicalDetailsSettings::setPercentageGraph(bool value) { + if (value == prefs.percentagegraph) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("percentagegraph", value); @@ -476,6 +560,8 @@ void TechnicalDetailsSettings::setPercentageGraph(bool value) void TechnicalDetailsSettings::setRulerGraph(bool value) { + if (value == prefs.rulergraph) + return; /* TODO: search for the QSettings of the RulerBar */ QSettings s; s.beginGroup(tecDetails); @@ -486,6 +572,9 @@ void TechnicalDetailsSettings::setRulerGraph(bool value) void TechnicalDetailsSettings::setShowCCRSetpoint(bool value) { + if (value == prefs.show_ccr_setpoint) + return; + QSettings s; s.beginGroup(tecDetails); s.setValue("show_ccr_setpoint", value); @@ -495,6 +584,8 @@ void TechnicalDetailsSettings::setShowCCRSetpoint(bool value) void TechnicalDetailsSettings::setShowCCRSensors(bool value) { + if (value == prefs.show_ccr_sensors) + return; QSettings s; s.beginGroup(tecDetails); s.setValue("show_ccr_sensors", value); @@ -504,6 +595,8 @@ void TechnicalDetailsSettings::setShowCCRSensors(bool value) void TechnicalDetailsSettings::setZoomedPlot(bool value) { + if (value == prefs.zoomed_plot) + return; QSettings s; s.beginGroup(tecDetails); s.setValue("zoomed_plot", value); @@ -513,6 +606,8 @@ void TechnicalDetailsSettings::setZoomedPlot(bool value) void TechnicalDetailsSettings::setShowSac(bool value) { + if (value == prefs.show_sac) + return; QSettings s; s.beginGroup(tecDetails); s.setValue("show_sac", value); @@ -522,6 +617,8 @@ void TechnicalDetailsSettings::setShowSac(bool value) void TechnicalDetailsSettings::setGfLowAtMaxDepth(bool value) { + if (value == prefs.gf_low_at_maxdepth) + return; QSettings s; s.beginGroup(tecDetails); s.setValue("gf_low_at_maxdepth", value); @@ -532,6 +629,8 @@ void TechnicalDetailsSettings::setGfLowAtMaxDepth(bool value) void TechnicalDetailsSettings::setDisplayUnusedTanks(bool value) { + if (value == prefs.display_unused_tanks) + return; QSettings s; s.beginGroup(tecDetails); s.setValue("display_unused_tanks", value); @@ -541,6 +640,8 @@ void TechnicalDetailsSettings::setDisplayUnusedTanks(bool value) void TechnicalDetailsSettings::setShowAverageDepth(bool value) { + if (value == prefs.show_average_depth) + return; QSettings s; s.beginGroup(tecDetails); s.setValue("show_average_depth", value); @@ -548,8 +649,6 @@ void TechnicalDetailsSettings::setShowAverageDepth(bool value) emit showAverageDepthChanged(value); } - - FacebookSettings::FacebookSettings(QObject *parent) : QObject(parent), group(QStringLiteral("WebApps")), @@ -586,6 +685,8 @@ void FacebookSettings::setAccessToken (const QString& value) void FacebookSettings::setUserId(const QString& value) { + if (value == prefs.facebook.user_id) + return; #if SAVE_FB_CREDENTIALS QSettings s; s.beginGroup(group); @@ -598,6 +699,8 @@ void FacebookSettings::setUserId(const QString& value) void FacebookSettings::setAlbumId(const QString& value) { + if (value == prefs.facebook.album_id) + return; #if SAVE_FB_CREDENTIALS QSettings s; s.beginGroup(group); @@ -648,6 +751,8 @@ taxonomy_category GeocodingPreferences::thirdTaxonomyCategory() const void GeocodingPreferences::setEnableGeocoding(bool value) { + if (value == prefs.geocoding.enable_geocoding) + return; QSettings s; s.beginGroup(group); s.setValue("enable_geocoding", value); @@ -657,6 +762,8 @@ void GeocodingPreferences::setEnableGeocoding(bool value) void GeocodingPreferences::setParseDiveWithoutGps(bool value) { + if (value == prefs.geocoding.parse_dive_without_gps) + return; QSettings s; s.beginGroup(group); s.setValue("parse_dives_without_gps", value); @@ -666,6 +773,8 @@ void GeocodingPreferences::setParseDiveWithoutGps(bool value) void GeocodingPreferences::setTagExistingDives(bool value) { + if (value == prefs.geocoding.tag_existing_dives) + return; QSettings s; s.beginGroup(group); s.setValue("tag_existing_dives", value); @@ -675,28 +784,34 @@ void GeocodingPreferences::setTagExistingDives(bool value) void GeocodingPreferences::setFirstTaxonomyCategory(taxonomy_category value) { + if (value == prefs.geocoding.category[0]) + return; QSettings s; s.beginGroup(group); s.setValue("cat0", value); - prefs.show_average_depth = value; + prefs.geocoding.category[0] = value; emit firstTaxonomyCategoryChanged(value); } void GeocodingPreferences::setSecondTaxonomyCategory(taxonomy_category value) { + if (value == prefs.geocoding.category[1]) + return; QSettings s; s.beginGroup(group); s.setValue("cat1", value); - prefs.show_average_depth = value; + prefs.geocoding.category[1]= value; emit secondTaxonomyCategoryChanged(value); } void GeocodingPreferences::setThirdTaxonomyCategory(taxonomy_category value) { + if (value == prefs.geocoding.category[2]) + return; QSettings s; s.beginGroup(group); s.setValue("cat2", value); - prefs.show_average_depth = value; + prefs.geocoding.category[2] = value; emit thirdTaxonomyCategoryChanged(value); } @@ -738,6 +853,8 @@ QString ProxySettings::pass() const void ProxySettings::setType(int value) { + if (value == prefs.proxy_type) + return; QSettings s; s.beginGroup(group); s.setValue("proxy_type", value); @@ -747,6 +864,8 @@ void ProxySettings::setType(int value) void ProxySettings::setHost(const QString& value) { + if (value == prefs.proxy_host) + return; QSettings s; s.beginGroup(group); s.setValue("proxy_host", value); @@ -757,6 +876,8 @@ void ProxySettings::setHost(const QString& value) void ProxySettings::setPort(int value) { + if (value == prefs.proxy_port) + return; QSettings s; s.beginGroup(group); s.setValue("proxy_port", value); @@ -766,6 +887,8 @@ void ProxySettings::setPort(int value) void ProxySettings::setAuth(short value) { + if (value == prefs.proxy_auth) + return; QSettings s; s.beginGroup(group); s.setValue("proxy_auth", value); @@ -775,6 +898,8 @@ void ProxySettings::setAuth(short value) void ProxySettings::setUser(const QString& value) { + if (value == prefs.proxy_user) + return; QSettings s; s.beginGroup(group); s.setValue("proxy_user", value); @@ -785,6 +910,8 @@ void ProxySettings::setUser(const QString& value) void ProxySettings::setPass(const QString& value) { + if (value == prefs.proxy_pass) + return; QSettings s; s.beginGroup(group); s.setValue("proxy_pass", value); @@ -857,16 +984,20 @@ QString CloudStorageSettings::gitUrl() const void CloudStorageSettings::setPassword(const QString& value) { + if (value == prefs.cloud_storage_password) + return; QSettings s; s.beginGroup(group); s.setValue("password", value); - free(prefs.proxy_pass); - prefs.proxy_pass = copy_string(qPrintable(value)); + free(prefs.cloud_storage_password); + prefs.cloud_storage_password = copy_string(qPrintable(value)); emit passwordChanged(value); } void CloudStorageSettings::setNewPassword(const QString& value) { + if (value == prefs.cloud_storage_newpassword) + return; /*TODO: This looks like wrong, but 'new password' is not saved on disk, why it's on prefs? */ free(prefs.cloud_storage_newpassword); prefs.cloud_storage_newpassword = copy_string(qPrintable(value)); @@ -875,6 +1006,8 @@ void CloudStorageSettings::setNewPassword(const QString& value) void CloudStorageSettings::setEmail(const QString& value) { + if (value == prefs.cloud_storage_email) + return; QSettings s; s.beginGroup(group); s.setValue("email", value); @@ -885,6 +1018,8 @@ void CloudStorageSettings::setEmail(const QString& value) void CloudStorageSettings::setUserId(const QString& value) { + if (value == prefs.userid) + return; //WARNING: UserId is stored outside of any group, but it belongs to Cloud Storage. QSettings s; s.setValue("subsurface_webservice_uid", value); @@ -895,6 +1030,8 @@ void CloudStorageSettings::setUserId(const QString& value) void CloudStorageSettings::setEmailEncoded(const QString& value) { + if (value == prefs.cloud_storage_email_encoded) + return; /*TODO: This looks like wrong, but 'email encoded' is not saved on disk, why it's on prefs? */ free(prefs.cloud_storage_email_encoded); prefs.cloud_storage_email_encoded = copy_string(qPrintable(value)); @@ -903,6 +1040,8 @@ void CloudStorageSettings::setEmailEncoded(const QString& value) void CloudStorageSettings::setSavePasswordLocal(bool value) { + if (value == prefs.save_password_local) + return; QSettings s; s.beginGroup(group); s.setValue("save_password_local", value); @@ -912,6 +1051,8 @@ void CloudStorageSettings::setSavePasswordLocal(bool value) void CloudStorageSettings::setVerificationStatus(short value) { + if (value == prefs.cloud_verification_status) + return; QSettings s; s.beginGroup(group); s.setValue("cloud_verification_status", value); @@ -921,6 +1062,8 @@ void CloudStorageSettings::setVerificationStatus(short value) void CloudStorageSettings::setBackgroundSync(bool value) { + if (value == prefs.cloud_background_sync) + return; QSettings s; s.beginGroup(group); s.setValue("cloud_background_sync", value); @@ -930,6 +1073,9 @@ void CloudStorageSettings::setBackgroundSync(bool value) void CloudStorageSettings::setSaveUserIdLocal(short int value) { + //TODO: this is not saved on disk? + if (value == prefs.save_userid_local) + return; prefs.save_userid_local = value; emit saveUserIdLocalChanged(value); } @@ -941,6 +1087,9 @@ short int CloudStorageSettings::saveUserIdLocal() const void CloudStorageSettings::setBaseUrl(const QString& value) { + if (value == prefs.cloud_base_url) + return; + qDebug() << prefs.cloud_base_url << prefs.cloud_git_url; free((void*)prefs.cloud_base_url); free((void*)prefs.cloud_git_url); prefs.cloud_base_url = copy_string(qPrintable(value)); @@ -954,6 +1103,8 @@ void CloudStorageSettings::setGitUrl(const QString& value) void CloudStorageSettings::setGitLocalOnly(bool value) { + if (value == prefs.git_local_only) + return; prefs.git_local_only = value; emit gitLocalOnlyChanged(value); } @@ -1081,6 +1232,8 @@ deco_mode DivePlannerSettings::decoMode() const void DivePlannerSettings::setLastStop(bool value) { + if (value == prefs.last_stop) + return; QSettings s; s.beginGroup(group); s.setValue("last_stop", value); @@ -1090,6 +1243,9 @@ void DivePlannerSettings::setLastStop(bool value) void DivePlannerSettings::setVerbatimPlan(bool value) { + if (value == prefs.verbatim_plan) + return; + QSettings s; s.beginGroup(group); s.setValue("verbatim_plan", value); @@ -1099,6 +1255,9 @@ void DivePlannerSettings::setVerbatimPlan(bool value) void DivePlannerSettings::setDisplayRuntime(bool value) { + if (value == prefs.display_runtime) + return; + QSettings s; s.beginGroup(group); s.setValue("display_runtime", value); @@ -1108,6 +1267,9 @@ void DivePlannerSettings::setDisplayRuntime(bool value) void DivePlannerSettings::setDisplayDuration(bool value) { + if (value == prefs.display_duration) + return; + QSettings s; s.beginGroup(group); s.setValue("display_duration", value); @@ -1117,6 +1279,9 @@ void DivePlannerSettings::setDisplayDuration(bool value) void DivePlannerSettings::setDisplayTransitions(bool value) { + if (value == prefs.display_transitions) + return; + QSettings s; s.beginGroup(group); s.setValue("display_transitions", value); @@ -1126,6 +1291,8 @@ void DivePlannerSettings::setDisplayTransitions(bool value) void DivePlannerSettings::setDoo2breaks(bool value) { + if (value == prefs.doo2breaks) + return; QSettings s; s.beginGroup(group); s.setValue("doo2breaks", value); @@ -1135,6 +1302,8 @@ void DivePlannerSettings::setDoo2breaks(bool value) void DivePlannerSettings::setDropStoneMode(bool value) { + if (value == prefs.drop_stone_mode) + return; QSettings s; s.beginGroup(group); s.setValue("drop_stone_mode", value); @@ -1144,6 +1313,8 @@ void DivePlannerSettings::setDropStoneMode(bool value) void DivePlannerSettings::setSafetyStop(bool value) { + if (value == prefs.safetystop) + return; QSettings s; s.beginGroup(group); s.setValue("safetystop", value); @@ -1153,6 +1324,8 @@ void DivePlannerSettings::setSafetyStop(bool value) void DivePlannerSettings::setSwitchAtRequiredStop(bool value) { + if (value == prefs.switch_at_req_stop) + return; QSettings s; s.beginGroup(group); s.setValue("switch_at_req_stop", value); @@ -1162,6 +1335,8 @@ void DivePlannerSettings::setSwitchAtRequiredStop(bool value) void DivePlannerSettings::setAscrate75(int value) { + if (value == prefs.ascrate75) + return; QSettings s; s.beginGroup(group); s.setValue("ascrate75", value); @@ -1171,6 +1346,9 @@ void DivePlannerSettings::setAscrate75(int value) void DivePlannerSettings::setAscrate50(int value) { + if (value == prefs.ascrate50) + return; + QSettings s; s.beginGroup(group); s.setValue("ascrate50", value); @@ -1180,6 +1358,8 @@ void DivePlannerSettings::setAscrate50(int value) void DivePlannerSettings::setAscratestops(int value) { + if (value == prefs.ascratestops) + return; QSettings s; s.beginGroup(group); s.setValue("ascratestops", value); @@ -1189,6 +1369,9 @@ void DivePlannerSettings::setAscratestops(int value) void DivePlannerSettings::setAscratelast6m(int value) { + if (value == prefs.ascratelast6m) + return; + QSettings s; s.beginGroup(group); s.setValue("ascratelast6m", value); @@ -1198,6 +1381,9 @@ void DivePlannerSettings::setAscratelast6m(int value) void DivePlannerSettings::setDescrate(int value) { + if (value == prefs.descrate) + return; + QSettings s; s.beginGroup(group); s.setValue("descrate", value); @@ -1207,6 +1393,9 @@ void DivePlannerSettings::setDescrate(int value) void DivePlannerSettings::setBottompo2(int value) { + if (value == prefs.bottompo2) + return; + QSettings s; s.beginGroup(group); s.setValue("bottompo2", value); @@ -1216,6 +1405,9 @@ void DivePlannerSettings::setBottompo2(int value) void DivePlannerSettings::setDecopo2(int value) { + if (value == prefs.decopo2) + return; + QSettings s; s.beginGroup(group); s.setValue("decopo2", value); @@ -1225,6 +1417,9 @@ void DivePlannerSettings::setDecopo2(int value) void DivePlannerSettings::setBestmixend(int value) { + if (value == prefs.bestmixend.mm) + return; + QSettings s; s.beginGroup(group); s.setValue("bestmixend", value); @@ -1234,6 +1429,9 @@ void DivePlannerSettings::setBestmixend(int value) void DivePlannerSettings::setReserveGas(int value) { + if (value == prefs.reserve_gas) + return; + QSettings s; s.beginGroup(group); s.setValue("reserve_gas", value); @@ -1243,6 +1441,9 @@ void DivePlannerSettings::setReserveGas(int value) void DivePlannerSettings::setMinSwitchDuration(int value) { + if (value == prefs.min_switch_duration) + return; + QSettings s; s.beginGroup(group); s.setValue("min_switch_duration", value); @@ -1252,6 +1453,9 @@ void DivePlannerSettings::setMinSwitchDuration(int value) void DivePlannerSettings::setBottomSac(int value) { + if (value == prefs.bottomsac) + return; + QSettings s; s.beginGroup(group); s.setValue("bottomsac", value); @@ -1261,6 +1465,9 @@ void DivePlannerSettings::setBottomSac(int value) void DivePlannerSettings::setSecoSac(int value) { + if (value == prefs.decosac) + return; + QSettings s; s.beginGroup(group); s.setValue("decosac", value); @@ -1270,6 +1477,9 @@ void DivePlannerSettings::setSecoSac(int value) void DivePlannerSettings::setConservatismLevel(int value) { + if (value == prefs.conservatism_level) + return; + QSettings s; s.beginGroup(group); s.setValue("conservatism", value); @@ -1279,6 +1489,9 @@ void DivePlannerSettings::setConservatismLevel(int value) void DivePlannerSettings::setDecoMode(deco_mode value) { + if (value == prefs.deco_mode) + return; + QSettings s; s.beginGroup(group); s.setValue("deco_mode", value); @@ -1335,6 +1548,9 @@ bool UnitsSettings::coordinatesTraditional() const void UnitsSettings::setLength(int value) { + if (value == prefs.units.length) + return; + QSettings s; s.beginGroup(group); s.setValue("length", value); @@ -1344,6 +1560,8 @@ void UnitsSettings::setLength(int value) void UnitsSettings::setPressure(int value) { + if (value == prefs.units.pressure) + return; QSettings s; s.beginGroup(group); s.setValue("pressure", value); @@ -1353,6 +1571,8 @@ void UnitsSettings::setPressure(int value) void UnitsSettings::setVolume(int value) { + if (value == prefs.units.volume) + return; QSettings s; s.beginGroup(group); s.setValue("volume", value); @@ -1362,6 +1582,8 @@ void UnitsSettings::setVolume(int value) void UnitsSettings::setTemperature(int value) { + if (value == prefs.units.temperature) + return; QSettings s; s.beginGroup(group); s.setValue("temperature", value); @@ -1371,6 +1593,8 @@ void UnitsSettings::setTemperature(int value) void UnitsSettings::setWeight(int value) { + if (value == prefs.units.weight) + return; QSettings s; s.beginGroup(group); s.setValue("weight", value); @@ -1380,6 +1604,8 @@ void UnitsSettings::setWeight(int value) void UnitsSettings::setVerticalSpeedTime(int value) { + if (value == prefs.units.vertical_speed_time) + return; QSettings s; s.beginGroup(group); s.setValue("vertical_speed_time", value); @@ -1389,6 +1615,8 @@ void UnitsSettings::setVerticalSpeedTime(int value) void UnitsSettings::setCoordinatesTraditional(bool value) { + if (value == prefs.coordinates_traditional) + return; QSettings s; s.setValue("coordinates", value); prefs.coordinates_traditional = value; @@ -1397,6 +1625,13 @@ void UnitsSettings::setCoordinatesTraditional(bool value) void UnitsSettings::setUnitSystem(const QString& value) { + short int v = value == QStringLiteral("metric") ? METRIC + : value == QStringLiteral("imperial")? IMPERIAL + : PERSONALIZE; + + if (v == prefs.unit_system) + return; + QSettings s; s.setValue("unit_system", value); @@ -1457,6 +1692,9 @@ int GeneralSettingsObjectWrapper::pscrRatio() const void GeneralSettingsObjectWrapper::setDefaultFilename(const QString& value) { + if (value == prefs.default_filename) + return; + QSettings s; s.beginGroup(group); s.setValue("default_filename", value); @@ -1466,6 +1704,9 @@ void GeneralSettingsObjectWrapper::setDefaultFilename(const QString& value) void GeneralSettingsObjectWrapper::setDefaultCylinder(const QString& value) { + if (value == prefs.default_cylinder) + return; + QSettings s; s.beginGroup(group); s.setValue("default_cylinder", value); @@ -1475,6 +1716,9 @@ void GeneralSettingsObjectWrapper::setDefaultCylinder(const QString& value) void GeneralSettingsObjectWrapper::setDefaultFileBehavior(short value) { + if (value == prefs.default_file_behavior && prefs.default_file_behavior != UNDEFINED_DEFAULT_FILE) + return; + QSettings s; s.beginGroup(group); s.setValue("default_file_behavior", value); @@ -1492,6 +1736,9 @@ void GeneralSettingsObjectWrapper::setDefaultFileBehavior(short value) void GeneralSettingsObjectWrapper::setUseDefaultFile(bool value) { + if (value == prefs.use_default_file) + return; + QSettings s; s.beginGroup(group); s.setValue("use_default_file", value); @@ -1501,6 +1748,9 @@ void GeneralSettingsObjectWrapper::setUseDefaultFile(bool value) void GeneralSettingsObjectWrapper::setDefaultSetPoint(int value) { + if (value == prefs.defaultsetpoint) + return; + QSettings s; s.beginGroup(group); s.setValue("defaultsetpoint", value); @@ -1510,6 +1760,8 @@ void GeneralSettingsObjectWrapper::setDefaultSetPoint(int value) void GeneralSettingsObjectWrapper::setO2Consumption(int value) { + if (value == prefs.o2consumption) + return; QSettings s; s.beginGroup(group); s.setValue("o2consumption", value); @@ -1519,6 +1771,8 @@ void GeneralSettingsObjectWrapper::setO2Consumption(int value) void GeneralSettingsObjectWrapper::setPscrRatio(int value) { + if (value == prefs.pscr_ratio) + return; QSettings s; s.beginGroup(group); s.setValue("pscr_ratio", value); @@ -1549,12 +1803,17 @@ short DisplaySettingsObjectWrapper::displayInvalidDives() const void DisplaySettingsObjectWrapper::setDivelistFont(const QString& value) { - QSettings s; - s.setValue("divelist_font", value); + QString newValue = value; if (value.contains(",")) newValue = value.left(value.indexOf(",")); + if (newValue == prefs.divelist_font) + return; + + QSettings s; + s.setValue("divelist_font", value); + if (!subsurface_ignore_font(newValue.toUtf8().constData())) { free((void *)prefs.divelist_font); prefs.divelist_font = strdup(newValue.toUtf8().constData()); @@ -1565,6 +1824,9 @@ void DisplaySettingsObjectWrapper::setDivelistFont(const QString& value) void DisplaySettingsObjectWrapper::setFontSize(double value) { + if (value == prefs.font_size) + return; + QSettings s; s.setValue("font_size", value); prefs.font_size = value; @@ -1576,6 +1838,9 @@ void DisplaySettingsObjectWrapper::setFontSize(double value) void DisplaySettingsObjectWrapper::setDisplayInvalidDives(short value) { + if (value == prefs.display_invalid_dives) + return; + QSettings s; s.setValue("displayinvalid", value); prefs.display_invalid_dives = value; @@ -1625,6 +1890,8 @@ bool LanguageSettingsObjectWrapper::useSystemLanguage() const void LanguageSettingsObjectWrapper::setUseSystemLanguage(bool value) { + if (value == prefs.locale.use_system_language) + return; QSettings s; s.setValue("UseSystemLanguage", value); prefs.locale.use_system_language = copy_string(qPrintable(value)); @@ -1633,6 +1900,8 @@ void LanguageSettingsObjectWrapper::setUseSystemLanguage(bool value) void LanguageSettingsObjectWrapper::setLanguage(const QString& value) { + if (value == prefs.locale.language) + return; QSettings s; s.setValue("UiLanguage", value); prefs.locale.language = copy_string(qPrintable(value)); @@ -1641,6 +1910,8 @@ void LanguageSettingsObjectWrapper::setLanguage(const QString& value) void LanguageSettingsObjectWrapper::setTimeFormat(const QString& value) { + if (value == prefs.time_format) + return; QSettings s; s.setValue("time_format", value); prefs.time_format = copy_string(qPrintable(value));; @@ -1649,6 +1920,9 @@ void LanguageSettingsObjectWrapper::setTimeFormat(const QString& value) void LanguageSettingsObjectWrapper::setDateFormat(const QString& value) { + if (value == prefs.date_format) + return; + QSettings s; s.setValue("date_format", value); prefs.date_format = copy_string(qPrintable(value));; @@ -1657,6 +1931,9 @@ void LanguageSettingsObjectWrapper::setDateFormat(const QString& value) void LanguageSettingsObjectWrapper::setDateFormatShort(const QString& value) { + if (value == prefs.date_format_short) + return; + QSettings s; s.setValue("date_format_short", value); prefs.date_format_short = copy_string(qPrintable(value));; @@ -1665,6 +1942,8 @@ void LanguageSettingsObjectWrapper::setDateFormatShort(const QString& value) void LanguageSettingsObjectWrapper::setTimeFormatOverride(bool value) { + if (value == prefs.time_format_override) + return; QSettings s; s.setValue("time_format_override", value); prefs.time_format_override = value; @@ -1673,6 +1952,9 @@ void LanguageSettingsObjectWrapper::setTimeFormatOverride(bool value) void LanguageSettingsObjectWrapper::setDateFormatOverride(bool value) { + if (value == prefs.date_format_override) + return; + QSettings s; s.setValue("date_format_override", value); prefs.date_format_override = value; @@ -1693,6 +1975,9 @@ int AnimationsSettingsObjectWrapper::animationSpeed() const void AnimationsSettingsObjectWrapper::setAnimationSpeed(int value) { + if (value == prefs.animation_speed) + return; + QSettings s; s.setValue("animation_speed", value); prefs.animation_speed = value; @@ -1717,6 +2002,8 @@ int LocationServiceSettingsObjectWrapper::timeThreshold() const void LocationServiceSettingsObjectWrapper::setDistanceThreshold(int value) { + if (value == prefs.distance_threshold) + return; QSettings s; s.setValue("distance_threshold", value); prefs.distance_threshold = value; @@ -1725,6 +2012,9 @@ void LocationServiceSettingsObjectWrapper::setDistanceThreshold(int value) void LocationServiceSettingsObjectWrapper::setTimeThreshold(int value) { + if (value == prefs.time_threshold) + return; + QSettings s; s.setValue("time_threshold", value); prefs.time_threshold = value;