/* * Copyright (c) 2022, Filiph Sandström * Copyright (c) 2023, Cameron Youell * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Ladybird { class Settings : public QObject { public: Settings(Settings const&) = delete; Settings& operator=(Settings const&) = delete; static Settings* the() { static Settings instance; return &instance; } Optional last_position(); void set_last_position(QPoint const& last_position); QSize last_size(); void set_last_size(QSize const& last_size); bool is_maximized(); void set_is_maximized(bool is_maximized); QString new_tab_page(); void set_new_tab_page(QString const& page); WebView::SearchEngine search_engine() const { return m_search_engine; } void set_search_engine(WebView::SearchEngine engine); struct EngineProvider { QString name; QString url; }; EngineProvider autocomplete_engine(); void set_autocomplete_engine(EngineProvider const& engine); bool enable_autocomplete(); void set_enable_autocomplete(bool enable); bool enable_search(); void set_enable_search(bool enable); protected: Settings(); private: OwnPtr m_qsettings; WebView::SearchEngine m_search_engine; }; }