aboutsummaryrefslogtreecommitdiff
path: root/src/widgets
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-05-01 23:41:54 +0530
committerAkshay Nair <phenax5@gmail.com>2025-05-02 16:21:45 +0530
commit9c812753e2b1f01b2e0c85be9904ff7694f0e6ec (patch)
treef308228c63fc8eeb526c901e80746d8da633b352 /src/widgets
parentf0faa92246c1f5fc58546051ace2d047869447df (diff)
downloadnull-browser-9c812753e2b1f01b2e0c85be9904ff7694f0e6ec.tar.gz
null-browser-9c812753e2b1f01b2e0c85be9904ff7694f0e6ec.zip
Implement NotificationReceived event
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/BrowserApp.cpp10
-rw-r--r--src/widgets/BrowserWindow.cpp4
-rw-r--r--src/widgets/BrowserWindow.hpp3
-rw-r--r--src/widgets/WebViewStack.cpp1
4 files changed, 13 insertions, 5 deletions
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 <QDir>
#include <QKeyEvent>
+#include <QWebEngineNotification>
#include <QtCore>
#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<QWebEngineNotification> 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 <QWebEngineFindTextResult>
#include <QWebEngineHistory>
#include <QWebEngineNewWindowRequest>
-#include <QWebEngineNotification>
#include <QWebEngineProfile>
#include <cstdint>
#include <cstdlib>