From faab8a82cb0b9ae2c15b55f4174561474b71b1b3 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Tue, 11 Aug 2020 15:32:35 +0200 Subject: [PATCH] TextEditor: Show pageview URLs in statusbar on hover --- Applications/TextEditor/TextEditorWidget.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Applications/TextEditor/TextEditorWidget.cpp b/Applications/TextEditor/TextEditorWidget.cpp index 84e1420623..3847685388 100644 --- a/Applications/TextEditor/TextEditorWidget.cpp +++ b/Applications/TextEditor/TextEditorWidget.cpp @@ -86,8 +86,20 @@ TextEditorWidget::TextEditorWidget() update_title(); }; + auto update_statusbar_cursor_position = [this] { + StringBuilder builder; + builder.appendf("Line: %d, Column: %d", m_editor->cursor().line() + 1, m_editor->cursor().column()); + m_statusbar->set_text(builder.to_string()); + }; + m_page_view = splitter.add(); m_page_view->set_visible(false); + m_page_view->on_link_hover = [this, update_statusbar_cursor_position = move(update_statusbar_cursor_position)](auto& url) { + if (url.is_valid()) + m_statusbar->set_text(url.to_string()); + else + update_statusbar_cursor_position(); + }; m_page_view->on_link_click = [&](auto& url, auto&, unsigned) { if (!Desktop::Launcher::open(url)) { GUI::MessageBox::show( @@ -288,10 +300,8 @@ TextEditorWidget::TextEditorWidget() m_statusbar = add(); - m_editor->on_cursor_change = [this] { - StringBuilder builder; - builder.appendf("Line: %d, Column: %d", m_editor->cursor().line() + 1, m_editor->cursor().column()); - m_statusbar->set_text(builder.to_string()); + m_editor->on_cursor_change = [update_statusbar_cursor_position = move(update_statusbar_cursor_position)] { + update_statusbar_cursor_position(); }; m_new_action = GUI::Action::create("New", { Mod_Ctrl, Key_N }, Gfx::Bitmap::load_from_file("/res/icons/16x16/new.png"), [this](const GUI::Action&) {