1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 05:17:34 +00:00

Ladybird/BrowserWindow: Add UI for switching preferred CSS color scheme

This commit is contained in:
Andreas Kling 2022-09-19 10:48:02 +02:00 committed by Andrew Kaster
parent 98bf0107ce
commit 97964bc710
4 changed files with 76 additions and 0 deletions

View file

@ -12,6 +12,7 @@
#include "WebView.h"
#include <AK/TypeCasts.h>
#include <QAction>
#include <QActionGroup>
#include <QDialog>
#include <QPlainTextEdit>
@ -59,6 +60,32 @@ BrowserWindow::BrowserWindow()
view_menu->addAction(open_previous_tab_action);
QObject::connect(open_previous_tab_action, &QAction::triggered, this, &BrowserWindow::open_previous_tab);
view_menu->addSeparator();
auto* color_scheme_menu = view_menu->addMenu("&Color Scheme");
auto* group = new QActionGroup(this);
auto* auto_color_scheme = new QAction("&Auto");
auto_color_scheme->setCheckable(true);
group->addAction(auto_color_scheme);
color_scheme_menu->addAction(auto_color_scheme);
QObject::connect(auto_color_scheme, &QAction::triggered, this, &BrowserWindow::enable_auto_color_scheme);
auto* light_color_scheme = new QAction("&Light");
light_color_scheme->setCheckable(true);
group->addAction(light_color_scheme);
color_scheme_menu->addAction(light_color_scheme);
QObject::connect(light_color_scheme, &QAction::triggered, this, &BrowserWindow::enable_light_color_scheme);
auto* dark_color_scheme = new QAction("&Dark");
dark_color_scheme->setCheckable(true);
group->addAction(dark_color_scheme);
color_scheme_menu->addAction(dark_color_scheme);
QObject::connect(dark_color_scheme, &QAction::triggered, this, &BrowserWindow::enable_dark_color_scheme);
auto_color_scheme->setChecked(true);
auto* inspect_menu = menuBar()->addMenu("&Inspect");
auto* view_source_action = new QAction("View &Source");
@ -294,3 +321,24 @@ void BrowserWindow::open_previous_tab()
next_index = m_tabs_container->count() - 1;
m_tabs_container->setCurrentIndex(next_index);
}
void BrowserWindow::enable_auto_color_scheme()
{
for (auto& tab : m_tabs) {
tab.view().set_color_scheme(ColorScheme::Auto);
}
}
void BrowserWindow::enable_light_color_scheme()
{
for (auto& tab : m_tabs) {
tab.view().set_color_scheme(ColorScheme::Light);
}
}
void BrowserWindow::enable_dark_color_scheme()
{
for (auto& tab : m_tabs) {
tab.view().set_color_scheme(ColorScheme::Dark);
}
}