mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 09:00:22 +00:00
Ladybird: Convert Browser::Settings
to a singleton
This commit is contained in:
parent
68dae8ab46
commit
6e40e8316e
Notes:
sideshowbarker
2024-07-18 04:38:32 +09:00
Author: https://github.com/cammo1123 Commit: https://github.com/SerenityOS/serenity/commit/6e40e8316e Pull-request: https://github.com/SerenityOS/serenity/pull/19064 Reviewed-by: https://github.com/AtkinsSJ
6 changed files with 23 additions and 20 deletions
|
@ -27,7 +27,6 @@
|
|||
#include <QTabBar>
|
||||
|
||||
namespace Ladybird {
|
||||
extern Settings* s_settings;
|
||||
|
||||
static QIcon const& app_icon()
|
||||
{
|
||||
|
@ -356,7 +355,7 @@ BrowserWindow::BrowserWindow(Optional<URL> const& initial_url, Browser::CookieJa
|
|||
});
|
||||
|
||||
QObject::connect(new_tab_action, &QAction::triggered, this, [this] {
|
||||
new_tab(s_settings->new_tab_page(), Web::HTML::ActivateTab::Yes);
|
||||
new_tab(Settings::the()->new_tab_page(), Web::HTML::ActivateTab::Yes);
|
||||
});
|
||||
QObject::connect(open_file_action, &QAction::triggered, this, &BrowserWindow::open_file);
|
||||
QObject::connect(settings_action, &QAction::triggered, this, [this] {
|
||||
|
@ -401,7 +400,7 @@ BrowserWindow::BrowserWindow(Optional<URL> const& initial_url, Browser::CookieJa
|
|||
auto initial_url_string = qstring_from_ak_deprecated_string(initial_url->serialize());
|
||||
new_tab(initial_url_string, Web::HTML::ActivateTab::Yes);
|
||||
} else {
|
||||
new_tab(s_settings->new_tab_page(), Web::HTML::ActivateTab::Yes);
|
||||
new_tab(Settings::the()->new_tab_page(), Web::HTML::ActivateTab::Yes);
|
||||
}
|
||||
|
||||
setCentralWidget(m_tabs_container);
|
||||
|
@ -696,9 +695,9 @@ bool BrowserWindow::eventFilter(QObject* obj, QEvent* event)
|
|||
|
||||
void BrowserWindow::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
s_settings->set_last_position(pos());
|
||||
s_settings->set_last_size(size());
|
||||
s_settings->set_is_maximized(isMaximized());
|
||||
Settings::the()->set_last_position(pos());
|
||||
Settings::the()->set_last_size(size());
|
||||
Settings::the()->set_is_maximized(isMaximized());
|
||||
|
||||
QMainWindow::closeEvent(event);
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ static QString rebase_default_url_on_serenity_resource_root(StringView default_u
|
|||
|
||||
Settings::Settings()
|
||||
{
|
||||
m_qsettings = new QSettings("Serenity", "Ladybird", this);
|
||||
m_qsettings = make<QSettings>("Serenity", "Ladybird", this);
|
||||
}
|
||||
|
||||
Optional<QPoint> Settings::last_position()
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/DeprecatedString.h>
|
||||
#include <AK/OwnPtr.h>
|
||||
#include <QPoint>
|
||||
#include <QSettings>
|
||||
#include <QSize>
|
||||
|
@ -15,7 +16,14 @@ namespace Ladybird {
|
|||
|
||||
class Settings : public QObject {
|
||||
public:
|
||||
Settings();
|
||||
Settings(Settings const&) = delete;
|
||||
Settings& operator=(Settings const&) = delete;
|
||||
|
||||
static Settings* the()
|
||||
{
|
||||
static Settings instance;
|
||||
return &instance;
|
||||
}
|
||||
|
||||
Optional<QPoint> last_position();
|
||||
void set_last_position(QPoint const& last_position);
|
||||
|
@ -29,8 +37,11 @@ public:
|
|||
QString new_tab_page();
|
||||
void set_new_tab_page(QString const& page);
|
||||
|
||||
protected:
|
||||
Settings();
|
||||
|
||||
private:
|
||||
QSettings* m_qsettings;
|
||||
OwnPtr<QSettings> m_qsettings;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -13,8 +13,6 @@
|
|||
|
||||
namespace Ladybird {
|
||||
|
||||
extern Settings* s_settings;
|
||||
|
||||
SettingsDialog::SettingsDialog(QMainWindow* window)
|
||||
: m_window(window)
|
||||
{
|
||||
|
@ -48,7 +46,7 @@ void SettingsDialog::save()
|
|||
auto url_string = MUST(ak_string_from_qstring(m_new_tab_page->text()));
|
||||
if (!URL(url_string).is_valid())
|
||||
return;
|
||||
s_settings->set_new_tab_page(m_new_tab_page->text());
|
||||
Settings::the()->set_new_tab_page(m_new_tab_page->text());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -33,8 +33,6 @@ extern DeprecatedString s_serenity_resource_root;
|
|||
|
||||
namespace Ladybird {
|
||||
|
||||
extern Settings* s_settings;
|
||||
|
||||
static QIcon create_tvg_icon_with_theme_colors(QString name, QPalette const& palette)
|
||||
{
|
||||
auto path = QString(":/Icons/%1.tvg").arg(name);
|
||||
|
|
|
@ -25,8 +25,6 @@
|
|||
|
||||
namespace Ladybird {
|
||||
|
||||
OwnPtr<Ladybird::Settings> s_settings;
|
||||
|
||||
bool is_using_dark_system_theme(QWidget& widget)
|
||||
{
|
||||
// FIXME: Qt does not provide any method to query if the system is using a dark theme. We will have to implement
|
||||
|
@ -111,17 +109,16 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
if (auto url = TRY(get_formatted_url(raw_url)); url.is_valid())
|
||||
initial_url = move(url);
|
||||
|
||||
Ladybird::s_settings = adopt_own_if_nonnull(new Ladybird::Settings());
|
||||
Ladybird::BrowserWindow window(initial_url, cookie_jar, webdriver_content_ipc_path, enable_callgrind_profiling ? WebView::EnableCallgrindProfiling::Yes : WebView::EnableCallgrindProfiling::No, use_lagom_networking ? Ladybird::UseLagomNetworking::Yes : Ladybird::UseLagomNetworking::No);
|
||||
window.setWindowTitle("Ladybird");
|
||||
|
||||
if (Ladybird::s_settings->is_maximized()) {
|
||||
if (Ladybird::Settings::the()->is_maximized()) {
|
||||
window.showMaximized();
|
||||
} else {
|
||||
auto last_position = Ladybird::s_settings->last_position();
|
||||
auto last_position = Ladybird::Settings::the()->last_position();
|
||||
if (last_position.has_value())
|
||||
window.move(last_position.value());
|
||||
window.resize(Ladybird::s_settings->last_size());
|
||||
window.resize(Ladybird::Settings::the()->last_size());
|
||||
}
|
||||
|
||||
window.show();
|
||||
|
|
Loading…
Reference in a new issue