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

0001 /*
0002  * SPDX-FileCopyrightText: 2016-2018 Red Hat Inc
0003  *
0004  * SPDX-License-Identifier: LGPL-2.0-or-later
0005  *
0006  * SPDX-FileCopyrightText: 2016-2018 Jan Grulich <jgrulich@redhat.com>
0007  * SPDX-FileCopyrightText: 2022 Harald Sitter <sitter@kde.org>
0008  */
0009 
0010 #ifndef XDG_DESKTOP_PORTAL_KDE_APPCHOOSER_H
0011 #define XDG_DESKTOP_PORTAL_KDE_APPCHOOSER_H
0012 
0013 #include <QDBusAbstractAdaptor>
0014 #include <QDBusObjectPath>
0015 
0016 class QDBusMessage;
0017 class AppChooserDialog;
0018 
0019 class AppChooserPortal : public QDBusAbstractAdaptor
0020 {
0021     Q_OBJECT
0022     Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.AppChooser")
0023 public:
0024     explicit AppChooserPortal(QObject *parent);
0025 
0026 public Q_SLOTS:
0027     uint ChooseApplication(const QDBusObjectPath &handle,
0028                            const QString &app_id,
0029                            const QString &parent_window,
0030                            const QStringList &choices,
0031                            const QVariantMap &options,
0032                            QVariantMap &results);
0033 
0034     uint
0035     ChooseApplicationPrivate(const QString &parent_window, const QStringList &urls, const QVariantMap &options, const QDBusMessage &msg, QVariantMap &results);
0036     void UpdateChoices(const QDBusObjectPath &handle, const QStringList &choices);
0037 
0038 private:
0039     QMap<QString, AppChooserDialog *> m_appChooserDialogs;
0040 };
0041 
0042 #endif // XDG_DESKTOP_PORTAL_KDE_APPCHOOSER_H