diff --git a/panels/dock/taskmanager/dconfig/org.deepin.ds.dock.taskmanager.json b/panels/dock/taskmanager/dconfig/org.deepin.ds.dock.taskmanager.json index e4a8db4db..e41932c00 100644 --- a/panels/dock/taskmanager/dconfig/org.deepin.ds.dock.taskmanager.json +++ b/panels/dock/taskmanager/dconfig/org.deepin.ds.dock.taskmanager.json @@ -33,6 +33,17 @@ "permissions": "readwrite", "visibility": "private" }, + "cgroupsBasedGrouping": { + "value": true, + "serial": 0, + "flags": [], + "name": "cgroupsBasedGrouping", + "name[zh_CN]": "基于 cgroups 的任务图标分组", + "description": "Enable cgroups-based task grouping", + "description[zh_CN]": "启用基于 cgroups 的任务图标分组", + "permissions": "readonly", + "visibility": "private" + }, "Docked_Items": { "value": ["id: dde-file-manager,type: amAPP", "id: org.deepin.browser,type: amAPP", "id: deepin-app-store,type: amAPP", "id: org.deepin.dde.control-center, type: amAPP", "id: deepin-music,type: amAPP", "id: deepin-editor,type: amAPP", "id: deepin-mail,type: amAPP","id: deepin-terminal,type: amAPP","id: dde-calendar,type: amAPP", "id: deepin-calculator,type: amAPP"], "serial": 0, diff --git a/panels/dock/taskmanager/globals.h b/panels/dock/taskmanager/globals.h index 2006de935..fedf61844 100644 --- a/panels/dock/taskmanager/globals.h +++ b/panels/dock/taskmanager/globals.h @@ -19,6 +19,7 @@ static inline const QString DOCK_ACTION_DOCK = "dock-action-dock"; // setting keys static inline const QString TASKMANAGER_ALLOWFOCEQUIT_KEY = "Allow_Force_Quit"; static inline const QString TASKMANAGER_WINDOWSPLIT_KEY = "noTaskGrouping"; +static inline const QString TASKMANAGER_CGROUPS_BASED_GROUPING_KEY = "cgroupsBasedGrouping"; static inline const QString TASKMANAGER_DOCKEDITEMS_KEY = "Docked_Items"; constexpr auto TASKMANAGER_DOCKEDELEMENTS_KEY = "dockedElements"; diff --git a/panels/dock/taskmanager/taskmanager.cpp b/panels/dock/taskmanager/taskmanager.cpp index ef2944a4e..2a1b268fa 100644 --- a/panels/dock/taskmanager/taskmanager.cpp +++ b/panels/dock/taskmanager/taskmanager.cpp @@ -232,7 +232,7 @@ void TaskManager::handleWindowAdded(QPointer window) qCDebug(taskManagerLog()) << "identify by AM:" << desktopId; } - if (desktopfile.isNull() || !desktopfile->isValied().first) { + if (Settings->cgroupsBasedGrouping() && (desktopfile.isNull() || !desktopfile->isValied().first)) { desktopfile = DESKTOPFILEFACTORY::createByWindow(window); qCDebug(taskManagerLog()) << "identify by Fallback:" << desktopId; } diff --git a/panels/dock/taskmanager/taskmanagersettings.cpp b/panels/dock/taskmanager/taskmanagersettings.cpp index 2aed0ac42..84fc74ba2 100644 --- a/panels/dock/taskmanager/taskmanagersettings.cpp +++ b/panels/dock/taskmanager/taskmanagersettings.cpp @@ -51,6 +51,7 @@ TaskManagerSettings::TaskManagerSettings(QObject *parent) m_allowForceQuit = enableStr2Bool(m_taskManagerDconfig->value(TASKMANAGER_ALLOWFOCEQUIT_KEY).toString()); m_windowSplit = m_taskManagerDconfig->value(TASKMANAGER_WINDOWSPLIT_KEY).toBool(); + m_cgroupsBasedGrouping = m_taskManagerDconfig->value(TASKMANAGER_CGROUPS_BASED_GROUPING_KEY, true).toBool(); m_dockedElements = m_taskManagerDconfig->value(TASKMANAGER_DOCKEDELEMENTS_KEY, {}).toStringList(); migrateFromDockedItems(); } @@ -77,6 +78,11 @@ void TaskManagerSettings::setWindowSplit(bool split) m_taskManagerDconfig->setValue(TASKMANAGER_WINDOWSPLIT_KEY, m_windowSplit); } +bool TaskManagerSettings::cgroupsBasedGrouping() const +{ + return m_cgroupsBasedGrouping; +} + QStringList TaskManagerSettings::dockedElements() const { return m_dockedElements; diff --git a/panels/dock/taskmanager/taskmanagersettings.h b/panels/dock/taskmanager/taskmanagersettings.h index dadf6a0e7..6c635cf24 100644 --- a/panels/dock/taskmanager/taskmanagersettings.h +++ b/panels/dock/taskmanager/taskmanagersettings.h @@ -29,6 +29,8 @@ class TaskManagerSettings : public QObject bool isWindowSplit(); void setWindowSplit(bool split); + bool cgroupsBasedGrouping() const; + void setDockedElements(const QStringList &elements); void appendDockedElements(const QString &element); void removeDockedElements(const QString &element); @@ -51,6 +53,7 @@ class TaskManagerSettings : public QObject bool m_allowForceQuit; bool m_windowSplit; + bool m_cgroupsBasedGrouping; QStringList m_dockedElements; }; }