mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 21:47:45 +00:00
Browser: Implement listener for most config options
The only option leaved as TODO is ColorScheme.
This commit is contained in:
parent
d3fc3337ef
commit
43e463748d
3 changed files with 33 additions and 1 deletions
|
@ -526,4 +526,30 @@ void BrowserWindow::create_new_tab(URL url, bool activate)
|
|||
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
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "BookmarksBarWidget.h"
|
||||
#include "Tab.h"
|
||||
#include "WindowActions.h"
|
||||
#include <LibConfig/Listener.h>
|
||||
#include <LibGUI/ActionGroup.h>
|
||||
#include <LibGUI/Window.h>
|
||||
|
||||
|
@ -18,7 +19,8 @@ namespace Browser {
|
|||
class CookieJar;
|
||||
class Tab;
|
||||
|
||||
class BrowserWindow final : public GUI::Window {
|
||||
class BrowserWindow final : public GUI::Window
|
||||
, public Config::Listener {
|
||||
C_OBJECT(BrowserWindow);
|
||||
|
||||
public:
|
||||
|
@ -45,6 +47,9 @@ private:
|
|||
ErrorOr<void> load_search_engines(GUI::Menu& settings_menu);
|
||||
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_forward_action;
|
||||
RefPtr<GUI::Action> m_go_home_action;
|
||||
|
|
|
@ -67,6 +67,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
auto app = GUI::Application::construct(arguments);
|
||||
|
||||
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
|
||||
// the user's downloads directory.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue