aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-06-18 20:10:20 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-06-18 20:10:20 +0200
commit75bbab5fcc0260ac765b216b8b3d989f88dac159 (patch)
tree0713aff62c08bb3cff7691c252279c6a8baf6c3d /src/main.cpp
parent151323b0c75464318881c3f96f2c3f558e63ca99 (diff)
downloadkristall-75bbab5fcc0260ac765b216b8b3d989f88dac159.tar.gz
Reworks global settings handling, improves redirection configuration.
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp44
1 files changed, 41 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp
index d2f56da..2902bfb 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -12,6 +12,7 @@ QSettings global_settings { "xqTechnologies", "Kristall" };
QClipboard * global_clipboard;
SslTrust global_trust;
FavouriteCollection global_favourites;
+GenericSettings global_options;
int main(int argc, char *argv[])
{
@@ -22,9 +23,7 @@ int main(int argc, char *argv[])
QCommandLineParser cli_parser;
cli_parser.parse(app.arguments());
- if(not global_settings.contains("start_page")) {
- global_settings.setValue("start_page", "about:favourites");
- }
+ global_options.load(global_settings);
global_settings.beginGroup("Client Identities");
global_identities.load(global_settings);
@@ -56,3 +55,42 @@ int main(int argc, char *argv[])
return app.exec();
}
+
+void GenericSettings::load(QSettings &settings)
+{
+ start_page = settings.value("start_page", "about:favourites").toString();
+
+ if(settings.value("text_display", "fancy").toString() == "plain")
+ text_display = PlainText;
+ else
+ text_display = FormattedText;
+
+ enable_text_decoration = settings.value("text_decoration", false).toBool();
+
+ if(settings.value("theme", "light").toString() == "dark")
+ theme = Theme::dark;
+ else
+ theme = Theme::light;
+
+ if(settings.value("gophermap_display", "rendered").toString() == "rendered")
+ gophermap_display = FormattedText;
+ else
+ gophermap_display = PlainText;
+
+ use_os_scheme_handler = settings.value("use_os_scheme_handler", false).toBool();
+
+ max_redirections = settings.value("max_redirections", 5).toInt();
+ redirection_policy = RedirectionWarning(settings.value("redirection_policy ", WarnOnHostChange).toInt());
+}
+
+void GenericSettings::save(QSettings &settings) const
+{
+ settings.setValue("start_page", "about:favourites");
+ settings.setValue("text_display", (text_display == FormattedText) ? "fancy" : "plain");
+ settings.setValue("text_decoration", enable_text_decoration);
+ settings.setValue("theme", (theme == Theme::dark) ? "dark" : "light");
+ settings.setValue("gophermap_display", (gophermap_display == FormattedText) ? "rendered" : "text");
+ settings.setValue("use_os_scheme_handler", use_os_scheme_handler);
+ settings.setValue("max_redirections", max_redirections);
+ settings.setValue("redirection_policy", int(redirection_policy));
+}