From 2078c60477842d7cf6991148e23979565737a8b5 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 26 Jul 2025 11:59:38 +0530 Subject: Refactor heavy + extras.tabline module (incomplete) --- src/widgets/Decorations.cpp | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) (limited to 'src/widgets/Decorations.cpp') diff --git a/src/widgets/Decorations.cpp b/src/widgets/Decorations.cpp index 9df4c23..223e19a 100644 --- a/src/widgets/Decorations.cpp +++ b/src/widgets/Decorations.cpp @@ -6,6 +6,7 @@ #include #include "Decorations.hpp" +#include "WebViewData.hpp" #include "widgets/EdgeDecoration.hpp" Decorations::Decorations(QWidget *content_widget, QWebEngineProfile *profile, QWidget *parent) @@ -36,17 +37,17 @@ Decorations::Decorations(QWidget *content_widget, QWebEngineProfile *profile, QW } void Decorations::set_enabled(DecorationType type, bool enabled) { - auto decoration = get_decoration_widget(type); + auto decoration = get_decoration_widget_type(type); if (decoration.has_value()) decoration.value()->set_enabled(enabled); } bool Decorations::get_enabled(DecorationType type) { - auto decoration = get_decoration_widget(type); + auto decoration = get_decoration_widget_type(type); return decoration.has_value() && decoration.value()->is_enabled(); } -std::optional Decorations::get_decoration_widget(DecorationType type) { +std::optional Decorations::get_decoration_widget_type(DecorationType type) { switch (type) { case DecorationType::DecorationTop: return decoration_top; @@ -59,3 +60,31 @@ std::optional Decorations::get_decoration_widget(DecorationTyp } return nullptr; } + +std::optional Decorations::get_decoration_widget_by_view_id(WebViewId view_id) { + for (auto *decoration : decorations()) + if (decoration->get_view_id() == view_id) + return std::make_optional(decoration); + return std::nullopt; +} + +bool Decorations::has_webview(WebViewId view_id) { + return get_decoration_widget_by_view_id(view_id).has_value(); +} + +void Decorations::open_url(const QUrl &url, OpenType /*unused*/, WebViewId view_id) { + auto decoration = get_decoration_widget_by_view_id(view_id); + if (decoration.has_value()) + decoration.value()->set_url(url); +} + +void Decorations::set_html(const QString &html, WebViewId view_id) { + auto decoration = get_decoration_widget_by_view_id(view_id); + if (decoration.has_value()) + decoration.value()->set_html(html); +} + +std::optional Decorations::get_view_id(DecorationType type) { + auto decoration = get_decoration_widget_type(type); + return decoration.has_value() ? decoration.value()->get_view_id() : std::nullopt; +} -- cgit v1.3.1