From 91e5b6d4f5508d5c752bb8a54a72884fa9285400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filiph=20Sandstr=C3=B6m?= Date: Thu, 14 Jul 2022 06:08:30 +0200 Subject: [PATCH] Ladybird: Add SettingsDialog stub --- Ladybird/BrowserWindow.cpp | 12 ++++++++++++ Ladybird/CMakeLists.txt | 1 + Ladybird/SettingsDialog.cpp | 19 +++++++++++++++++++ Ladybird/SettingsDialog.h | 21 +++++++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 Ladybird/SettingsDialog.cpp create mode 100644 Ladybird/SettingsDialog.h diff --git a/Ladybird/BrowserWindow.cpp b/Ladybird/BrowserWindow.cpp index 0da3447251b..aabdc6cbffc 100644 --- a/Ladybird/BrowserWindow.cpp +++ b/Ladybird/BrowserWindow.cpp @@ -1,17 +1,22 @@ /* * Copyright (c) 2022, Andreas Kling * Copyright (c) 2022, Matthew Costa + * Copyright (c) 2022, Filiph Sandström * * SPDX-License-Identifier: BSD-2-Clause */ #include "BrowserWindow.h" +#include "Settings.h" +#include "SettingsDialog.h" #include "WebView.h" #include #include +#include #include extern String s_serenity_resource_root; +extern Browser::Settings* s_settings; BrowserWindow::BrowserWindow(Core::EventLoop& event_loop) : m_event_loop(event_loop) @@ -30,6 +35,10 @@ BrowserWindow::BrowserWindow(Core::EventLoop& event_loop) new_tab_action->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_T)); menu->addAction(new_tab_action); + auto* settings_action = new QAction("&Settings"); + settings_action->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Comma)); + menu->addAction(settings_action); + auto* close_current_tab_action = new QAction("Close Current Tab"); close_current_tab_action->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_W)); menu->addAction(close_current_tab_action); @@ -163,6 +172,9 @@ BrowserWindow::BrowserWindow(Core::EventLoop& event_loop) }); QObject::connect(new_tab_action, &QAction::triggered, this, &BrowserWindow::new_tab); + QObject::connect(settings_action, &QAction::triggered, this, [this] { + new SettingsDialog(this); + }); QObject::connect(quit_action, &QAction::triggered, this, &QMainWindow::close); QObject::connect(m_tabs_container, &QTabWidget::currentChanged, [this](int index) { setWindowTitle(QString("%1 - Ladybird").arg(m_tabs_container->tabText(index))); diff --git a/Ladybird/CMakeLists.txt b/Ladybird/CMakeLists.txt index aac6c8e19d6..e907626c57a 100644 --- a/Ladybird/CMakeLists.txt +++ b/Ladybird/CMakeLists.txt @@ -54,6 +54,7 @@ set(SOURCES WebView.cpp History.cpp Settings.cpp + SettingsDialog.cpp Tab.cpp ) diff --git a/Ladybird/SettingsDialog.cpp b/Ladybird/SettingsDialog.cpp new file mode 100644 index 00000000000..8ffae27c048 --- /dev/null +++ b/Ladybird/SettingsDialog.cpp @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2022, Filiph Sandström + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include "SettingsDialog.h" + +SettingsDialog::SettingsDialog(QMainWindow* window) + : m_window(window) +{ + m_layout = new QBoxLayout(QBoxLayout::Direction::TopToBottom, this); + + setWindowTitle("Settings"); + resize(340, 400); + setLayout(m_layout); + show(); + setFocus(); +} diff --git a/Ladybird/SettingsDialog.h b/Ladybird/SettingsDialog.h new file mode 100644 index 00000000000..d303202d064 --- /dev/null +++ b/Ladybird/SettingsDialog.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2022, Filiph Sandström + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +#pragma once + +class SettingsDialog : public QDialog { + Q_OBJECT +public: + explicit SettingsDialog(QMainWindow* window); + +private: + QBoxLayout* m_layout; + QMainWindow* m_window { nullptr }; +};