diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-02-14 23:35:25 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-02-14 23:35:25 +0100 |
| commit | e78e1a69d7200da8012d9ef3a3b8fb25796d498e (patch) | |
| tree | d7d544b7758bd3227b4683991a5f2c0a9f6cbac6 /src/main.cpp | |
| parent | 035ba2bd28eeca1b1658a1e69711842d3fbd152a (diff) | |
webtrayctl: add show
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 38 |
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(); |