/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Source file was org.desktopspec.ApplicationManager1.Application.xml
 *
 * qdbusxml2cpp is Copyright (C) The Qt Company Ltd. and other contributors.
 *
 * This is an auto-generated file.
 * This file may have been hand-edited. Look for HAND-EDIT comments
 * before re-generating it.
 */

#ifndef APPLICATIONADAPTOR_H
#define APPLICATIONADAPTOR_H

#include <QtCore/QObject>
#include <QtDBus/QtDBus>
#include "dbus/applicationservice.h"
#include <QtCore/qcontainerfwd.h>

/*
 * Adaptor class for interface org.desktopspec.ApplicationManager1.Application
 */
class ApplicationAdaptor: public QDBusAbstractAdaptor
{
    Q_OBJECT
    Q_CLASSINFO("D-Bus Interface", "org.desktopspec.ApplicationManager1.Application")
    Q_CLASSINFO("D-Bus Introspection", ""
"  <interface name=\"org.desktopspec.ApplicationManager1.Application\">\n"
"    <annotation value=\"This interface is designed to provide a dbus interface of desktop file. Missing fields will be added later.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    <property access=\"read\" type=\"as\" name=\"Categories\"/>\n"
"    <property access=\"read\" type=\"b\" name=\"X_linglong\"/>\n"
"    <property access=\"read\" type=\"b\" name=\"X_Flatpak\"/>\n"
"    <property access=\"read\" type=\"s\" name=\"X_Deepin_Vendor\">\n"
"      <annotation value=\"Whem this property is 'deepin', display name of the application                               should use GenericName.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"b\" name=\"NoDisplay\"/>\n"
"    <property access=\"readwrite\" type=\"as\" name=\"MimeTypes\"/>\n"
"    <property access=\"read\" type=\"as\" name=\"Actions\">\n"
"      <annotation value=\"Names of all action identifiers of this application.                        Check https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#extra-actions                        for futher information.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </property>\n"
"    <property access=\"readwrite\" type=\"b\" name=\"AutoStart\"/>\n"
"    <property access=\"read\" type=\"x\" name=\"LastLaunchedTime\">\n"
"      <annotation value=\"Set the value of this property to -1 to                        indicates that some errors has occured.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"x\" name=\"LaunchedTimes\">\n"
"      <annotation value=\"Set the value of this property to -1 to                        indicates that some errors has occured.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"x\" name=\"InstalledTime\">\n"
"      <annotation value=\"Set the value of this property to -1 to                    indicates that some errors has occured.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"ao\" name=\"Instances\">\n"
"      <annotation value=\"All instances of this application.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"s\" name=\"ID\">\n"
"      <annotation value=\"The desktop file id of this application.                        Check https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#desktop-file-id                        for futher infomation.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"b\" name=\"Terminal\">\n"
"      <annotation value=\"Indicate this application should launch by terminal or not.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </property>\n"
"    <property access=\"readwrite\" type=\"s\" name=\"Environ\">\n"
"      <annotation value=\"Indicate the environment of application's instance.                        passing some specific environment variables to Launch                        this application, eg. 'LANG=en_US;PATH=xxx:yyy;'\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"a{sa{ss}}\" name=\"ActionName\">\n"
"      <annotation value=\"The type of ActionName is a Map, first key represents action, second key represents locale and the value is the corresponding content.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"      <annotation value=\"PropMap\" name=\"org.qtproject.QtDBus.QtTypeName\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"a{ss}\" name=\"Icons\">\n"
"      <annotation value=\"The type of IconName is a Map, where the key represents the action and the value is the corresponding content.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"      <annotation value=\"QStringMap\" name=\"org.qtproject.QtDBus.QtTypeName\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"a{ss}\" name=\"Name\">\n"
"      <annotation value=\"The meaning of this property's type is same as which in ActionName.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"      <annotation value=\"QStringMap\" name=\"org.qtproject.QtDBus.QtTypeName\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"a{ss}\" name=\"GenericName\">\n"
"      <annotation value=\"The meaning of this property's type is same as which in ActionName.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"      <annotation value=\"QStringMap\" name=\"org.qtproject.QtDBus.QtTypeName\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"s\" name=\"StartupWMClass\">\n"
"      <annotation value=\"The meaning of this property's type is same as which in StartupWMClass.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"      <annotation value=\"QStringMap\" name=\"org.qtproject.QtDBus.QtTypeName\"/>\n"
"    </property>\n"
"    <method name=\"Launch\">\n"
"      <arg direction=\"in\" type=\"s\" name=\"action\"/>\n"
"      <arg direction=\"in\" type=\"as\" name=\"fields\"/>\n"
"      <arg direction=\"out\" type=\"o\" name=\"job\"/>\n"
"      <arg direction=\"in\" type=\"a{sv}\" name=\"options\"/>\n"
"      <annotation value=\"QVariantMap\" name=\"org.qtproject.QtDBus.QtTypeName.In2\"/>\n"
"      <annotation value=\"Given an action identifier,                        and some fields (file path or URI),                        this method will launch this application,                        and the object path of the job launching application.                        Result of that job is a object path                        of the new application instance.                        If that job failed, the result is a bool `false`.                         Extra options can be passed in `options` argument:                        1. `uid` (type u):                           The user id as who is that application will be run.                           This option might request a polikit authentication.                        2. `env` (type as):                           passing some specific environment variables to Launch                           this application without them, eg. '[LANG=en_US, PATH=xxx:yyy]'                        3. `unsetEnv` (type as):                           passed environment variables will be ignored when                           launching this application, eg. '[LANG, PATH]'                        4. `path` (type s):                           set this application's working directory, please pass                           absolute directory path.                        NOTE:                        When application launched with `uid` option,                        `env` option will not take effect at all.                        The following internal options (prefixed with `_`)                        are for internal use only and should not be used                        by external callers:                        5. `_launch_type` (type s):                           launch source name for event reporting,                           e.g. 'dde-launchpad', 'dde-shell'.                           Defaults to 'unknown' if not specified.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </method>\n"
"    <property access=\"read\" type=\"b\" name=\"isOnDesktop\"/>\n"
"    <property access=\"read\" type=\"s\" name=\"X_Deepin_CreateBy\"/>\n"
"    <property access=\"read\" type=\"a{ss}\" name=\"Execs\">\n"
"      <annotation value=\"Display the exec content of all actions\" name=\"org.freedesktop.DBus.Description\"/>\n"
"      <annotation value=\"QStringMap\" name=\"org.qtproject.QtDBus.QtTypeName\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"s\" name=\"X_CreatedBy\"/>\n"
"    <property access=\"read\" type=\"s\" name=\"DesktopSourcePath\"/>\n"
"    <method name=\"SendToDesktop\">\n"
"      <arg direction=\"out\" type=\"b\" name=\"success\"/>\n"
"    </method>\n"
"    <method name=\"RemoveFromDesktop\">\n"
"      <arg direction=\"out\" type=\"b\" name=\"success\"/>\n"
"    </method>\n"
"  </interface>\n"
        "")
public:
    ApplicationAdaptor(ApplicationService *parent);
    ~ApplicationAdaptor() override;

