aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp58
-rw-r--r--subsurface-core/subsurface-qt/SettingsObjectWrapper.h27
2 files changed, 81 insertions, 4 deletions
diff --git a/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp b/subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp
index 4684b744a..5d42d1829 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,58 @@ 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 fd8cdac67..877a4e565 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);
};