diff --git a/Ladybird/CMakeLists.txt b/Ladybird/CMakeLists.txt index 44678dd33f..0c2ba157b2 100644 --- a/Ladybird/CMakeLists.txt +++ b/Ladybird/CMakeLists.txt @@ -115,7 +115,6 @@ if (ENABLE_QT) target_sources(ladybird PRIVATE Qt/AutoComplete.cpp Qt/BrowserWindow.cpp - Qt/ConsoleWidget.cpp Qt/EventLoopImplementationQt.cpp Qt/EventLoopImplementationQtEventTarget.cpp Qt/Icon.cpp diff --git a/Ladybird/Qt/BrowserWindow.cpp b/Ladybird/Qt/BrowserWindow.cpp index a8926c6080..bbb1832483 100644 --- a/Ladybird/Qt/BrowserWindow.cpp +++ b/Ladybird/Qt/BrowserWindow.cpp @@ -8,7 +8,6 @@ */ #include "BrowserWindow.h" -#include "ConsoleWidget.h" #include "Icon.h" #include "Settings.h" #include "SettingsDialog.h" @@ -174,16 +173,6 @@ BrowserWindow::BrowserWindow(Vector const& initial_urls, WebView::CookieJar } }); - auto* js_console_action = new QAction("Show &JS Console", this); - js_console_action->setIcon(load_icon_from_uri("resource://icons/16x16/filetype-javascript.png"sv)); - js_console_action->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_J)); - inspect_menu->addAction(js_console_action); - QObject::connect(js_console_action, &QAction::triggered, this, [this] { - if (m_current_tab) { - m_current_tab->show_console_window(); - } - }); - auto* inspector_action = new QAction("Open &Inspector", this); inspector_action->setIcon(load_icon_from_uri("resource://icons/browser/dom-tree.png"sv)); inspector_action->setShortcut(QKeySequence("Ctrl+Shift+I")); @@ -658,10 +647,7 @@ void BrowserWindow::select_all() if (!m_current_tab) return; - if (auto* console = m_current_tab->console(); console && console->isActiveWindow()) - console->view().select_all(); - else - m_current_tab->view().select_all(); + m_current_tab->view().select_all(); } void BrowserWindow::update_displayed_zoom_level() @@ -676,12 +662,7 @@ void BrowserWindow::copy_selected_text() if (!m_current_tab) return; - DeprecatedString text; - - if (auto* console = m_current_tab->console(); console && console->isActiveWindow()) - text = console->view().selected_text(); - else - text = m_current_tab->view().selected_text(); + auto text = m_current_tab->view().selected_text(); auto* clipboard = QGuiApplication::clipboard(); clipboard->setText(qstring_from_ak_deprecated_string(text)); diff --git a/Ladybird/Qt/ConsoleWidget.cpp b/Ladybird/Qt/ConsoleWidget.cpp deleted file mode 100644 index 389644986e..0000000000 --- a/Ladybird/Qt/ConsoleWidget.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 2020, Hunter Salyer - * Copyright (c) 2021-2022, Andreas Kling - * Copyright (c) 2021, Sam Atkins - * Copyright (c) 2022, the SerenityOS developers. - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#include "ConsoleWidget.h" -#include "StringUtils.h" -#include "WebContentView.h" -#include -#include -#include -#include -#include -#include - -namespace Ladybird { - -bool is_using_dark_system_theme(QWidget&); - -ConsoleWidget::ConsoleWidget(WebContentView& content_view) -{ - setLayout(new QVBoxLayout); - - m_output_view = new WebContentView({}, {}); - if (is_using_dark_system_theme(*this)) - m_output_view->update_palette(WebContentView::PaletteMode::Dark); - - m_console_client = make(content_view, *m_output_view); - - layout()->addWidget(m_output_view); - - auto* bottom_container = new QWidget(this); - bottom_container->setLayout(new QHBoxLayout); - - layout()->addWidget(bottom_container); - - m_input = new ConsoleInputEdit(bottom_container, *this); - m_input->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont)); - bottom_container->layout()->addWidget(m_input); - - setFocusProxy(m_input); - - auto* clear_button = new QPushButton(bottom_container); - bottom_container->layout()->addWidget(clear_button); - clear_button->setFixedSize(22, 22); - clear_button->setText("X"); - clear_button->setToolTip("Clear the console output"); - QObject::connect(clear_button, &QPushButton::pressed, [this] { - client().clear(); - }); - - m_input->setFocus(); -} - -ConsoleWidget::~ConsoleWidget() = default; - -Optional ConsoleWidget::previous_history_item() -{ - return m_console_client->previous_history_item(); -} - -Optional ConsoleWidget::next_history_item() -{ - return m_console_client->next_history_item(); -} - -void ConsoleWidget::reset() -{ - m_console_client->reset(); -} - -void ConsoleInputEdit::keyPressEvent(QKeyEvent* event) -{ - switch (event->key()) { - case Qt::Key_Up: - if (auto script = m_console_widget.previous_history_item(); script.has_value()) - setText(qstring_from_ak_string(*script)); - break; - - case Qt::Key_Down: - if (auto script = m_console_widget.next_history_item(); script.has_value()) - setText(qstring_from_ak_string(*script)); - break; - - case Qt::Key_Return: { - auto js_source = MUST(ak_string_from_qstring(text())); - if (js_source.bytes_as_string_view().is_whitespace()) - return; - - m_console_widget.client().execute(std::move(js_source)); - clear(); - - break; - } - - default: - QLineEdit::keyPressEvent(event); - } -} - -} diff --git a/Ladybird/Qt/ConsoleWidget.h b/Ladybird/Qt/ConsoleWidget.h deleted file mode 100644 index 148a77944b..0000000000 --- a/Ladybird/Qt/ConsoleWidget.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2020, Hunter Salyer - * Copyright (c) 2021-2022, Andreas Kling - * Copyright (c) 2021, Sam Atkins - * Copyright (c) 2022, the SerenityOS developers. - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#pragma once - -#include -#include -#include -#include -#include - -namespace Ladybird { - -class WebContentView; - -class ConsoleWidget final : public QWidget { - Q_OBJECT -public: - explicit ConsoleWidget(WebContentView& content_view); - virtual ~ConsoleWidget(); - - Optional previous_history_item(); - Optional next_history_item(); - - WebView::ConsoleClient& client() { return *m_console_client; } - WebContentView& view() { return *m_output_view; } - - void reset(); - -private: - OwnPtr m_console_client; - - WebContentView* m_output_view { nullptr }; - QLineEdit* m_input { nullptr }; -}; - -class ConsoleInputEdit final : public QLineEdit { - Q_OBJECT -public: - ConsoleInputEdit(QWidget* q_widget, ConsoleWidget& console_widget) - : QLineEdit(q_widget) - , m_console_widget(console_widget) - { - } - -private: - virtual void keyPressEvent(QKeyEvent* event) override; - - ConsoleWidget& m_console_widget; -}; - -} diff --git a/Ladybird/Qt/Tab.cpp b/Ladybird/Qt/Tab.cpp index 5fbd2bd274..aa60ad974f 100644 --- a/Ladybird/Qt/Tab.cpp +++ b/Ladybird/Qt/Tab.cpp @@ -6,7 +6,6 @@ */ #include "BrowserWindow.h" -#include "ConsoleWidget.h" #include "Icon.h" #include "InspectorWidget.h" #include "Settings.h" @@ -139,9 +138,6 @@ Tab::Tab(BrowserWindow* window, WebContentOptions const& web_content_options, St if (m_inspector_widget) m_inspector_widget->reset(); - - if (m_console_widget) - m_console_widget->reset(); }; view().on_load_finish = [this](auto&) { @@ -706,31 +702,6 @@ void Tab::show_inspector_window(InspectorTarget inspector_target) m_inspector_widget->select_default_node(); } -void Tab::show_console_window() -{ - if (!m_console_widget) { - m_console_widget = new Ladybird::ConsoleWidget(view()); - m_console_widget->setWindowTitle("JS Console"); - m_console_widget->resize(640, 480); - - // Make these actions available on the window itself. Adding them to the context menu alone - // does not enable activattion via keyboard shortcuts. - m_console_widget->addAction(&m_window->copy_selection_action()); - m_console_widget->addAction(&m_window->select_all_action()); - - m_console_context_menu = make("Context menu", m_console_widget); - m_console_context_menu->addAction(&m_window->copy_selection_action()); - m_console_context_menu->addAction(&m_window->select_all_action()); - - m_console_widget->view().on_context_menu_request = [this](Gfx::IntPoint) { - auto screen_position = QCursor::pos(); - m_console_context_menu->exec(screen_position); - }; - } - - m_console_widget->show(); -} - void Tab::close_sub_widgets() { auto close_widget_window = [](auto* widget) { @@ -738,7 +709,6 @@ void Tab::close_sub_widgets() widget->close(); }; - close_widget_window(m_console_widget); close_widget_window(m_inspector_widget); } diff --git a/Ladybird/Qt/Tab.h b/Ladybird/Qt/Tab.h index 6244811915..fe22d7c582 100644 --- a/Ladybird/Qt/Tab.h +++ b/Ladybird/Qt/Tab.h @@ -22,7 +22,6 @@ namespace Ladybird { class BrowserWindow; -class ConsoleWidget; class InspectorWidget; class Tab final : public QWidget { @@ -51,9 +50,6 @@ public: HoveredElement }; void show_inspector_window(InspectorTarget = InspectorTarget::Document); - void show_console_window(); - - Ladybird::ConsoleWidget* console() { return m_console_widget; } public slots: void focus_location_editor(); @@ -113,8 +109,6 @@ private: bool m_is_history_navigation { false }; - Ladybird::ConsoleWidget* m_console_widget { nullptr }; - OwnPtr m_console_context_menu; Ladybird::InspectorWidget* m_inspector_widget { nullptr }; QPointer m_dialog; diff --git a/Meta/gn/secondary/Ladybird/BUILD.gn b/Meta/gn/secondary/Ladybird/BUILD.gn index c5d03acd80..487237e276 100644 --- a/Meta/gn/secondary/Ladybird/BUILD.gn +++ b/Meta/gn/secondary/Ladybird/BUILD.gn @@ -19,7 +19,6 @@ moc_qt_objects("generate_moc") { sources = [ "Qt/AutoComplete.h", "Qt/BrowserWindow.h", - "Qt/ConsoleWidget.h", "Qt/EventLoopImplementationQtEventTarget.h", "Qt/InspectorWidget.h", "Qt/LocationEdit.h", @@ -89,7 +88,6 @@ executable("ladybird_executable") { sources += [ "Qt/AutoComplete.cpp", "Qt/BrowserWindow.cpp", - "Qt/ConsoleWidget.cpp", "Qt/EventLoopImplementationQt.cpp", "Qt/EventLoopImplementationQtEventTarget.cpp", "Qt/Icon.cpp",