From df598fb4b4bb493af736f884c7f0c3c38ddd638b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E6=9C=8B=E7=A8=8B?= Date: Thu, 22 Dec 2022 17:58:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0RunCommandWithOptions?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 无 Log: 无 Influence: 无 Task: https://pms.uniontech.com/task-view-220801.html Change-Id: Ibeb61119d911e3274c7cd4d39fd0060beefdb518 --- dbus/org.deepin.dde.Application1.Manager.xml | 6 ++++++ src/modules/startmanager/startmanager.cpp | 8 ++++---- src/modules/startmanager/startmanager.h | 4 ++-- src/service/impl/application_manager.cpp | 2 +- src/service/impl/application_manager.h | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/dbus/org.deepin.dde.Application1.Manager.xml b/dbus/org.deepin.dde.Application1.Manager.xml index f6b7ded..97ed555 100644 --- a/dbus/org.deepin.dde.Application1.Manager.xml +++ b/dbus/org.deepin.dde.Application1.Manager.xml @@ -38,6 +38,12 @@ + + + + + + diff --git a/src/modules/startmanager/startmanager.cpp b/src/modules/startmanager/startmanager.cpp index 04d30ac..7a65284 100644 --- a/src/modules/startmanager/startmanager.cpp +++ b/src/modules/startmanager/startmanager.cpp @@ -160,10 +160,10 @@ bool StartManager::launchAppWithOptions(QString desktopFile, uint32_t timestamp, bool StartManager::runCommand(QString exe, QStringList args) { - return doRunCommandWithOptions(exe, args, QMap()); + return doRunCommandWithOptions(exe, args, QVariantMap()); } -bool StartManager::runCommandWithOptions(QString exe, QStringList args, QMap options) +bool StartManager::runCommandWithOptions(QString exe, QStringList args, QVariantMap options) { return doRunCommandWithOptions(exe, args, options); } @@ -449,11 +449,11 @@ bool StartManager::launch(DesktopInfo *info, QString cmdLine, uint32_t timestamp return process.startDetached(exec, exeArgs); } -bool StartManager::doRunCommandWithOptions(QString exe, QStringList args, QMap options) +bool StartManager::doRunCommandWithOptions(QString exe, QStringList args, QVariantMap options) { QProcess process; if (options.find("dir") != options.end()) { - process.setWorkingDirectory(options["dir"]); + process.setWorkingDirectory(options["dir"].toString()); } return process.startDetached(exe, args); diff --git a/src/modules/startmanager/startmanager.h b/src/modules/startmanager/startmanager.h index cb50ef3..f7b60ac 100644 --- a/src/modules/startmanager/startmanager.h +++ b/src/modules/startmanager/startmanager.h @@ -48,7 +48,7 @@ public: bool launchAppAction(QString desktopFile, QString actionSection, uint32_t timestamp); bool launchAppWithOptions(QString desktopFile, uint32_t timestamp, QStringList files, QVariantMap options); bool runCommand(QString exe, QStringList args); - bool runCommandWithOptions(QString exe, QStringList args, QMap options); + bool runCommandWithOptions(QString exe, QStringList args, QVariantMap options); Q_SIGNALS: void autostartChanged(const QString &status, const QString &fileName); @@ -61,7 +61,7 @@ private: bool doLaunchAppWithOptions(const QString &desktopFile); bool doLaunchAppWithOptions(QString desktopFile, uint32_t timestamp, QStringList files, QVariantMap options); bool launch(DesktopInfo *info, QString cmdLine, uint32_t timestamp, QStringList files); - bool doRunCommandWithOptions(QString exe, QStringList args, QMap options); + bool doRunCommandWithOptions(QString exe, QStringList args, QVariantMap options); void waitCmd(DesktopInfo *info, QProcess *process, QString cmdName); bool shouldUseProxy(QString appId); bool shouldDisableScaling(QString appId); diff --git a/src/service/impl/application_manager.cpp b/src/service/impl/application_manager.cpp index f7203df..f02069c 100644 --- a/src/service/impl/application_manager.cpp +++ b/src/service/impl/application_manager.cpp @@ -422,7 +422,7 @@ void ApplicationManager::RunCommand(const QString &exe, const QStringList &args) } } -void ApplicationManager::RunCommandWithOptions(QString exe, QStringList args, QMap options) +void ApplicationManager::RunCommandWithOptions(const QString &exe, const QStringList &args, const QVariantMap &options) { Q_D(ApplicationManager); if (!d->checkDMsgUid()) { diff --git a/src/service/impl/application_manager.h b/src/service/impl/application_manager.h index 54f9ba4..1cfb083 100644 --- a/src/service/impl/application_manager.h +++ b/src/service/impl/application_manager.h @@ -76,6 +76,7 @@ public Q_SLOTS: void LaunchAppAction(const QString &desktopFile, const QString &action, uint32_t timestamp, bool withMsgCheck = true); void LaunchAppWithOptions(const QString &desktopFile, uint32_t timestamp, const QStringList &files, QVariantMap options); void RunCommand(const QString &exe, const QStringList &args); + void RunCommandWithOptions(const QString &exe, const QStringList &args, const QVariantMap &options); protected: ApplicationManager(QObject *parent = nullptr); @@ -85,7 +86,6 @@ protected: QList list() const; QDBusObjectPath GetInformation(const QString &id); QList GetInstances(const QString &id); - void RunCommandWithOptions(QString exe, QStringList args, QMap options); bool IsProcessExist(uint32_t pid); };