aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp38
1 files changed, 24 insertions, 14 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 385d3c3..1630680 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,21 +1,22 @@
#include <QtWidgets/QApplication>
+#include <QDBusConnection>
+#include <QDBusError>
#include <iostream>
-using namespace std::chrono_literals;
-
#include "permissionmanager.hpp"
#include "tray.hpp"
#include "webwindow.hpp"
+#include "dbus.hpp"
-const QWebEnginePage::Feature features[] = {
- QWebEnginePage::Feature::MouseLock,
- QWebEnginePage::Feature::Notifications,
- QWebEnginePage::Feature::Notifications,
- QWebEnginePage::Feature::DesktopVideoCapture,
- QWebEnginePage::Feature::DesktopAudioVideoCapture,
- QWebEnginePage::Feature::MediaAudioCapture,
- QWebEnginePage::Feature::MediaVideoCapture,
+const QWebEnginePermission::PermissionType permissions[] = {
+ QWebEnginePermission::PermissionType::MouseLock,
+ QWebEnginePermission::PermissionType::Notifications,
+ QWebEnginePermission::PermissionType::Notifications,
+ QWebEnginePermission::PermissionType::DesktopVideoCapture,
+ QWebEnginePermission::PermissionType::DesktopAudioVideoCapture,
+ QWebEnginePermission::PermissionType::MediaAudioCapture,
+ QWebEnginePermission::PermissionType::MediaVideoCapture,
};
void
@@ -54,8 +55,8 @@ main(int argc, char **argv)
bool start_hidden = not app->arguments().contains("--open-at-startup");
- for (auto feature : features) {
- tray->set_permission(feature, webwindow->permissions().get(feature));
+ for (auto permission: permissions) {
+ tray->set_permission(permission, webwindow->permissions().get(permission));
}
webwindow->connect_icon_changed([&](auto icon) {
@@ -75,11 +76,20 @@ main(int argc, char **argv)
tray->connect_toggle([&]() { webwindow->toggle_visibility(); });
tray->connect_quit([&]() { webwindow->quit(); });
- tray->connect_permission_changed([&](auto feature, auto value) {
- webwindow->permissions().set(feature, value);
+ tray->connect_permission_changed([&](auto permission, auto value) {
+ webwindow->permissions().set(permission, value);
});
tray->connect_reset_cookies([&]() { webwindow->reset_cookies(); });
+ auto connection = QDBusConnection::sessionBus();
+ DBusHandler dbus_handler = DBusHandler(webwindow);
+
+ if (!connection.registerService(QString(service_name) + "." + QUrl(url).host())) {
+ std::cerr << "could not register ipc\n";
+ }
+
+ connection.registerObject("/", &dbus_handler, QDBusConnection::ExportAllSlots);
+
webwindow->show();
if (start_hidden) {
webwindow->hide();