diff --git a/Ladybird/BrowserWindow.cpp b/Ladybird/BrowserWindow.cpp index a20ab1ffda..425a1afdf3 100644 --- a/Ladybird/BrowserWindow.cpp +++ b/Ladybird/BrowserWindow.cpp @@ -19,9 +19,18 @@ BrowserWindow::BrowserWindow() QObject::connect(m_view, &WebView::loadStarted, m_location_edit, &QLineEdit::setText); QObject::connect(m_location_edit, &QLineEdit::returnPressed, this, &BrowserWindow::location_edit_return_pressed); + QObject::connect(m_view, &WebView::title_changed, this, &BrowserWindow::page_title_changed); } void BrowserWindow::location_edit_return_pressed() { view().load(m_location_edit->text().toUtf8().data()); } + +void BrowserWindow::page_title_changed(QString title) +{ + if (title.isEmpty()) + setWindowTitle("Ladybird"); + else + setWindowTitle(QString("%1 - Ladybird").arg(title)); +} diff --git a/Ladybird/BrowserWindow.h b/Ladybird/BrowserWindow.h index bd285f4009..09e28a641d 100644 --- a/Ladybird/BrowserWindow.h +++ b/Ladybird/BrowserWindow.h @@ -15,6 +15,7 @@ public: public slots: void location_edit_return_pressed(); + void page_title_changed(QString); private: QToolBar* m_toolbar { nullptr }; diff --git a/Ladybird/WebView.cpp b/Ladybird/WebView.cpp index 9a06480b20..04d1bd33a6 100644 --- a/Ladybird/WebView.cpp +++ b/Ladybird/WebView.cpp @@ -130,8 +130,9 @@ public: return m_preferred_color_scheme; } - virtual void page_did_change_title(String const&) override + virtual void page_did_change_title(String const& title) override { + emit m_view.title_changed(title.characters()); } virtual void page_did_set_document_in_top_level_browsing_context(Web::DOM::Document*) override diff --git a/Ladybird/WebView.h b/Ladybird/WebView.h index a72f087049..418b1bbe94 100644 --- a/Ladybird/WebView.h +++ b/Ladybird/WebView.h @@ -32,6 +32,7 @@ signals: void linkHovered(QString, int timeout = 0); void linkUnhovered(); void loadStarted(QString); + void title_changed(QString); private: OwnPtr m_page_client;