4 Settings *Settings::singleton = new Settings();
5 QSettings Settings::s(Settings::settingsfile(), QSettings::IniFormat);
6 const QString Settings::weightUnitKey = "WeightUnit";
7 const QString Settings::goalWeightMinKey = "GoalWeightMin";
8 const QString Settings::goalWeightMaxKey = "GoalWeightMax";
9 const QString Settings::grabZoomKeysKey = "GrabZoomKeys";
10 const QString Settings::graphSettingsGroupSuffix = "Graph";
11 const QString Settings::goalWeightEnabledKey = "GoalWeightEnabled";
12 const QString Settings::weightIntervalModeKey = "WeightIntervalMode";
13 const QString Settings::weightIntervalMinKey = "WeightIntervalMin";
14 const QString Settings::weightIntervalMaxKey = "WeightIntervalMax";
15 const QString Settings::defaultTimeIntervalKey = "DefaultTimeInterval";
17 QString Settings::weightUnit()
19 return s.value(weightUnitKey, "kg").toString();
21 void Settings::setWeightUnit(QString wu)
23 s.setValue(weightUnitKey, wu);
25 void Settings::setWeightUnitAndSync(QString wu)
31 double Settings::goalWeightMin()
33 return s.value(goalWeightMinKey, 0.0).toDouble();
35 void Settings::setGoalWeightMin(double min)
37 s.setValue(goalWeightMinKey, min);
39 void Settings::setGoalWeightMinAndSync(double min)
41 setGoalWeightMin(min);
45 double Settings::goalWeightMax()
47 return s.value(goalWeightMaxKey, 0.0).toDouble();
49 void Settings::setGoalWeightMax(double max)
51 s.setValue(goalWeightMaxKey, max);
53 void Settings::setGoalWeightMaxAndSync(double max)
55 setGoalWeightMax(max);
59 bool Settings::grabZoomKeys()
61 return s.value(grabZoomKeysKey, true).toBool();
63 void Settings::setGrabZoomKeys(bool grab)
65 s.setValue(grabZoomKeysKey, grab);
67 void Settings::setGrabZoomKeysAndSync(bool grab)
69 setGrabZoomKeys(grab);
73 GraphSettings Settings::graphSettings(const QString &graphId)
77 s.beginGroup(graphId+graphSettingsGroupSuffix);
78 ret.goalWeightEnabled = s.value(goalWeightEnabledKey, false).toBool();
79 ret.weightIntervalMode = (GraphSettings::WeightIntervalMode)s.value(
80 weightIntervalModeKey, (int)GraphSettings::AutomaticWithoutGoalWeight).toInt();
81 ret.weightIntervalMin = s.value(weightIntervalMinKey, 0.0).toDouble();
82 ret.weightIntervalMax = s.value(weightIntervalMaxKey, 0.0).toDouble();
83 ret.defaultTimeInterval = s.value(defaultTimeIntervalKey, 0).toInt();
88 void Settings::setGraphSettings(const QString &graphId, GraphSettings &gs)
90 s.beginGroup(graphId+graphSettingsGroupSuffix);
91 s.setValue(goalWeightEnabledKey, gs.goalWeightEnabled);
92 s.setValue(weightIntervalModeKey, (int)gs.weightIntervalMode);
93 s.setValue(weightIntervalMinKey, gs.weightIntervalMin);
94 s.setValue(weightIntervalMaxKey, gs.weightIntervalMax);
95 s.setValue(defaultTimeIntervalKey, gs.defaultTimeInterval);
98 void Settings::setGraphSettingsAndSync(const QString &graphId,
101 setGraphSettings(graphId, gs);
105 QStringList Settings::graphIds()
107 QStringList tmp = s.childGroups();
108 tmp = tmp.filter(QRegExp("^\\w+Graph$"));
109 return tmp.replaceInStrings(QRegExp("^(\\w+)Graph$"), "\\1");
111 void Settings::sync()
114 emit singleton->settingChanged();
117 QString Settings::datadir()
120 return QDir::home().path()+"/MyDocs/WeightGraph";
122 return QDir::home().path()+"/.weightgraph";
125 QString Settings::datafile()
127 return datadir()+"/weightdata.txt";
129 QString Settings::settingsfile()
131 return datadir()+"/config.ini";