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

0001 // SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0002 // SPDX-FileCopyrightText: 2022 Harald Sitter <sitter@kde.org>
0003 
0004 #pragma once
0005 
0006 #include <QDBusAbstractAdaptor>
0007 #include <QDBusObjectPath>
0008 
0009 class DynamicLauncherPortal : public QDBusAbstractAdaptor
0010 {
0011     Q_OBJECT
0012     Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.DynamicLauncher")
0013 
0014     Q_PROPERTY(uint version MEMBER m_version CONSTANT)
0015     const uint m_version = 1;
0016 
0017     Q_PROPERTY(uint SupportedLauncherTypes MEMBER m_supportedTypes CONSTANT)
0018     const uint m_supportedTypes = uint(Type::Application) | uint(Type::Webapp);
0019 
0020 public:
0021     enum class Type { Application = 1, Webapp = 2 };
0022 
0023     explicit DynamicLauncherPortal(QObject *parent = nullptr);
0024 
0025 public Q_SLOTS:
0026     uint PrepareInstall(const QDBusObjectPath &handle,
0027                         const QString &app_id,
0028                         const QString &parent_window,
0029                         const QString &name,
0030                         const QDBusVariant &icon_v,
0031                         const QVariantMap &options,
0032                         QVariantMap &results);
0033     uint RequestInstallToken(const QString &app_id, const QVariantMap &options);
0034 };