more work on making the settings acessble in a sane way from the Qml / QWidgets frontend the work on the settings wrapper is done, next batch of patches I'll change qml code to actually use it.
From 0e3320c0d5a361226de84edd948a2f35268c940a Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tomaz.canabr...@intel.com> Date: Fri, 22 Jan 2016 18:37:18 -0200 Subject: [PATCH 6/6] Make it compile
This is not hoocked up on Subsurface code yet, but it's already being compilled. now I just need to hoock things up. Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com> --- subsurface-core/CMakeLists.txt | 2 +- .../subsurface-qt/SettingsObjectWrapper.cpp | 174 ++++++++++++++------- .../subsurface-qt/SettingsObjectWrapper.h | 48 +++--- subsurface-core/units.h | 12 +- 4 files changed, 147 insertions(+), 89 deletions(-) diff --git a/subsurface-core/CMakeLists.txt b/subsurface-core/CMakeLists.txt index 0e060b0..b172bc6 100644 --- a/subsurface-core/CMakeLists.txt +++ b/subsurface-core/CMakeLists.txt @@ -84,7 +84,7 @@ set(SUBSURFACE_CORE_LIB_SRCS #Subsurface Qt have the Subsurface structs QObjectified for easy access via QML. subsurface-qt/DiveObjectHelper.cpp - #subsurface-qt/SettingsObjectWrapper.cpp + subsurface-qt/SettingsObjectWrapper.cpp ${SERIAL_FTDI} ${PLATFORM_SRC} ${BT_CORE_SRC_FILES} diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp index 37d53a4..f02f941 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp @@ -809,15 +809,10 @@ void CloudStorageSettings::setBackgroundSync(bool value) void CloudStorageSettings::setBaseUrl(const QString& value) { - free(prefs.cloud_base_url); - free(prefs.cloud_git_url); + free((void*)prefs.cloud_base_url); + free((void*)prefs.cloud_git_url); prefs.cloud_base_url = copy_string(qPrintable(value)); - prefs.cloud_git_url = strdup(qPrintable(QString(prefs.cloud_base_url) + "/git")); -} - -void CloudStorageSettings::setCloudUrl(const QString& value) /* no-op */ -{ - Q_UNUSED(value); + prefs.cloud_git_url = copy_string(qPrintable(QString(prefs.cloud_base_url) + "/git")); } void CloudStorageSettings::setGitUrl(const QString& value) @@ -1060,7 +1055,7 @@ void DivePlannerSettings::setAscratelast6m(int value) s.beginGroup(group); s.setValue("ascratelast6m", value); prefs.ascratelast6m = value; - emit ascratelast6mChanged(); + emit ascratelast6mChanged(value); } void DivePlannerSettings::setDescrate(int value) @@ -1144,46 +1139,46 @@ void DivePlannerSettings::setDecoMode(deco_mode value) emit decoModeChanged(value); } -UnitsSettings::UnitsSettings(QObject *parent = 0) : +UnitsSettings::UnitsSettings(QObject *parent) : QObject(parent), group(QStringLiteral("Units")) { } -units::length UnitsSettings::length() const +int UnitsSettings::length() const { return prefs.units.length; } -units::pressure UnitsSettings::pressure() const +int UnitsSettings::pressure() const { return prefs.units.pressure; } -units::volume UnitsSettings::volume() const +int UnitsSettings::volume() const { return prefs.units.volume; } -units::temperature UnitsSettings::temperature() const +int UnitsSettings::temperature() const { return prefs.units.temperature; } -units::weight UnitsSettings::weight() const +int UnitsSettings::weight() const { return prefs.units.weight; } -units::vertical_speed_time UnitsSettings::verticalSpeedTime() const +int UnitsSettings::verticalSpeedTime() const { return prefs.units.vertical_speed_time; } QString UnitsSettings::unitSystem() const { - return prefs.unit_system; + return QString(); /*FIXME: there's no char * units on the prefs. */ } bool UnitsSettings::coordinatesTraditional() const @@ -1191,57 +1186,57 @@ bool UnitsSettings::coordinatesTraditional() const return prefs.coordinates_traditional; } -void UnitsSettings::setLength(units::length value) +void UnitsSettings::setLength(int value) { QSettings s; s.beginGroup(group); s.setValue("length", value); - prefs.units.length = value; + prefs.units.length = (units::LENGHT) value; emit lengthChanged(value); } -void UnitsSettings::setPressure(units::pressure value) +void UnitsSettings::setPressure(int value) { QSettings s; s.beginGroup(group); s.setValue("pressure", value); - prefs.units.pressure = value; + prefs.units.pressure = (units::PRESSURE) value; emit pressureChanged(value); } -void UnitsSettings::setVolume(units::volume value) +void UnitsSettings::setVolume(int value) { QSettings s; s.beginGroup(group); s.setValue("volume", value); - prefs.units.volume = value; + prefs.units.volume = (units::VOLUME) value; emit volumeChanged(value); } -void UnitsSettings::setTemperature(units::temperature value) +void UnitsSettings::setTemperature(int value) { QSettings s; s.beginGroup(group); s.setValue("temperature", value); - prefs.units.temperature = value; + prefs.units.temperature = (units::TEMPERATURE) value; emit temperatureChanged(value); } -void UnitsSettings::setWeight(units::weight value) +void UnitsSettings::setWeight(int value) { QSettings s; s.beginGroup(group); s.setValue("weight", value); - prefs.units.weight = value; + prefs.units.weight = (units::WEIGHT) value; emit weightChanged(value); } -void UnitsSettings::setVerticalSpeedTime(units::vertical_speed_time value) +void UnitsSettings::setVerticalSpeedTime(int value) { QSettings s; s.beginGroup(group); s.setValue("vertical_speed_time", value); - prefs.units.vertical_speed_time = value; + prefs.units.vertical_speed_time = (units::TIME) value; emit verticalSpeedTimeChanged(value); } @@ -1249,7 +1244,7 @@ void UnitsSettings::setCoordinatesTraditional(bool value) { QSettings s; s.setValue("coordinates", value); - prefs.coordinates_traditional = value.; + prefs.coordinates_traditional = value; emit coordinatesTraditionalChanged(value); } @@ -1257,7 +1252,6 @@ void UnitsSettings::setUnitSystem(const QString& value) { QSettings s; s.setValue("unit_system", value); - prefs.unit_system = value; if (value == QStringLiteral("metric")) { prefs.unit_system = METRIC; @@ -1334,7 +1328,7 @@ void GeneralSettingsObjectWrapper::setDefaultFileBehavior(short value) { QSettings s; s.setValue("default_file_behavior", value); - prefs.default_file_behavior = value.; + prefs.default_file_behavior = value; if (prefs.default_file_behavior == UNDEFINED_DEFAULT_FILE) { // undefined, so check if there's a filename set and // use that, otherwise go with no default file @@ -1350,7 +1344,7 @@ void GeneralSettingsObjectWrapper::setUseDefaultFile(bool value) { QSettings s; s.setValue("use_default_file", value); - prefs.use_default_file = value.; + prefs.use_default_file = value; emit useDefaultFileChanged(value); } @@ -1358,7 +1352,7 @@ void GeneralSettingsObjectWrapper::setDefaultSetPoint(int value) { QSettings s; s.setValue("defaultsetpoint", value); - prefs.defaultsetpoint = value.; + prefs.defaultsetpoint = value; emit defaultSetPointChanged(value); } @@ -1366,7 +1360,7 @@ void GeneralSettingsObjectWrapper::setO2Consumption(int value) { QSettings s; s.setValue("o2consumption", value); - prefs.o2consumption = value.; + prefs.o2consumption = value; emit o2ConsumptionChanged(value); } @@ -1374,7 +1368,7 @@ void GeneralSettingsObjectWrapper::setPscrRatio(int value) { QSettings s; s.setValue("pscr_ratio", value); - prefs.pscr_ratio = value.; + prefs.pscr_ratio = value; emit pscrRatioChanged(value); } @@ -1403,22 +1397,23 @@ void DisplaySettingsObjectWrapper::setDivelistFont(const QString& value) { QSettings s; s.setValue("divelist_font", value); + QString newValue = value; if (value.contains(",")) - value = value.left(value.indexOf(",")); + newValue = value.left(value.indexOf(",")); - if (!subsurface_ignore_font(value.toUtf8().constData())) { + if (!subsurface_ignore_font(newValue.toUtf8().constData())) { free((void *)prefs.divelist_font); - prefs.divelist_font = strdup(value.toUtf8().constData()); - qApp->setFont(QFont(value)); + prefs.divelist_font = strdup(newValue.toUtf8().constData()); + qApp->setFont(QFont(newValue)); } - emit divelistFontChanged(value); + emit divelistFontChanged(newValue); } void DisplaySettingsObjectWrapper::setFontSize(double value) { QSettings s; s.setValue("font_size", value); - prefs.font_size = value.; + prefs.font_size = value; QFont defaultFont = qApp->font(); defaultFont.setPointSizeF(prefs.font_size); qApp->setFont(defaultFont); @@ -1429,7 +1424,7 @@ void DisplaySettingsObjectWrapper::setDisplayInvalidDives(short value) { QSettings s; s.setValue("displayinvalid", value); - prefs.display_invalid_dives = value.; + prefs.display_invalid_dives = value; emit displayInvalidDivesChanged(value); } @@ -1518,7 +1513,7 @@ void LanguageSettingsObjectWrapper::setTimeFormatOverride(bool value) { QSettings s; s.setValue("time_format_override", value); - prefs.time_format_override = value.; + prefs.time_format_override = value; emit timeFormatOverrideChanged(value); } @@ -1526,25 +1521,88 @@ void LanguageSettingsObjectWrapper::setDateFormatOverride(bool value) { QSettings s; s.setValue("date_format_override", value); - prefs.date_format_override = value.; + prefs.date_format_override = value; emit dateFormatOverrideChanged(value); } +AnimationsSettingsObjectWrapper::AnimationsSettingsObjectWrapper(QObject* parent): + QObject(parent), + group("Animations") + +{ +} + +int AnimationsSettingsObjectWrapper::animationSpeed() const +{ + return prefs.animation_speed; +} + +void AnimationsSettingsObjectWrapper::setAnimationSpeed(int value) +{ + QSettings s; + s.setValue("animation_speed", value); + prefs.animation_speed = value; + emit animationSpeedChanged(value); +} + +LocationServiceSettingsObjectWrapper::LocationServiceSettingsObjectWrapper(QObject* parent): + QObject(parent), + group("locationService") +{ +} + +int LocationServiceSettingsObjectWrapper::distanceThreshold() const +{ + return prefs.distance_threshold; +} + +int LocationServiceSettingsObjectWrapper::timeThreshold() const +{ + return prefs.time_threshold; +} + +void LocationServiceSettingsObjectWrapper::setDistanceThreshold(int value) +{ + QSettings s; + s.setValue("distance_threshold", value); + prefs.distance_threshold = value; + emit distanceThresholdChanged(value); +} + +void LocationServiceSettingsObjectWrapper::setTimeThreshold(int value) +{ + QSettings s; + s.setValue("time_threshold", value); + prefs.time_threshold = value; + emit timeThresholdChanged( value); +} + SettingsObjectWrapper::SettingsObjectWrapper(QObject* parent): QObject(parent), - techDetails(new TechnicalDetailsSettings()), - pp_gas(new PartialPressureGasSettings()), - facebook(new FacebookSettings()), - geocoding(new GeocodingPreferences()), - proxy(new ProxySettings()), - cloud_storage(new CloudStorageSettings()), - planner_settings(new DivePlannerSettings()), - unit_settings(new UnitsSettings()), - general_settings(new GeneralSettingsObjectWrapper()), - display_settings(new DisplaySettingsObjectWrapper()), - language_settings(new LanguageSettingsObjectWrapper()), - animation_settings(new AnimationsSettingsObjectWrapper()), - location_settings(new LocationServiceSettingsObjectWrapper()) + techDetails(new TechnicalDetailsSettings(this)), + pp_gas(new PartialPressureGasSettings(this)), + facebook(new FacebookSettings(this)), + geocoding(new GeocodingPreferences(this)), + proxy(new ProxySettings(this)), + cloud_storage(new CloudStorageSettings(this)), + planner_settings(new DivePlannerSettings(this)), + unit_settings(new UnitsSettings(this)), + general_settings(new GeneralSettingsObjectWrapper(this)), + display_settings(new DisplaySettingsObjectWrapper(this)), + language_settings(new LanguageSettingsObjectWrapper(this)), + animation_settings(new AnimationsSettingsObjectWrapper(this)), + location_settings(new LocationServiceSettingsObjectWrapper(this)) +{ +} + +void SettingsObjectWrapper::setSaveUserIdLocal(short int value) { + //TODO: Find where this is stored on the preferences. } +short int SettingsObjectWrapper::saveUserIdLocal() const +{ + return prefs.save_userid_local; +} + + diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h index 2b28d21..6a8aa73 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h @@ -413,43 +413,43 @@ private: class UnitsSettings : public QObject { Q_OBJECT - Q_PROPERTY(units::length length READ length WRITE setLength NOTIFY lengthChanged) - Q_PROPERTY(units::pressure pressure READ pressure WRITE setPressure NOTIFY pressureChanged) - Q_PROPERTY(units::volume volume READ volume WRITE setVolume NOTIFY volumeChanged) - Q_PROPERTY(units::temperature temperature READ temperature WRITE setTemperature NOTIFY temperatureChanged) - Q_PROPERTY(units::weight weight READ weight WRITE setWeight NOTIFY weightChanged) + Q_PROPERTY(int length READ length WRITE setLength NOTIFY lengthChanged) + Q_PROPERTY(int pressure READ pressure WRITE setPressure NOTIFY pressureChanged) + Q_PROPERTY(int volume READ volume WRITE setVolume NOTIFY volumeChanged) + Q_PROPERTY(int temperature READ temperature WRITE setTemperature NOTIFY temperatureChanged) + Q_PROPERTY(int weight READ weight WRITE setWeight NOTIFY weightChanged) Q_PROPERTY(QString unit_system READ unitSystem WRITE setUnitSystem NOTIFY unitSystemChanged) Q_PROPERTY(bool coordinates_traditional READ coordinatesTraditional WRITE setCoordinatesTraditional NOTIFY coordinatesTraditionalChanged) - Q_PROPERTY(units::vertical_speed_time vertical_speed_time READ verticalSpeedTime WRITE setVerticalSpeedTime NOTIFY verticalSpeedTimeChanged) + Q_PROPERTY(int vertical_speed_time READ verticalSpeedTime WRITE setVerticalSpeedTime NOTIFY verticalSpeedTimeChanged) public: UnitsSettings(QObject *parent = 0); - units::length length() const; - units::pressure pressure() const; - units::volume volume() const; - units::temperature temperature() const; - units::weight weight() const; - units::vertical_speed_time verticalSpeedTime() const; + int length() const; + int pressure() const; + int volume() const; + int temperature() const; + int weight() const; + int verticalSpeedTime() const; QString unitSystem() const; bool coordinatesTraditional() const; public slots: - void setLength(units::length value); - void setPressure(units::pressure value); - void setVolume(units::volume value); - void setTemperature(units::temperature value); - void setWeight(units::weight value); - void setVerticalSpeedTime(units::vertical_speed_time value); + void setLength(int value); + void setPressure(int value); + void setVolume(int value); + void setTemperature(int value); + void setWeight(int value); + void setVerticalSpeedTime(int value); void setUnitSystem(const QString& value); void setCoordinatesTraditional(bool value); signals: - void lengthChanged(units::length value); - void pressureChanged(units::pressure value); - void volumeChanged(units::volume value); - void temperatureChanged(units::temperature value); - void weightChanged(units::weight value); - void verticalSpeedTimeChanged(units::vertical_speed_time value); + void lengthChanged(int value); + void pressureChanged(int value); + void volumeChanged(int value); + void temperatureChanged(int value); + void weightChanged(int value); + void verticalSpeedTimeChanged(int value); void unitSystemChanged(const QString& value); void coordinatesTraditionalChanged(bool value); private: diff --git a/subsurface-core/units.h b/subsurface-core/units.h index 9d1b0fc..9ad4b72 100644 --- a/subsurface-core/units.h +++ b/subsurface-core/units.h @@ -228,29 +228,29 @@ static inline int mbar_to_PSI(int mbar) #undef PASCAL #endif struct units { - enum { + enum LENGHT { METERS, FEET } length; - enum { + enum VOLUME { LITER, CUFT } volume; - enum { + enum PRESSURE { BAR, PSI, PASCAL } pressure; - enum { + enum TEMPERATURE { CELSIUS, FAHRENHEIT, KELVIN } temperature; - enum { + enum WEIGHT { KG, LBS } weight; - enum { + enum TIME { SECONDS, MINUTES } vertical_speed_time; -- 2.7.0
From c7bb767f11ef57d39f589ef0eb41e6b4c0e8e50a Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tomaz.canabr...@intel.com> Date: Fri, 22 Jan 2016 17:46:15 -0200 Subject: [PATCH 5/6] Finalize the Settings This was the hammer part of the settings, now I need to make it able to compile ;p Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com> --- .../subsurface-qt/SettingsObjectWrapper.cpp | 66 ++++++++++++++++- .../subsurface-qt/SettingsObjectWrapper.h | 83 ++++++++++++++++++---- 2 files changed, 135 insertions(+), 14 deletions(-) diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp index ec36e06..37d53a4 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp @@ -8,6 +8,13 @@ static QString tecDetails = QStringLiteral("TecDetails"); +PartialPressureGasSettings::PartialPressureGasSettings(QObject* parent): + QObject(parent), + group("TecDetails") +{ + +} + short PartialPressureGasSettings::showPo2() const { return prefs.pp_graphs.po2; @@ -93,6 +100,11 @@ void PartialPressureGasSettings::setPheThreshold(double value) } +TechnicalDetailsSettings::TechnicalDetailsSettings(QObject* parent): QObject(parent) +{ + +} + double TechnicalDetailsSettings:: modp02() const { return prefs.modpO2; @@ -203,7 +215,12 @@ short int TechnicalDetailsSettings::mod() const return prefs.mod; } -void TechnicalDetailsSettings::setModpO2(double value) +bool TechnicalDetailsSettings::showPicturesInProfile() const +{ + return prefs.show_pictures_in_profile; +} + +void TechnicalDetailsSettings::setModp02(double value) { QSettings s; s.beginGroup(tecDetails); @@ -212,6 +229,15 @@ void TechnicalDetailsSettings::setModpO2(double value) emit modpO2Changed(value); } +void TechnicalDetailsSettings::setShowPicturesInProfile(bool value) +{ + QSettings s; + s.beginGroup(tecDetails); + s.setValue("show_pictures_in_profile", value); + prefs.show_pictures_in_profile = value; + emit showPicturesInProfileChanged(value); +} + void TechnicalDetailsSettings::setEad(short value) { QSettings s; @@ -230,7 +256,7 @@ void TechnicalDetailsSettings::setMod(short value) emit modChanged(value); } -void TechnicalDetailsSettings::setDcceiling(short value) +void TechnicalDetailsSettings::setDCceiling(short value) { QSettings s; s.beginGroup(tecDetails); @@ -405,6 +431,8 @@ void TechnicalDetailsSettings::setShowAverageDepth(short value) emit showAverageDepthChanged(value); } + + FacebookSettings::FacebookSettings(QObject *parent) : group(QStringLiteral("WebApps")), subgroup(QStringLiteral("Facebook")) @@ -651,6 +679,11 @@ CloudStorageSettings::CloudStorageSettings(QObject *parent) : } +bool CloudStorageSettings::gitLocalOnly() const +{ + return prefs.git_local_only; +} + QString CloudStorageSettings::password() const { return QString(prefs.cloud_storage_password); @@ -787,6 +820,16 @@ void CloudStorageSettings::setCloudUrl(const QString& value) /* no-op */ Q_UNUSED(value); } +void CloudStorageSettings::setGitUrl(const QString& value) +{ + Q_UNUSED(value); /* no op */ +} + +void CloudStorageSettings::setGitLocalOnly(bool value) +{ + prefs.git_local_only = value; +} + DivePlannerSettings::DivePlannerSettings(QObject *parent) : QObject(parent), group(QStringLiteral("Planner")) @@ -1486,3 +1529,22 @@ void LanguageSettingsObjectWrapper::setDateFormatOverride(bool value) prefs.date_format_override = value.; emit dateFormatOverrideChanged(value); } + +SettingsObjectWrapper::SettingsObjectWrapper(QObject* parent): +QObject(parent), + techDetails(new TechnicalDetailsSettings()), + pp_gas(new PartialPressureGasSettings()), + facebook(new FacebookSettings()), + geocoding(new GeocodingPreferences()), + proxy(new ProxySettings()), + cloud_storage(new CloudStorageSettings()), + planner_settings(new DivePlannerSettings()), + unit_settings(new UnitsSettings()), + general_settings(new GeneralSettingsObjectWrapper()), + display_settings(new DisplaySettingsObjectWrapper()), + language_settings(new LanguageSettingsObjectWrapper()), + animation_settings(new AnimationsSettingsObjectWrapper()), + location_settings(new LocationServiceSettingsObjectWrapper()) +{ +} + diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h index 6ce1ac1..2b28d21 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h @@ -45,6 +45,8 @@ signals: void po2ThresholdChanged(double value); void pn2ThresholdChanged(double value); void pheThresholdChanged(double value); +private: + QString group; }; class TechnicalDetailsSettings : public QObject { @@ -71,7 +73,7 @@ class TechnicalDetailsSettings : public QObject { Q_PROPERTY(bool gf_low_at_maxdepth READ gfLowAtMaxDepth WRITE setGfLowAtMaxDepth NOTIFY gfLowAtMaxDepthChanged) Q_PROPERTY(short display_unused_tanks READ displayUnusedTanks WRITE setDisplayUnusedTanks NOTIFY displayUnusedTanksChanged) Q_PROPERTY(short show_average_depth READ showAverageDepth WRITE setShowAverageDepth NOTIFY showAverageDepthChanged) - + Q_PROPERTY(bool show_pictures_in_profile READ showPicturesInProfile WRITE setShowPicturesInProfile NOTIFY showPicturesInProfileChanged) public: TechnicalDetailsSettings(QObject *parent); @@ -97,6 +99,7 @@ public: bool gfLowAtMaxDepth() const; short displayUnusedTanks() const; short showAverageDepth() const; + bool showPicturesInProfile() const; public slots: void setMod(short value); @@ -121,6 +124,7 @@ public slots: void setGfLowAtMaxDepth(bool value); void setDisplayUnusedTanks(short value); void setShowAverageDepth(short value); + void setShowPicturesInProfile(bool value); signals: void modpO2Changed(double value); @@ -145,6 +149,7 @@ signals: void gfLowAtMaxDepthChanged(bool value); void displayUnusedTanksChanged(short value); void showAverageDepthChanged(short value); + void showPicturesInProfileChanged(bool value); }; /* Control the state of the Facebook preferences */ @@ -257,6 +262,7 @@ class CloudStorageSettings : public QObject { Q_PROPERTY(QString userid READ userId WRITE setUserId NOTIFY userIdChanged) Q_PROPERTY(QString base_url READ baseUrl WRITE setBaseUrl NOTIFY baseUrlChanged) Q_PROPERTY(QString git_url READ gitUrl WRITE setGitUrl NOTIFY gitUrlChanged) + Q_PROPERTY(bool git_local_only READ gitLocalOnly WRITE setGitLocalOnly NOTIFY gitLocalOnlyChanged) Q_PROPERTY(bool save_password_local READ savePasswordLocal WRITE setSavePasswordLocal NOTIFY savePasswordLocalChanged) Q_PROPERTY(short verification_status READ verificationStatus WRITE setVerificationStatus NOTIFY verificationStatusChanged) Q_PROPERTY(bool background_sync READ backgroundSync WRITE setBackgroundSync NOTIFY backgroundSyncChanged) @@ -272,6 +278,7 @@ public: bool savePasswordLocal() const; short verificationStatus() const; bool backgroundSync() const; + bool gitLocalOnly() const; public slots: void setPassword(const QString& value); @@ -284,6 +291,7 @@ public slots: void setSavePasswordLocal(bool value); void setVerificationStatus(short value); void setBackgroundSync(bool value); + void setGitLocalOnly(bool value); signals: void passwordChanged(const QString& value); @@ -296,6 +304,7 @@ signals: void savePasswordLocalChanged(bool value); void verificationStatusChanged(short value); void backgroundSyncChanged(bool value); + void gitLocalOnlyChanged(bool value); private: QString group; }; @@ -401,9 +410,6 @@ signals: private: QString group; }; -/* Monster class, should be breaken into a few more understandable classes later, wich will be easy to do: -* grab the Q_PROPERTYES and create a wrapper class like the ones above. -*/ class UnitsSettings : public QObject { Q_OBJECT @@ -554,15 +560,62 @@ private: QString group; }; -class SettingsObjectWrapper : public QObject { +class AnimationsSettingsObjectWrapper : public QObject { Q_OBJECT - Q_PROPERTY(int animation_speed READ animationSpeed WRITE setAnimationSpeed NOTIFY animationSpeedChanged) - Q_PROPERTY(short save_userid_local READ saveUserIdLocal WRITE setSaveUserIdLocal NOTIFY saveUserIdLocalChanged) - Q_PROPERTY(bool show_pictures_in_profile READ showPicturesInProfile WRITE setShowPicturesInProfile NOTIFY showPicturesInProfileChanged) +public: + AnimationsSettingsObjectWrapper(QObject *parent); + int animationSpeed() const; + +public slots: + void setAnimationSpeed(int value); + +signals: + void animationSpeedChanged(int value); + +private: + QString group; +}; + +class LocationServiceSettingsObjectWrapper : public QObject { + Q_OBJECT Q_PROPERTY(int time_threshold READ timeThreshold WRITE setTimeThreshold NOTIFY timeThresholdChanged) Q_PROPERTY(int distance_threshold READ distanceThreshold WRITE setDistanceThreshold NOTIFY distanceThresholdChanged) - Q_PROPERTY(bool git_local_only READ gitLocalOnly WRITE setGitLocalOnly NOTIFY gitLocalOnlyChanged) +public: + LocationServiceSettingsObjectWrapper(QObject *parent); + int timeThreshold() const; + int distanceThreshold() const; +public slots: + void setTimeThreshold(int value); + void setDistanceThreshold(int value); +signals: + void timeThresholdChanged(int value); + void distanceThresholdChanged(int value); +private: + QString group; +}; + +class SettingsObjectWrapper : public QObject { + Q_OBJECT + Q_PROPERTY(short save_userid_local READ saveUserIdLocal WRITE setSaveUserIdLocal NOTIFY saveUserIdLocalChanged) + + Q_PROPERTY(TechnicalDetailsSettings* techical_details MEMBER techDetails CONSTANT) + Q_PROPERTY(PartialPressureGasSettings* pp_gas MEMBER pp_gas CONSTANT) + Q_PROPERTY(FacebookSettings* facebook MEMBER facebook CONSTANT) + Q_PROPERTY(GeocodingPreferences* geocoding MEMBER geocoding CONSTANT) + Q_PROPERTY(ProxySettings* proxy MEMBER proxy CONSTANT) + Q_PROPERTY(CloudStorageSettings* cloud_storage MEMBER cloud_storage CONSTANT) + Q_PROPERTY(DivePlannerSettings* planner MEMBER planner_settings CONSTANT) + Q_PROPERTY(UnitsSettings* units MEMBER unit_settings CONSTANT) + + Q_PROPERTY(GeneralSettingsObjectWrapper* general MEMBER general_settings CONSTANT) + Q_PROPERTY(DisplaySettingsObjectWrapper* display MEMBER display_settings CONSTANT) + Q_PROPERTY(LanguageSettingsObjectWrapper* language MEMBER language_settings CONSTANT) + Q_PROPERTY(AnimationsSettingsObjectWrapper* animation MEMBER animation_settings CONSTANT) + Q_PROPERTY(LocationServiceSettingsObjectWrapper* Location MEMBER location_settings CONSTANT) +public: + SettingsObjectWrapper(QObject *parent = NULL); + short saveUserIdLocal() const; TechnicalDetailsSettings *techDetails; PartialPressureGasSettings *pp_gas; @@ -574,8 +627,14 @@ class SettingsObjectWrapper : public QObject { UnitsSettings *unit_settings; GeneralSettingsObjectWrapper *general_settings; DisplaySettingsObjectWrapper *display_settings; -public: - SettingsObjectWrapper(QObject *parent = NULL); + LanguageSettingsObjectWrapper *language_settings; + AnimationsSettingsObjectWrapper *animation_settings; + LocationServiceSettingsObjectWrapper *location_settings; + +public slots: + void setSaveUserIdLocal(short value); +signals: + void saveUserIdLocalChanged(short value); }; -#endif \ No newline at end of file +#endif -- 2.7.0
From 99152ac402f461528c69621b568e114c1b79c656 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tomaz.canabr...@intel.com> Date: Fri, 22 Jan 2016 16:58:17 -0200 Subject: [PATCH 4/6] Remove prefs already implemented. Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com> --- subsurface-core/subsurface-qt/SettingsObjectWrapper.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h index 9b81456..6ce1ac1 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h @@ -558,8 +558,6 @@ class SettingsObjectWrapper : public QObject { Q_OBJECT Q_PROPERTY(int animation_speed READ animationSpeed WRITE setAnimationSpeed NOTIFY animationSpeedChanged) - Q_PROPERTY(short unit_system READ unitSystem WRITE setUnitSystem NOTIFY uintSystemChanged) - Q_PROPERTY(bool coordinates_traditional READ coordinatesTraditional WRITE setCoordinatesTraditional NOTIFY coordinatesTraditionalChanged) Q_PROPERTY(short save_userid_local READ saveUserIdLocal WRITE setSaveUserIdLocal NOTIFY saveUserIdLocalChanged) Q_PROPERTY(bool show_pictures_in_profile READ showPicturesInProfile WRITE setShowPicturesInProfile NOTIFY showPicturesInProfileChanged) Q_PROPERTY(int time_threshold READ timeThreshold WRITE setTimeThreshold NOTIFY timeThresholdChanged) -- 2.7.0
From cfc573af5a0fddf02c59144f669d6eb43240835f Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tomaz.canabr...@intel.com> Date: Fri, 22 Jan 2016 16:55:03 -0200 Subject: [PATCH 3/6] Language Settings Wrapper Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com> --- subsurface-core/pref.h | 6 ++ subsurface-core/qthelper.cpp | 1 + .../subsurface-qt/SettingsObjectWrapper.cpp | 96 ++++++++++++++++++++++ .../subsurface-qt/SettingsObjectWrapper.h | 41 ++++++++- 4 files changed, 142 insertions(+), 2 deletions(-) diff --git a/subsurface-core/pref.h b/subsurface-core/pref.h index 1e58a6a..be684fd 100644 --- a/subsurface-core/pref.h +++ b/subsurface-core/pref.h @@ -32,6 +32,11 @@ typedef struct { enum taxonomy_category category[3]; } geocoding_prefs_t; +typedef struct { + const char *language; + bool use_system_language; +} locale_prefs_t; + enum deco_mode { BUEHLMANN, RECREATIONAL, @@ -126,6 +131,7 @@ struct preferences { int time_threshold; int distance_threshold; bool git_local_only; + locale_prefs_t locale; //: TODO: move the rest of locale based info here. }; enum unit_system_values { METRIC, diff --git a/subsurface-core/qthelper.cpp b/subsurface-core/qthelper.cpp index 915f263..b8e1688 100644 --- a/subsurface-core/qthelper.cpp +++ b/subsurface-core/qthelper.cpp @@ -1273,6 +1273,7 @@ void loadPreferences() QSettings s; QVariant v; + uiLanguage(NULL); s.beginGroup("Units"); if (s.value("unit_system").toString() == "metric") { prefs.unit_system = METRIC; diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp index 1cd12b3..ec36e06 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp @@ -1390,3 +1390,99 @@ void DisplaySettingsObjectWrapper::setDisplayInvalidDives(short value) emit displayInvalidDivesChanged(value); } +LanguageSettingsObjectWrapper::LanguageSettingsObjectWrapper(QObject *parent) : + QObject(parent), + group("Language") +{ +} + +QString LanguageSettingsObjectWrapper::language() const +{ + return prefs.locale.language; +} + +QString LanguageSettingsObjectWrapper::timeFormat() const +{ + return prefs.time_format; +} + +QString LanguageSettingsObjectWrapper::dateFormat() const +{ + return prefs.date_format; +} + +QString LanguageSettingsObjectWrapper::dateFormatShort() const +{ + return prefs.date_format_short; +} + +bool LanguageSettingsObjectWrapper::timeFormatOverride() const +{ + return prefs.time_format_override; +} + +bool LanguageSettingsObjectWrapper::dateFormatOverride() const +{ + return prefs.date_format_override; +} + +bool LanguageSettingsObjectWrapper::useSystemLanguage() const +{ + return prefs.locale.use_system_language; +} + +void LanguageSettingsObjectWrapper::setUseSystemLanguage(bool value) +{ + QSettings s; + s.setValue("UseSystemLanguage", value); + prefs.locale.use_system_language = copy_string(qPrintable(value)); + emit useSystemLanguageChanged(value); +} + +void LanguageSettingsObjectWrapper::setLanguage(const QString& value) +{ + QSettings s; + s.setValue("UiLanguage", value); + prefs.locale.language = copy_string(qPrintable(value)); + emit languageChanged(value); +} + +void LanguageSettingsObjectWrapper::setTimeFormat(const QString& value) +{ + QSettings s; + s.setValue("time_format", value); + prefs.time_format = copy_string(qPrintable(value));; + emit timeFormatChanged(value); +} + +void LanguageSettingsObjectWrapper::setDateFormat(const QString& value) +{ + QSettings s; + s.setValue("date_format", value); + prefs.date_format = copy_string(qPrintable(value));; + emit dateFormatChanged(value); +} + +void LanguageSettingsObjectWrapper::setDateFormatShort(const QString& value) +{ + QSettings s; + s.setValue("date_format_short", value); + prefs.date_format_short = copy_string(qPrintable(value));; + emit dateFormatShortChanged(value); +} + +void LanguageSettingsObjectWrapper::setTimeFormatOverride(bool value) +{ + QSettings s; + s.setValue("time_format_override", value); + prefs.time_format_override = value.; + emit timeFormatOverrideChanged(value); +} + +void LanguageSettingsObjectWrapper::setDateFormatOverride(bool value) +{ + QSettings s; + s.setValue("date_format_override", value); + prefs.date_format_override = value.; + emit dateFormatOverrideChanged(value); +} diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h index 877a4e5..9b81456 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h @@ -513,13 +513,50 @@ private: QString group; }; -class SettingsObjectWrapper : public QObject { +class LanguageSettingsObjectWrapper : public QObject { Q_OBJECT - + Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged) Q_PROPERTY(QString time_format READ timeFormat WRITE setTimeFormat NOTIFY timeFormatChanged) + Q_PROPERTY(QString date_format READ dateFormat WRITE setDateFormat NOTIFY dateFormatChanged) Q_PROPERTY(QString date_format_short READ dateFormatShort WRITE setDateFormatShort NOTIFY dateFormatShortChanged) Q_PROPERTY(bool time_format_override READ timeFormatOverride WRITE setTimeFormatOverride NOTIFY timeFormatOverrideChanged) Q_PROPERTY(bool date_format_override READ dateFormatOverride WRITE setDateFormatOverride NOTIFY dateFormatOverrideChanged) + Q_PROPERTY(bool use_system_language READ useSystemLanguage WRITE setUseSystemLanguage NOTIFY useSystemLanguageChanged) + +public: + LanguageSettingsObjectWrapper(QObject *parent); + QString language() const; + QString timeFormat() const; + QString dateFormat() const; + QString dateFormatShort() const; + bool timeFormatOverride() const; + bool dateFormatOverride() const; + bool useSystemLanguage() const; + +public slots: + void setLanguage (const QString& value); + void setTimeFormat (const QString& value); + void setDateFormat (const QString& value); + void setDateFormatShort (const QString& value); + void setTimeFormatOverride (bool value); + void setDateFormatOverride (bool value); + void setUseSystemLanguage (bool value); +signals: + void languageChanged(const QString& value); + void timeFormatChanged(const QString& value); + void dateFormatChanged(const QString& value); + void dateFormatShortChanged(const QString& value); + void timeFormatOverrideChanged(bool value); + void dateFormatOverrideChanged(bool value); + void useSystemLanguageChanged(bool value); + +private: + QString group; +}; + +class SettingsObjectWrapper : public QObject { + Q_OBJECT + Q_PROPERTY(int animation_speed READ animationSpeed WRITE setAnimationSpeed NOTIFY animationSpeedChanged) Q_PROPERTY(short unit_system READ unitSystem WRITE setUnitSystem NOTIFY uintSystemChanged) Q_PROPERTY(bool coordinates_traditional READ coordinatesTraditional WRITE setCoordinatesTraditional NOTIFY coordinatesTraditionalChanged) -- 2.7.0
From 746661af9de1fb69e21d0091cbcedb62c69b3838 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tomaz.canabr...@intel.com> Date: Fri, 22 Jan 2016 16:00:44 -0200 Subject: [PATCH 2/6] Added Display Settings Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com> --- .../subsurface-qt/SettingsObjectWrapper.cpp | 59 ++++++++++++++++++++++ .../subsurface-qt/SettingsObjectWrapper.h | 27 ++++++++-- 2 files changed, 82 insertions(+), 4 deletions(-) diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp index 4684b74..1cd12b3 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp @@ -1,5 +1,8 @@ #include "SettingsObjectWrapper.h" #include <QSettings> +#include <QApplication> +#include <QFont> + #include "../dive.h" // TODO: remove copy_string from dive.h @@ -1331,3 +1334,59 @@ void GeneralSettingsObjectWrapper::setPscrRatio(int value) prefs.pscr_ratio = value.; emit pscrRatioChanged(value); } + +DisplaySettingsObjectWrapper::DisplaySettingsObjectWrapper(QObject *parent) : + QObject(parent), + group(QStringLiteral("Display")) +{ +} + +QString DisplaySettingsObjectWrapper::divelistFont() const +{ + return prefs.divelist_font; +} + +double DisplaySettingsObjectWrapper::fontSize() const +{ + return prefs.font_size; +} + +short DisplaySettingsObjectWrapper::displayInvalidDives() const +{ + return prefs.display_invalid_dives; +} + +void DisplaySettingsObjectWrapper::setDivelistFont(const QString& value) +{ + QSettings s; + s.setValue("divelist_font", value); + if (value.contains(",")) + value = value.left(value.indexOf(",")); + + if (!subsurface_ignore_font(value.toUtf8().constData())) { + free((void *)prefs.divelist_font); + prefs.divelist_font = strdup(value.toUtf8().constData()); + qApp->setFont(QFont(value)); + } + emit divelistFontChanged(value); +} + +void DisplaySettingsObjectWrapper::setFontSize(double value) +{ + QSettings s; + s.setValue("font_size", value); + prefs.font_size = value.; + QFont defaultFont = qApp->font(); + defaultFont.setPointSizeF(prefs.font_size); + qApp->setFont(defaultFont); + emit fontSizeChanged(value); +} + +void DisplaySettingsObjectWrapper::setDisplayInvalidDives(short value) +{ + QSettings s; + s.setValue("displayinvalid", value); + prefs.display_invalid_dives = value.; + emit displayInvalidDivesChanged(value); +} + diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h index fd8cdac..877a4e5 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h @@ -489,20 +489,38 @@ signals: void pscrRatioChanged(int value); private: QString group; +}; +class DisplaySettingsObjectWrapper : public QObject { + Q_OBJECT + Q_PROPERTY(QString divelist_font READ divelistFont WRITE setDivelistFont NOTIFY divelistFontChanged) + Q_PROPERTY(double font_size READ fontSize WRITE setFontSize NOTIFY fontSizeChanged) + Q_PROPERTY(short display_invalid_dives READ displayInvalidDives WRITE setDisplayInvalidDives NOTIFY displayInvalidDivesChanged) +public: + DisplaySettingsObjectWrapper(QObject *parent); + QString divelistFont() const; + double fontSize() const; + short displayInvalidDives() const; +public slots: + void setDivelistFont(const QString& value); + void setFontSize(double value); + void setDisplayInvalidDives(short value); +signals: + void divelistFontChanged(const QString& value); + void fontSizeChanged(double value); + void displayInvalidDivesChanged(short value); +private: + QString group; }; class SettingsObjectWrapper : public QObject { Q_OBJECT - Q_PROPERTY(QString divelist_font READ divelistFont WRITE setDivelistFont NOTIFY divelistFontChanged) + Q_PROPERTY(QString time_format READ timeFormat WRITE setTimeFormat NOTIFY timeFormatChanged) - Q_PROPERTY(QString date_format READ dateFormat WRITE setDateFormat NOTIFY dateFormatChanged) Q_PROPERTY(QString date_format_short READ dateFormatShort WRITE setDateFormatShort NOTIFY dateFormatShortChanged) Q_PROPERTY(bool time_format_override READ timeFormatOverride WRITE setTimeFormatOverride NOTIFY timeFormatOverrideChanged) Q_PROPERTY(bool date_format_override READ dateFormatOverride WRITE setDateFormatOverride NOTIFY dateFormatOverrideChanged) - Q_PROPERTY(double font_size READ fontSize WRITE setFontSize NOTIFY fontSizeChanged) Q_PROPERTY(int animation_speed READ animationSpeed WRITE setAnimationSpeed NOTIFY animationSpeedChanged) - Q_PROPERTY(short display_invalid_dives READ displayInvalidDives WRITE setDisplayInvalidDives NOTIFY displayInvalidDivesChanged) Q_PROPERTY(short unit_system READ unitSystem WRITE setUnitSystem NOTIFY uintSystemChanged) Q_PROPERTY(bool coordinates_traditional READ coordinatesTraditional WRITE setCoordinatesTraditional NOTIFY coordinatesTraditionalChanged) Q_PROPERTY(short save_userid_local READ saveUserIdLocal WRITE setSaveUserIdLocal NOTIFY saveUserIdLocalChanged) @@ -520,6 +538,7 @@ class SettingsObjectWrapper : public QObject { DivePlannerSettings *planner_settings; UnitsSettings *unit_settings; GeneralSettingsObjectWrapper *general_settings; + DisplaySettingsObjectWrapper *display_settings; public: SettingsObjectWrapper(QObject *parent = NULL); }; -- 2.7.0
From d966161cde366bb004e1ce0e30fadc3ef954bbf8 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tomaz.canabr...@intel.com> Date: Fri, 22 Jan 2016 15:39:40 -0200 Subject: [PATCH 1/6] Added a GeneralSettingsWrapper Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com> --- .../subsurface-qt/SettingsObjectWrapper.cpp | 105 +++++++++++++++++++++ .../subsurface-qt/SettingsObjectWrapper.h | 50 ++++++++-- 2 files changed, 148 insertions(+), 7 deletions(-) diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp index ef48dfa..4684b74 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp @@ -1226,3 +1226,108 @@ void UnitsSettings::setUnitSystem(const QString& value) emit unitSystemChanged(value); // TODO: emit the other values here? } + +GeneralSettingsObjectWrapper::GeneralSettingsObjectWrapper(QObject *parent) : + QObject(parent), + group(QStringLiteral("GeneralSettings")) +{ +} + +QString GeneralSettingsObjectWrapper::defaultFilename() const +{ + return prefs.default_filename; +} + +QString GeneralSettingsObjectWrapper::defaultCylinder() const +{ + return prefs.default_cylinder; +} + +short GeneralSettingsObjectWrapper::defaultFileBehavior() const +{ + return prefs.default_file_behavior; +} + +bool GeneralSettingsObjectWrapper::useDefaultFile() const +{ + return prefs.use_default_file; +} + +int GeneralSettingsObjectWrapper::defaultSetPoint() const +{ + return prefs.defaultsetpoint; +} + +int GeneralSettingsObjectWrapper::o2Consumption() const +{ + return prefs.o2consumption; +} + +int GeneralSettingsObjectWrapper::pscrRatio() const +{ + return prefs.pscr_ratio; +} + +void GeneralSettingsObjectWrapper::setDefaultFilename(const QString& value) +{ + QSettings s; + s.setValue("default_filename", value); + prefs.default_filename = copy_string(qPrintable(value)); + emit defaultFilenameChanged(value); +} + +void GeneralSettingsObjectWrapper::setDefaultCylinder(const QString& value) +{ + QSettings s; + s.setValue("default_cylinder", value); + prefs.default_cylinder = copy_string(qPrintable(value)); + emit defaultCylinderChanged(value); +} + +void GeneralSettingsObjectWrapper::setDefaultFileBehavior(short value) +{ + QSettings s; + s.setValue("default_file_behavior", value); + prefs.default_file_behavior = value.; + if (prefs.default_file_behavior == UNDEFINED_DEFAULT_FILE) { + // undefined, so check if there's a filename set and + // use that, otherwise go with no default file + if (QString(prefs.default_filename).isEmpty()) + prefs.default_file_behavior = NO_DEFAULT_FILE; + else + prefs.default_file_behavior = LOCAL_DEFAULT_FILE; + } + emit defaultFileBehaviorChanged(value); +} + +void GeneralSettingsObjectWrapper::setUseDefaultFile(bool value) +{ + QSettings s; + s.setValue("use_default_file", value); + prefs.use_default_file = value.; + emit useDefaultFileChanged(value); +} + +void GeneralSettingsObjectWrapper::setDefaultSetPoint(int value) +{ + QSettings s; + s.setValue("defaultsetpoint", value); + prefs.defaultsetpoint = value.; + emit defaultSetPointChanged(value); +} + +void GeneralSettingsObjectWrapper::setO2Consumption(int value) +{ + QSettings s; + s.setValue("o2consumption", value); + prefs.o2consumption = value.; + emit o2ConsumptionChanged(value); +} + +void GeneralSettingsObjectWrapper::setPscrRatio(int value) +{ + QSettings s; + s.setValue("pscr_ratio", value); + prefs.pscr_ratio = value.; + emit pscrRatioChanged(value); +} diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h index c0d0cab..fd8cdac 100644 --- a/subsurface-core/subsurface-qt/SettingsObjectWrapper.h +++ b/subsurface-core/subsurface-qt/SettingsObjectWrapper.h @@ -450,11 +450,51 @@ private: QString group; }; +class GeneralSettingsObjectWrapper : public QObject { + Q_OBJECT + Q_PROPERTY(QString default_filename READ defaultFilename WRITE setDefaultFilename NOTIFY defaultFilenameChanged) + Q_PROPERTY(QString default_cylinder READ defaultCylinder WRITE setDefaultCylinder NOTIFY defaultCylinderChanged) + Q_PROPERTY(short default_file_behavior READ defaultFileBehavior WRITE setDefaultFileBehavior NOTIFY defaultFileBehaviorChanged) + Q_PROPERTY(bool use_default_file READ useDefaultFile WRITE setUseDefaultFile NOTIFY useDefaultFileChanged) + Q_PROPERTY(int defaultsetpoint READ defaultSetPoint WRITE setDefaultSetPoint NOTIFY defaultSetPointChanged) + Q_PROPERTY(int o2consumption READ o2Consumption WRITE setO2Consumption NOTIFY o2ConsumptionChanged) + Q_PROPERTY(int pscr_ratio READ pscrRatio WRITE setPscrRatio NOTIFY pscrRatioChanged) + +public: + GeneralSettingsObjectWrapper(QObject *parent); + QString defaultFilename() const; + QString defaultCylinder() const; + short defaultFileBehavior() const; + bool useDefaultFile() const; + int defaultSetPoint() const; + int o2Consumption() const; + int pscrRatio() const; + +public slots: + void setDefaultFilename (const QString& value); + void setDefaultCylinder (const QString& value); + void setDefaultFileBehavior (short value); + void setUseDefaultFile (bool value); + void setDefaultSetPoint (int value); + void setO2Consumption (int value); + void setPscrRatio (int value); + +signals: + void defaultFilenameChanged(const QString& value); + void defaultCylinderChanged(const QString& value); + void defaultFileBehaviorChanged(short value); + void useDefaultFileChanged(bool value); + void defaultSetPointChanged(int value); + void o2ConsumptionChanged(int value); + void pscrRatioChanged(int value); +private: + QString group; + +}; + class SettingsObjectWrapper : public QObject { Q_OBJECT Q_PROPERTY(QString divelist_font READ divelistFont WRITE setDivelistFont NOTIFY divelistFontChanged) - Q_PROPERTY(QString default_filename READ defaultFilename WRITE setDefaultFilename NOTIFY defaultFilenameChanged) - Q_PROPERTY(QString default_cylinder READ defaultCylinder WRITE setDefaultCylinder NOTIFY defaultCylinderChanged) Q_PROPERTY(QString time_format READ timeFormat WRITE setTimeFormat NOTIFY timeFormatChanged) Q_PROPERTY(QString date_format READ dateFormat WRITE setDateFormat NOTIFY dateFormatChanged) Q_PROPERTY(QString date_format_short READ dateFormatShort WRITE setDateFormatShort NOTIFY dateFormatShortChanged) @@ -466,12 +506,7 @@ class SettingsObjectWrapper : public QObject { Q_PROPERTY(short unit_system READ unitSystem WRITE setUnitSystem NOTIFY uintSystemChanged) Q_PROPERTY(bool coordinates_traditional READ coordinatesTraditional WRITE setCoordinatesTraditional NOTIFY coordinatesTraditionalChanged) Q_PROPERTY(short save_userid_local READ saveUserIdLocal WRITE setSaveUserIdLocal NOTIFY saveUserIdLocalChanged) - Q_PROPERTY(int o2consumption READ o2Consumption WRITE setO2Consumption NOTIFY o2ConsumptionChanged) - Q_PROPERTY(int pscr_ratio READ pscrRatio WRITE setPscrRatio NOTIFY pscrRatioChanged) - Q_PROPERTY(int defaultsetpoint READ defaultSetPoint WRITE setDefaultSetPoint NOTIFY defaultSetPointChanged) Q_PROPERTY(bool show_pictures_in_profile READ showPicturesInProfile WRITE setShowPicturesInProfile NOTIFY showPicturesInProfileChanged) - Q_PROPERTY(bool use_default_file READ useDefaultFile WRITE setUseDefaultFile NOTIFY useDefaultFileChanged) - Q_PROPERTY(short default_file_behavior READ defaultFileBehavior WRITE setDefaultFileBehavior NOTIFY defaultFileBehaviorChanged) Q_PROPERTY(int time_threshold READ timeThreshold WRITE setTimeThreshold NOTIFY timeThresholdChanged) Q_PROPERTY(int distance_threshold READ distanceThreshold WRITE setDistanceThreshold NOTIFY distanceThresholdChanged) Q_PROPERTY(bool git_local_only READ gitLocalOnly WRITE setGitLocalOnly NOTIFY gitLocalOnlyChanged) @@ -484,6 +519,7 @@ class SettingsObjectWrapper : public QObject { CloudStorageSettings *cloud_storage; DivePlannerSettings *planner_settings; UnitsSettings *unit_settings; + GeneralSettingsObjectWrapper *general_settings; public: SettingsObjectWrapper(QObject *parent = NULL); }; -- 2.7.0
_______________________________________________ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface