mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 16:07:46 +00:00
Ladybird: Move Qt-specific classes and functions to a Qt subdirectory
This will help a lot with developing chromes for different UI frameworks where we can see which helper classes and processes are really using Qt vs just using it to get at helper data. As a bonus, remove Qt dependency from WebDriver.
This commit is contained in:
parent
ccaa423372
commit
391beef707
53 changed files with 160 additions and 157 deletions
126
Ladybird/Qt/BrowserWindow.h
Normal file
126
Ladybird/Qt/BrowserWindow.h
Normal file
|
@ -0,0 +1,126 @@
|
|||
/*
|
||||
* Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2023, Linus Groh <linusg@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Tab.h"
|
||||
#include <LibCore/Forward.h>
|
||||
#include <LibWeb/HTML/ActivateTab.h>
|
||||
#include <QIcon>
|
||||
#include <QLineEdit>
|
||||
#include <QMainWindow>
|
||||
#include <QMenuBar>
|
||||
#include <QTabWidget>
|
||||
#include <QToolBar>
|
||||
|
||||
namespace Browser {
|
||||
class CookieJar;
|
||||
}
|
||||
|
||||
namespace Ladybird {
|
||||
|
||||
class WebContentView;
|
||||
|
||||
class BrowserWindow : public QMainWindow {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit BrowserWindow(Browser::CookieJar&, StringView webdriver_content_ipc_path, WebView::EnableCallgrindProfiling, WebView::UseJavaScriptBytecode, UseLagomNetworking);
|
||||
|
||||
WebContentView& view() const { return m_current_tab->view(); }
|
||||
|
||||
int tab_index(Tab*);
|
||||
|
||||
QAction& go_back_action()
|
||||
{
|
||||
return *m_go_back_action;
|
||||
}
|
||||
|
||||
QAction& go_forward_action()
|
||||
{
|
||||
return *m_go_forward_action;
|
||||
}
|
||||
|
||||
QAction& reload_action()
|
||||
{
|
||||
return *m_reload_action;
|
||||
}
|
||||
|
||||
QAction& copy_selection_action()
|
||||
{
|
||||
return *m_copy_selection_action;
|
||||
}
|
||||
|
||||
QAction& select_all_action()
|
||||
{
|
||||
return *m_select_all_action;
|
||||
}
|
||||
|
||||
QAction& view_source_action()
|
||||
{
|
||||
return *m_view_source_action;
|
||||
}
|
||||
|
||||
QAction& inspect_dom_node_action()
|
||||
{
|
||||
return *m_inspect_dom_node_action;
|
||||
}
|
||||
|
||||
public slots:
|
||||
void tab_title_changed(int index, QString const&);
|
||||
void tab_favicon_changed(int index, QIcon icon);
|
||||
Tab& new_tab(QString const&, Web::HTML::ActivateTab);
|
||||
void activate_tab(int index);
|
||||
void close_tab(int index);
|
||||
void close_current_tab();
|
||||
void open_next_tab();
|
||||
void open_previous_tab();
|
||||
void open_file();
|
||||
void enable_auto_color_scheme();
|
||||
void enable_light_color_scheme();
|
||||
void enable_dark_color_scheme();
|
||||
void zoom_in();
|
||||
void zoom_out();
|
||||
void reset_zoom();
|
||||
void update_zoom_menu();
|
||||
void select_all();
|
||||
void copy_selected_text();
|
||||
|
||||
protected:
|
||||
bool eventFilter(QObject* obj, QEvent* event) override;
|
||||
|
||||
private:
|
||||
virtual void resizeEvent(QResizeEvent*) override;
|
||||
virtual void moveEvent(QMoveEvent*) override;
|
||||
virtual void wheelEvent(QWheelEvent*) override;
|
||||
|
||||
void debug_request(DeprecatedString const& request, DeprecatedString const& argument = "");
|
||||
|
||||
void set_current_tab(Tab* tab);
|
||||
void update_displayed_zoom_level();
|
||||
|
||||
QTabWidget* m_tabs_container { nullptr };
|
||||
Vector<NonnullOwnPtr<Tab>> m_tabs;
|
||||
Tab* m_current_tab { nullptr };
|
||||
QMenu* m_zoom_menu { nullptr };
|
||||
|
||||
OwnPtr<QAction> m_go_back_action {};
|
||||
OwnPtr<QAction> m_go_forward_action {};
|
||||
OwnPtr<QAction> m_reload_action {};
|
||||
OwnPtr<QAction> m_copy_selection_action {};
|
||||
OwnPtr<QAction> m_select_all_action {};
|
||||
OwnPtr<QAction> m_view_source_action {};
|
||||
OwnPtr<QAction> m_inspect_dom_node_action {};
|
||||
|
||||
Browser::CookieJar& m_cookie_jar;
|
||||
|
||||
StringView m_webdriver_content_ipc_path;
|
||||
WebView::EnableCallgrindProfiling m_enable_callgrind_profiling;
|
||||
WebView::UseJavaScriptBytecode m_use_javascript_bytecode;
|
||||
UseLagomNetworking m_use_lagom_networking;
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue