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.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2016-01-22 17:46:15 -02:00 committed by Dirk Hohndel
parent ac3ba70fdb
commit b01bca7953
2 changed files with 134 additions and 14 deletions

View file

@ -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,21 @@ 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())
{
}

View file

@ -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
#endif