From a8380047257cb19885bf23ead9a0a92075d4cbce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filiph=20Sandstr=C3=B6m?= Date: Thu, 14 Jul 2022 05:41:13 +0200 Subject: [PATCH] Ladybird: Add Settings class --- Ladybird/CMakeLists.txt | 1 + Ladybird/Settings.cpp | 26 ++++++++++++++++++++++++++ Ladybird/Settings.h | 27 +++++++++++++++++++++++++++ Ladybird/Tab.cpp | 4 +++- Ladybird/main.cpp | 4 ++++ 5 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 Ladybird/Settings.cpp create mode 100644 Ladybird/Settings.h diff --git a/Ladybird/CMakeLists.txt b/Ladybird/CMakeLists.txt index aaf23cacbb3..aac6c8e19d6 100644 --- a/Ladybird/CMakeLists.txt +++ b/Ladybird/CMakeLists.txt @@ -53,6 +53,7 @@ set(SOURCES main.cpp WebView.cpp History.cpp + Settings.cpp Tab.cpp ) diff --git a/Ladybird/Settings.cpp b/Ladybird/Settings.cpp new file mode 100644 index 00000000000..86e01923eaa --- /dev/null +++ b/Ladybird/Settings.cpp @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2022, Filiph Sandström + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include "Settings.h" + +namespace Browser { + +Settings::Settings() +{ + m_qsettings = new QSettings("Serenity", "Ladybird"); +} + +QString Settings::homepage() +{ + return m_qsettings->value("homepage", "https://www.serenityos.org/").toString(); +} + +void Settings::set_homepage(QString const& homepage) +{ + m_qsettings->setValue("homepage", homepage); +} + +} diff --git a/Ladybird/Settings.h b/Ladybird/Settings.h new file mode 100644 index 00000000000..925c71ca80f --- /dev/null +++ b/Ladybird/Settings.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2022, Filiph Sandström + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#define AK_DONT_REPLACE_STD + +#include +#include + +namespace Browser { + +class Settings { +public: + Settings(); + + QString homepage(); + void set_homepage(QString const& homepage); + +private: + QSettings* m_qsettings; +}; + +} diff --git a/Ladybird/Tab.cpp b/Ladybird/Tab.cpp index 09a63af8749..d45b2ca8b61 100644 --- a/Ladybird/Tab.cpp +++ b/Ladybird/Tab.cpp @@ -8,11 +8,13 @@ #include "Tab.h" #include "BrowserWindow.h" #include "History.h" +#include "Settings.h" #include #include #include extern String s_serenity_resource_root; +extern Browser::Settings* s_settings; Tab::Tab(QMainWindow* window) : m_window(window) @@ -100,7 +102,7 @@ void Tab::forward() void Tab::home() { - navigate("https://www.serenityos.org/"); + navigate(s_settings->homepage()); } void Tab::reload() diff --git a/Ladybird/main.cpp b/Ladybird/main.cpp index c5bb0dea9fb..940f77fefe8 100644 --- a/Ladybird/main.cpp +++ b/Ladybird/main.cpp @@ -5,6 +5,7 @@ */ #include "BrowserWindow.h" +#include "Settings.h" #include "WebView.h" #include #include @@ -14,6 +15,7 @@ #include extern void initialize_web_engine(); +Browser::Settings* s_settings; ErrorOr serenity_main(Main::Arguments arguments) { @@ -25,6 +27,8 @@ ErrorOr serenity_main(Main::Arguments arguments) args_parser.add_positional_argument(url, "URL to open", "url", Core::ArgsParser::Required::No); args_parser.parse(arguments); + s_settings = new Browser::Settings(); + Core::EventLoop event_loop; QApplication app(arguments.argc, arguments.argv);