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

Ladybird: Add a "Reload" action to reload the current URL

This commit is contained in:
Andreas Kling 2022-07-05 21:10:50 +02:00 committed by Andrew Kaster
parent 7bf3010185
commit 69d264828f
4 changed files with 26 additions and 0 deletions

View file

@ -1,12 +1,21 @@
#include "BrowserWindow.h" #include "BrowserWindow.h"
#include "WebView.h" #include "WebView.h"
#include <LibCore/EventLoop.h> #include <LibCore/EventLoop.h>
#include <QAction>
#include <QStatusBar> #include <QStatusBar>
extern String s_serenity_resource_root;
BrowserWindow::BrowserWindow(Core::EventLoop& event_loop) BrowserWindow::BrowserWindow(Core::EventLoop& event_loop)
: m_event_loop(event_loop) : m_event_loop(event_loop)
{ {
m_toolbar = new QToolBar; m_toolbar = new QToolBar;
auto reload_icon_path = QString("%1/res/icons/16x16/reload.png").arg(s_serenity_resource_root.characters());
auto* reload_action = new QAction(QIcon(reload_icon_path), "Reload");
reload_action->setShortcut(QKeySequence("Ctrl+R"));
m_toolbar->addAction(reload_action);
m_location_edit = new QLineEdit; m_location_edit = new QLineEdit;
m_toolbar->addWidget(m_location_edit); m_toolbar->addWidget(m_location_edit);
@ -22,6 +31,8 @@ BrowserWindow::BrowserWindow(Core::EventLoop& event_loop)
QObject::connect(m_location_edit, &QLineEdit::returnPressed, this, &BrowserWindow::location_edit_return_pressed); 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); QObject::connect(m_view, &WebView::title_changed, this, &BrowserWindow::page_title_changed);
QObject::connect(m_view, &WebView::favicon_changed, this, &BrowserWindow::page_favicon_changed); QObject::connect(m_view, &WebView::favicon_changed, this, &BrowserWindow::page_favicon_changed);
QObject::connect(reload_action, &QAction::triggered, this, &BrowserWindow::reload);
} }
void BrowserWindow::location_edit_return_pressed() void BrowserWindow::location_edit_return_pressed()
@ -51,3 +62,8 @@ void BrowserWindow::closeEvent(QCloseEvent* event)
// all of the browser windows have closed. // all of the browser windows have closed.
m_event_loop.quit(0); m_event_loop.quit(0);
} }
void BrowserWindow::reload()
{
view().reload();
}

View file

@ -22,6 +22,9 @@ public slots:
void page_title_changed(QString); void page_title_changed(QString);
void page_favicon_changed(QIcon); void page_favicon_changed(QIcon);
public slots:
void reload();
private: private:
QToolBar* m_toolbar { nullptr }; QToolBar* m_toolbar { nullptr };
QLineEdit* m_location_edit { nullptr }; QLineEdit* m_location_edit { nullptr };

View file

@ -298,6 +298,12 @@ WebView::~WebView()
{ {
} }
void WebView::reload()
{
auto url = m_page_client->page().top_level_browsing_context().active_document()->url();
m_page_client->load(url);
}
void WebView::load(String const& url) void WebView::load(String const& url)
{ {
m_page_client->load(AK::URL(url)); m_page_client->load(AK::URL(url));

View file

@ -22,6 +22,7 @@ public:
virtual ~WebView() override; virtual ~WebView() override;
void load(String const& url); void load(String const& url);
void reload();
virtual void paintEvent(QPaintEvent*) override; virtual void paintEvent(QPaintEvent*) override;
virtual void resizeEvent(QResizeEvent*) override; virtual void resizeEvent(QResizeEvent*) override;