Skip to content

Commit 169e1d9

Browse files
committed
feat: new dconfig option to allow disable cgroups-based app grouping
新增设置,提供形式来关闭基于 cgroups 的应用识别. 这个选项可供临时实验针对无 desktop 文件的应用程序(例如 appimage 程序) 的图标识别支持,此选项不会默认禁用. Log:
1 parent ed2eefc commit 169e1d9

5 files changed

Lines changed: 22 additions & 1 deletion

File tree

panels/dock/taskmanager/dconfig/org.deepin.ds.dock.taskmanager.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,17 @@
3333
"permissions": "readwrite",
3434
"visibility": "private"
3535
},
36+
"cgroupsBasedGrouping": {
37+
"value": true,
38+
"serial": 0,
39+
"flags": [],
40+
"name": "cgroupsBasedGrouping",
41+
"name[zh_CN]": "基于 cgroups 的任务图标分组",
42+
"description": "Enable cgroups-based task grouping",
43+
"description[zh_CN]": "启用基于 cgroups 的任务图标分组",
44+
"permissions": "readonly",
45+
"visibility": "private"
46+
},
3647
"Docked_Items": {
3748
"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"],
3849
"serial": 0,

panels/dock/taskmanager/globals.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ static inline const QString DOCK_ACTION_DOCK = "dock-action-dock";
1919
// setting keys
2020
static inline const QString TASKMANAGER_ALLOWFOCEQUIT_KEY = "Allow_Force_Quit";
2121
static inline const QString TASKMANAGER_WINDOWSPLIT_KEY = "noTaskGrouping";
22+
static inline const QString TASKMANAGER_CGROUPS_BASED_GROUPING_KEY = "cgroupsBasedGrouping";
2223
static inline const QString TASKMANAGER_DOCKEDITEMS_KEY = "Docked_Items";
2324
constexpr auto TASKMANAGER_DOCKEDELEMENTS_KEY = "dockedElements";
2425

panels/dock/taskmanager/taskmanager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ void TaskManager::handleWindowAdded(QPointer<AbstractWindow> window)
232232
qCDebug(taskManagerLog()) << "identify by AM:" << desktopId;
233233
}
234234

235-
if (desktopfile.isNull() || !desktopfile->isValied().first) {
235+
if (Settings->cgroupsBasedGrouping() && (desktopfile.isNull() || !desktopfile->isValied().first)) {
236236
desktopfile = DESKTOPFILEFACTORY::createByWindow(window);
237237
qCDebug(taskManagerLog()) << "identify by Fallback:" << desktopId;
238238
}

panels/dock/taskmanager/taskmanagersettings.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ TaskManagerSettings::TaskManagerSettings(QObject *parent)
5151

5252
m_allowForceQuit = enableStr2Bool(m_taskManagerDconfig->value(TASKMANAGER_ALLOWFOCEQUIT_KEY).toString());
5353
m_windowSplit = m_taskManagerDconfig->value(TASKMANAGER_WINDOWSPLIT_KEY).toBool();
54+
m_cgroupsBasedGrouping = m_taskManagerDconfig->value(TASKMANAGER_CGROUPS_BASED_GROUPING_KEY, true).toBool();
5455
m_dockedElements = m_taskManagerDconfig->value(TASKMANAGER_DOCKEDELEMENTS_KEY, {}).toStringList();
5556
migrateFromDockedItems();
5657
}
@@ -77,6 +78,11 @@ void TaskManagerSettings::setWindowSplit(bool split)
7778
m_taskManagerDconfig->setValue(TASKMANAGER_WINDOWSPLIT_KEY, m_windowSplit);
7879
}
7980

81+
bool TaskManagerSettings::cgroupsBasedGrouping() const
82+
{
83+
return m_cgroupsBasedGrouping;
84+
}
85+
8086
QStringList TaskManagerSettings::dockedElements() const
8187
{
8288
return m_dockedElements;

panels/dock/taskmanager/taskmanagersettings.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ class TaskManagerSettings : public QObject
2929
bool isWindowSplit();
3030
void setWindowSplit(bool split);
3131

32+
bool cgroupsBasedGrouping() const;
33+
3234
void setDockedElements(const QStringList &elements);
3335
void appendDockedElements(const QString &element);
3436
void removeDockedElements(const QString &element);
@@ -51,6 +53,7 @@ class TaskManagerSettings : public QObject
5153

5254
bool m_allowForceQuit;
5355
bool m_windowSplit;
56+
bool m_cgroupsBasedGrouping;
5457
QStringList m_dockedElements;
5558
};
5659
}

0 commit comments

Comments
 (0)