From 75bbab5fcc0260ac765b216b8b3d989f88dac159 Mon Sep 17 00:00:00 2001 From: "Felix (xq) Queißner" Date: Thu, 18 Jun 2020 20:10:20 +0200 Subject: Reworks global settings handling, improves redirection configuration. --- src/main.cpp | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) (limited to 'src/main.cpp') 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)); +} -- cgit v1.2.3