    inline ApplicationService *parent() const
    { return static_cast<ApplicationService *>(QObject::parent()); }

public: // PROPERTIES
    Q_PROPERTY(PropMap ActionName READ actionName)
    PropMap actionName() const;

    Q_PROPERTY(QStringList Actions READ actions)
    QStringList actions() const;

    Q_PROPERTY(bool AutoStart READ autoStart WRITE setAutoStart)
    bool autoStart() const;
    void setAutoStart(bool value);

    Q_PROPERTY(QStringList Categories READ categories)
    QStringList categories() const;

    Q_PROPERTY(QString DesktopSourcePath READ desktopSourcePath)
    QString desktopSourcePath() const;

    Q_PROPERTY(QString Environ READ environ WRITE setEnviron)
    QString environ() const;
    void setEnviron(const QString &value);

    Q_PROPERTY(QStringMap Execs READ execs)
    QStringMap execs() const;

    Q_PROPERTY(QStringMap GenericName READ genericName)
    QStringMap genericName() const;

    Q_PROPERTY(QString ID READ iD)
    QString iD() const;

    Q_PROPERTY(QStringMap Icons READ icons)
    QStringMap icons() const;

    Q_PROPERTY(qlonglong InstalledTime READ installedTime)
    qlonglong installedTime() const;

    Q_PROPERTY(QList<QDBusObjectPath> Instances READ instances)
    QList<QDBusObjectPath> instances() const;

    Q_PROPERTY(qlonglong LastLaunchedTime READ lastLaunchedTime)
    qlonglong lastLaunchedTime() const;

    Q_PROPERTY(qlonglong LaunchedTimes READ launchedTimes)
    qlonglong launchedTimes() const;

    Q_PROPERTY(QStringList MimeTypes READ mimeTypes WRITE setMimeTypes)
    QStringList mimeTypes() const;
    void setMimeTypes(const QStringList &value);

    Q_PROPERTY(QStringMap Name READ name)
    QStringMap name() const;

    Q_PROPERTY(bool NoDisplay READ noDisplay)
    bool noDisplay() const;

    Q_PROPERTY(QString StartupWMClass READ startupWMClass)
    QString startupWMClass() const;

    Q_PROPERTY(bool Terminal READ terminal)
    bool terminal() const;

    Q_PROPERTY(QString X_CreatedBy READ x_CreatedBy)
    QString x_CreatedBy() const;

    Q_PROPERTY(QString X_Deepin_CreateBy READ x_Deepin_CreateBy)
    QString x_Deepin_CreateBy() const;

    Q_PROPERTY(QString X_Deepin_Vendor READ x_Deepin_Vendor)
    QString x_Deepin_Vendor() const;

    Q_PROPERTY(bool X_Flatpak READ x_Flatpak)
    bool x_Flatpak() const;

    Q_PROPERTY(bool X_linglong READ x_linglong)
    bool x_linglong() const;

    Q_PROPERTY(bool isOnDesktop READ isOnDesktop)
    bool isOnDesktop() const;

public Q_SLOTS: // METHODS
    QDBusObjectPath Launch(const QString &action, const QStringList &fields, const QVariantMap &options);
    bool RemoveFromDesktop();
    bool SendToDesktop();
Q_SIGNALS: // SIGNALS
};

#endif
