feat: change dbus interface api

1. remove method: Application, Launch. (ApplicationManager1)
2. add property: IconName, DisplayName. (Application1)
3. refact the way of construct ApplicationService.
4. if Desktop Entry Key `Hidden` is true, this application wouldn't
   export to DBus.

Signed-off-by: ComixHe <heyuming@deepin.org>
This commit is contained in:
ComixHe
2023-08-16 17:44:56 +08:00
committed by Comix
parent a3dd315e33
commit bb83716d27
11 changed files with 140 additions and 113 deletions

View File

@ -30,15 +30,18 @@ public:
Q_PROPERTY(QList<QDBusObjectPath> List READ list)
[[nodiscard]] QList<QDBusObjectPath> list() const;
template <typename T>
bool addApplication(T &&desktopFileSource)
{
QSharedPointer<ApplicationService> application{new ApplicationService{std::forward<T>(desktopFileSource), this}};
QSharedPointer<ApplicationService> application = makeApplication(std::forward<T>(desktopFileSource), this);
if (!application) {
return false;
}
auto *ptr = application.data();
new ApplicationAdaptor{ptr};
if (!registerObjectToDBus(ptr, application->m_applicationPath.path(), getDBusInterface<ApplicationAdaptor>())) {
return false;
}
@ -53,9 +56,7 @@ public:
JobManager1Service &jobManager() noexcept { return *m_jobManager; }
public Q_SLOTS:
[[nodiscard]] QDBusObjectPath Application(const QString &id) const;
QString Identify(const QDBusUnixFileDescriptor &pidfd, QDBusObjectPath &application, QDBusObjectPath &application_instance);
QDBusObjectPath Launch(const QString &id, const QString &action, const QStringList &fields, const QVariantMap &options);
void UpdateApplicationInfo(const QStringList &appIdList);
private: