File indexing completed on 2024-04-28 05:36:54

0001 /*
0002  * SPDX-FileCopyrightText: 2016 Red Hat Inc
0003  *
0004  * SPDX-License-Identifier: LGPL-2.0-or-later
0005  *
0006  * SPDX-FileCopyrightText: 2016 Jan Grulich <jgrulich@redhat.com>
0007  */
0008 
0009 #include <QApplication>
0010 #include <QDBusConnection>
0011 
0012 #include <KAboutData>
0013 #include <KLocalizedString>
0014 
0015 #include "../version.h"
0016 #include "debug.h"
0017 #include "desktopportal.h"
0018 
0019 int main(int argc, char *argv[])
0020 {
0021     // Do not try to reconnect to the compositor as KWayland can't handle that
0022     // Reconsider enabling when we do not use KWayland anymore
0023     qunsetenv("QT_WAYLAND_RECONNECT");
0024     QCoreApplication::setAttribute(Qt::AA_DisableSessionManager);
0025     QApplication a(argc, argv);
0026     a.setQuitOnLastWindowClosed(false);
0027     a.setQuitLockEnabled(false);
0028 
0029     KAboutData about(QStringLiteral("xdg-desktop-portal-kde"), QString(), QStringLiteral(XDPK_VERSION_STRING));
0030     about.setDesktopFileName(QStringLiteral("org.freedesktop.impl.portal.desktop.kde"));
0031     KAboutData::setApplicationData(about);
0032 
0033     QDBusConnection sessionBus = QDBusConnection::sessionBus();
0034 
0035     if (sessionBus.registerService(QStringLiteral("org.freedesktop.impl.portal.desktop.kde"))) {
0036         DesktopPortal *desktopPortal = new DesktopPortal(&a);
0037         if (sessionBus.registerObject(QStringLiteral("/org/freedesktop/portal/desktop"), desktopPortal, QDBusConnection::ExportAdaptors)) {
0038             qCDebug(XdgDesktopPortalKde) << "Desktop portal registered successfully";
0039         } else {
0040             qCDebug(XdgDesktopPortalKde) << "Failed to register desktop portal";
0041         }
0042     } else {
0043         qCDebug(XdgDesktopPortalKde) << "Failed to register org.freedesktop.impl.portal.desktop.kde service";
0044         return 1;
0045     }
0046 
0047     return a.exec();
0048 }