1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 12:17:44 +00:00

Browser: Use OpenInNewTab parameter in on_bookmark_click handler

This patch makes the function signature of the on_bookmark_click handler
more readable by replacing `Mod_None` with `OpenInNewTab::No` and
`Mod_Ctrl` with `OpenInNewTab::Yes`.
This commit is contained in:
networkException 2022-07-10 16:29:35 +02:00 committed by Andreas Kling
parent f9212ac02e
commit 5c1f1209fc
3 changed files with 12 additions and 7 deletions

View file

@ -124,7 +124,7 @@ BookmarksBarWidget::BookmarksBarWidget(String const& bookmarks_file, bool enable
auto default_action = GUI::Action::create( auto default_action = GUI::Action::create(
"&Open", [this](auto&) { "&Open", [this](auto&) {
if (on_bookmark_click) if (on_bookmark_click)
on_bookmark_click(m_context_menu_url, Mod_None); on_bookmark_click(m_context_menu_url, OpenInNewTab::No);
}, },
this); this);
m_context_menu_default_action = default_action; m_context_menu_default_action = default_action;
@ -132,7 +132,7 @@ BookmarksBarWidget::BookmarksBarWidget(String const& bookmarks_file, bool enable
m_context_menu->add_action(GUI::Action::create( m_context_menu->add_action(GUI::Action::create(
"Open in New &Tab", [this](auto&) { "Open in New &Tab", [this](auto&) {
if (on_bookmark_click) if (on_bookmark_click)
on_bookmark_click(m_context_menu_url, Mod_Ctrl); on_bookmark_click(m_context_menu_url, OpenInNewTab::Yes);
}, },
this)); this));
m_context_menu->add_separator(); m_context_menu->add_separator();
@ -201,9 +201,9 @@ void BookmarksBarWidget::model_did_update(unsigned)
button.set_focus_policy(GUI::FocusPolicy::TabFocus); button.set_focus_policy(GUI::FocusPolicy::TabFocus);
button.set_tooltip(url); button.set_tooltip(url);
button.on_click = [title, url, this](auto modifiers) { button.on_click = [title, url, this](auto) {
if (on_bookmark_click) if (on_bookmark_click)
on_bookmark_click(url, modifiers); on_bookmark_click(url, OpenInNewTab::No);
}; };
button.on_context_menu_request = [this, url](auto& context_menu_event) { button.on_context_menu_request = [this, url](auto& context_menu_event) {

View file

@ -26,7 +26,12 @@ public:
GUI::Model* model() { return m_model.ptr(); } GUI::Model* model() { return m_model.ptr(); }
const GUI::Model* model() const { return m_model.ptr(); } const GUI::Model* model() const { return m_model.ptr(); }
Function<void(String const& url, unsigned modifiers)> on_bookmark_click; enum class OpenInNewTab {
Yes,
No
};
Function<void(String const& url, OpenInNewTab)> on_bookmark_click;
Function<void(String const&, String const&)> on_bookmark_hover; Function<void(String const&, String const&)> on_bookmark_hover;
bool contains_bookmark(String const& url); bool contains_bookmark(String const& url);

View file

@ -484,8 +484,8 @@ void Tab::update_bookmark_button(String const& url)
void Tab::did_become_active() void Tab::did_become_active()
{ {
BookmarksBarWidget::the().on_bookmark_click = [this](auto& url, unsigned modifiers) { BookmarksBarWidget::the().on_bookmark_click = [this](auto& url, auto open_in_new_tab) {
if (modifiers & Mod_Ctrl) if (open_in_new_tab == BookmarksBarWidget::OpenInNewTab::Yes)
on_tab_open_request(url); on_tab_open_request(url);
else else
load(url); load(url);