From 9c812753e2b1f01b2e0c85be9904ff7694f0e6ec Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Thu, 1 May 2025 23:41:54 +0530 Subject: Implement NotificationReceived event --- src/widgets/BrowserApp.cpp | 10 +++++++++- src/widgets/BrowserWindow.cpp | 4 ++-- src/widgets/BrowserWindow.hpp | 3 ++- src/widgets/WebViewStack.cpp | 1 - 4 files changed, 13 insertions(+), 5 deletions(-) (limited to 'src/widgets') diff --git a/src/widgets/BrowserApp.cpp b/src/widgets/BrowserApp.cpp index 1362941..32ac598 100644 --- a/src/widgets/BrowserApp.cpp +++ b/src/widgets/BrowserApp.cpp @@ -1,9 +1,11 @@ #include #include +#include #include #include "LuaRuntime.hpp" #include "WindowActionRouter.hpp" +#include "events/NotificationReceivedEvent.hpp" #include "widgets/BrowserApp.hpp" #include "widgets/BrowserWindow.hpp" @@ -35,6 +37,12 @@ BrowserApp::BrowserApp(Configuration &configuration) : configuration(configurati for (auto *profile : profiles) { profile->setDownloadPath(configuration.downloads_dir()); profile->setHttpUserAgent(configuration.user_agent()); + profile->setNotificationPresenter([](std::unique_ptr notification) { + auto *event = new NotificationReceivedEvent(std::move(notification)); + WindowActionRouter::instance().dispatch_event(event); + }); + profile->setPersistentPermissionsPolicy( + QWebEngineProfile::PersistentPermissionsPolicy::StoreInMemory); } connect(&window_action_router, &WindowActionRouter::new_window_requested, this, @@ -42,7 +50,7 @@ BrowserApp::BrowserApp(Configuration &configuration) : configuration(configurati }; BrowserWindow *BrowserApp::create_window(const QStringList &urls) { - auto *window = new BrowserWindow((const Configuration &)configuration, urls); + auto *window = new BrowserWindow((const Configuration &)configuration, &default_profile, urls); window->setWindowTitle("null-browser"); WindowActionRouter::instance().add_window(window); diff --git a/src/widgets/BrowserWindow.cpp b/src/widgets/BrowserWindow.cpp index f4ea97d..ba0c244 100644 --- a/src/widgets/BrowserWindow.cpp +++ b/src/widgets/BrowserWindow.cpp @@ -10,7 +10,8 @@ #include "widgets/BrowserWindow.hpp" #include "widgets/WebViewStack.hpp" -BrowserWindow::BrowserWindow(const Configuration &configuration, const QStringList &urls) +BrowserWindow::BrowserWindow(const Configuration &configuration, QWebEngineProfile *profile, + const QStringList &urls) : QMainWindow(nullptr), configuration(configuration) { setCentralWidget(new QWidget()); @@ -22,7 +23,6 @@ BrowserWindow::BrowserWindow(const Configuration &configuration, const QStringLi centralWidget()->setLayout(layout); // Webengine profile - auto *profile = new QWebEngineProfile("null-browser"); profile->setDownloadPath(configuration.downloads_dir()); profile->setHttpUserAgent(configuration.user_agent()); diff --git a/src/widgets/BrowserWindow.hpp b/src/widgets/BrowserWindow.hpp index 6f20e4b..ee59e5a 100644 --- a/src/widgets/BrowserWindow.hpp +++ b/src/widgets/BrowserWindow.hpp @@ -12,7 +12,8 @@ class BrowserWindow : public QMainWindow { Q_OBJECT public: - BrowserWindow(const Configuration &configuration, const QStringList &urls = {}); + BrowserWindow(const Configuration &configuration, + QWebEngineProfile *profile = new QWebEngineProfile, const QStringList &urls = {}); DEFINE_GETTER(mediator, win_mediator) DEFINE_GETTER(get_id, win_id) diff --git a/src/widgets/WebViewStack.cpp b/src/widgets/WebViewStack.cpp index 37e7dca..6bbd5b5 100644 --- a/src/widgets/WebViewStack.cpp +++ b/src/widgets/WebViewStack.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include -- cgit v1.3.1