From 3939ca9c129586a7d2bd7450087f7e0cffc878e1 Mon Sep 17 00:00:00 2001 From: tsic404 Date: Tue, 23 Jan 2024 17:14:23 +0800 Subject: [PATCH] fix: unable get docked entriy by soft link path set canonicalFilePath instead of absoluteFilePath for deskfileinfo and find it by canonicalFilePath instead of user input path log: use canonicalFilePath instead of absoluteFilePath --- frame/taskmanager/desktopinfo.cpp | 2 +- frame/taskmanager/entries.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/frame/taskmanager/desktopinfo.cpp b/frame/taskmanager/desktopinfo.cpp index 0cf613d33..a34a1667c 100644 --- a/frame/taskmanager/desktopinfo.cpp +++ b/frame/taskmanager/desktopinfo.cpp @@ -40,7 +40,7 @@ DesktopInfo::DesktopInfo(const QString &desktopfile) } } - m_desktopFilePath = desktopFileInfo.absoluteFilePath(); + m_desktopFilePath = desktopFileInfo.canonicalFilePath(); m_isValid = desktopFileInfo.isAbsolute() && QFile::exists(desktopFileInfo.absoluteFilePath()); m_desktopFile.reset(new QSettings(m_desktopFilePath, QSettings::IniFormat)); m_desktopFile->setIniCodec("utf-8"); diff --git a/frame/taskmanager/entries.cpp b/frame/taskmanager/entries.cpp index 19d17a0b0..4f49f0509 100644 --- a/frame/taskmanager/entries.cpp +++ b/frame/taskmanager/entries.cpp @@ -162,9 +162,11 @@ QList Entries::getEntries() Entry *Entries::getDockedEntryByDesktopFile(const QString &desktopFile) { + QFileInfo desktopFileInfo(desktopFile); + Entry *ret = nullptr; for (auto entry : filterDockedEntries()) { - if ((entry->isValid()) && desktopFile == entry->getFileName()) { + if ((entry->isValid()) && desktopFileInfo.canonicalFilePath() == entry->getFileName()) { ret = entry; break; }