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 }