1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 03:47:35 +00:00

Browser: Implement listener for most config options

The only option leaved as TODO is ColorScheme.
This commit is contained in:
Maciej 2022-01-31 21:40:48 +01:00 committed by Andreas Kling
parent d3fc3337ef
commit 43e463748d
3 changed files with 33 additions and 1 deletions

View file

@ -526,4 +526,30 @@ void BrowserWindow::create_new_tab(URL url, bool activate)
m_tab_widget->set_active_widget(&new_tab); m_tab_widget->set_active_widget(&new_tab);
} }
void BrowserWindow::config_string_did_change(String const& domain, String const& group, String const& key, String const& value)
{
if (domain != "Browser" || group != "Preferences")
return;
if (key == "SearchEngine")
Browser::g_search_engine = value;
else if (key == "Home")
Browser::g_home_url = value;
// TODO: ColorScheme
}
void BrowserWindow::config_bool_did_change(String const& domain, String const& group, String const& key, bool value)
{
if (domain != "Browser" || group != "Preferences")
return;
if (key == "ShowBookmarksBar") {
m_window_actions.show_bookmarks_bar_action().set_checked(value);
Browser::BookmarksBarWidget::the().set_visible(value);
}
// NOTE: CloseDownloadWidgetOnFinish is read each time in DownloadWindow
}
} }

View file

@ -10,6 +10,7 @@
#include "BookmarksBarWidget.h" #include "BookmarksBarWidget.h"
#include "Tab.h" #include "Tab.h"
#include "WindowActions.h" #include "WindowActions.h"
#include <LibConfig/Listener.h>
#include <LibGUI/ActionGroup.h> #include <LibGUI/ActionGroup.h>
#include <LibGUI/Window.h> #include <LibGUI/Window.h>
@ -18,7 +19,8 @@ namespace Browser {
class CookieJar; class CookieJar;
class Tab; class Tab;
class BrowserWindow final : public GUI::Window { class BrowserWindow final : public GUI::Window
, public Config::Listener {
C_OBJECT(BrowserWindow); C_OBJECT(BrowserWindow);
public: public:
@ -45,6 +47,9 @@ private:
ErrorOr<void> load_search_engines(GUI::Menu& settings_menu); ErrorOr<void> load_search_engines(GUI::Menu& settings_menu);
void set_window_title_for_tab(Tab const&); void set_window_title_for_tab(Tab const&);
virtual void config_string_did_change(String const& domain, String const& group, String const& key, String const& value) override;
virtual void config_bool_did_change(String const& domain, String const& group, String const& key, bool value) override;
RefPtr<GUI::Action> m_go_back_action; RefPtr<GUI::Action> m_go_back_action;
RefPtr<GUI::Action> m_go_forward_action; RefPtr<GUI::Action> m_go_forward_action;
RefPtr<GUI::Action> m_go_home_action; RefPtr<GUI::Action> m_go_home_action;

View file

@ -67,6 +67,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto app = GUI::Application::construct(arguments); auto app = GUI::Application::construct(arguments);
Config::pledge_domain("Browser"); Config::pledge_domain("Browser");
Config::monitor_domain("Browser");
// Connect to LaunchServer immediately and let it know that we won't ask for anything other than opening // Connect to LaunchServer immediately and let it know that we won't ask for anything other than opening
// the user's downloads directory. // the user's downloads directory.