aboutsummaryrefslogtreecommitdiffstats
path: root/core/settings/qPrefDisplay.cpp
blob: e651eb937765cde3220b1e6ad75d0b9a73f9ac66 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// SPDX-License-Identifier: GPL-2.0
#include "qPref.h"
#include "qPref_private.h"
#include "core/subsurface-string.h"

#include <QApplication>
#include <QFont>

qPrefDisplay::qPrefDisplay(QObject *parent) : QObject(parent)
{
}
qPrefDisplay *qPrefDisplay::instance()
{
	static qPrefDisplay *self = new qPrefDisplay;
	return self;
}

void qPrefDisplay::loadSync(bool doSync)
{
	disk_divelist_font(doSync);
	disk_font_size(doSync);
	disk_display_invalid_dives(doSync);
	disk_show_developer(doSync);
	disk_theme(doSync);
}

const QString qPrefDisplay::divelist_font() const
{
	return prefs.divelist_font;
}
void qPrefDisplay::set_divelist_font(const QString& value)
{
	QString newValue = value;
	if (value.contains(","))
		newValue = value.left(value.indexOf(","));

	if (newValue != prefs.divelist_font &&
		!subsurface_ignore_font(qPrintable(newValue))) {
		COPY_TXT(divelist_font, value);
		qApp->setFont(QFont(newValue));
		disk_divelist_font(true);
		emit divelist_font_changed(value);
	}
}
void qPrefDisplay::disk_divelist_font(bool doSync)
{
	LOADSYNC_TXT("/divelist_font", divelist_font);
}

double qPrefDisplay::font_size() const
{
	return prefs.font_size;
}
void qPrefDisplay::set_font_size(double value)
{
	if (value != prefs.font_size) {
		prefs.font_size = value;
		QFont defaultFont = qApp->font();
		defaultFont.setPointSizeF(prefs.font_size);
		qApp->setFont(defaultFont);
		disk_font_size(true);
		emit font_size_changed(value);
	}
}
void qPrefDisplay::disk_font_size(bool doSync)
{
	LOADSYNC_DOUBLE("/font_size", font_size);
}

bool qPrefDisplay::display_invalid_dives() const
{
	return prefs.display_invalid_dives;
}
void qPrefDisplay::set_display_invalid_dives(bool value)
{
	if (value != prefs.display_invalid_dives) {
		prefs.display_invalid_dives = value;
		disk_display_invalid_dives(true);
		emit display_invalid_dives_changed(value);
	}
}
void qPrefDisplay::disk_display_invalid_dives(bool doSync)
{
	LOADSYNC_BOOL("/displayinvalid", display_invalid_dives);
}

bool qPrefDisplay::show_developer() const
{
	return prefs.show_developer;
}
void qPrefDisplay::set_show_developer(bool value)
{
	if (value != prefs.show_developer) {
		prefs.show_developer = value;
		disk_show_developer(true);
		emit disk_show_developer(value);
	}
}
void qPrefDisplay::disk_show_developer(bool doSync)
{
	LOADSYNC_BOOL("/showDeveloper", show_developer);
}

const QString qPrefDisplay::theme() const
{
	return prefs.theme;
}
void qPrefDisplay::set_theme(const QString& value)
{
	if (value != prefs.theme) {
		COPY_TXT(theme, value);
		disk_theme(true);
		emit theme_changed(value);
	}
}
void qPrefDisplay::disk_theme(bool doSync)
{
	LOADSYNC_TXT("/theme", theme);
}