diff --git a/src/frameworkdbus/types/launcheriteminfo.cpp b/src/frameworkdbus/types/launcheriteminfo.cpp index d6478a0..2658f65 100644 --- a/src/frameworkdbus/types/launcheriteminfo.cpp +++ b/src/frameworkdbus/types/launcheriteminfo.cpp @@ -22,7 +22,7 @@ bool LauncherItemInfo::operator!=(const LauncherItemInfo &itemInfo) { - return itemInfo.id != id; + return itemInfo.path != path; } QDBusArgument &operator<<(QDBusArgument &argument, const LauncherItemInfo &itemInfo) diff --git a/src/lib/desktopinfo.cpp b/src/lib/desktopinfo.cpp index fd52578..cd473db 100644 --- a/src/lib/desktopinfo.cpp +++ b/src/lib/desktopinfo.cpp @@ -371,7 +371,6 @@ std::map AppsDir::getAppNames() // 获取所有应用信息 std::vector AppsDir::getAllDesktopInfos() { - std::map recoder; std::vector desktopInfos; for (auto dir : BaseDir::appDirs()) { @@ -381,19 +380,13 @@ std::vector AppsDir::getAllDesktopInfos() continue; for (const auto &iter : appNames) { - if (recoder.find(iter.first) != recoder.end()) - continue; - std::string filePath = dir + iter.first; + DesktopInfo desktopInfo(filePath); - if (!desktopInfo.isValidDesktop()) + if (!DFile::isExisted(filePath) || !desktopInfo.isValidDesktop() || !desktopInfo.shouldShow()) continue; - if (!desktopInfo.shouldShow()) - continue; - - desktopInfos.push_back(std::move(desktopInfo)); - recoder[iter.first] = true; + desktopInfos.push_back(desktopInfo); } } diff --git a/src/modules/launcher/launcher.cpp b/src/modules/launcher/launcher.cpp index 5a07b6a..45b0279 100644 --- a/src/modules/launcher/launcher.cpp +++ b/src/modules/launcher/launcher.cpp @@ -140,11 +140,11 @@ void Launcher::setFullscreen(bool isFull) */ LauncherItemInfoList Launcher::getAllItemInfos() { - LauncherItemInfoList ret; - for (auto item : itemsMap) { - ret.push_back(item.info); - } - return ret; + LauncherItemInfoList allItemList; + for (auto item : m_desktopAndItemMap) + allItemList.push_back(item.info); + + return allItemList; } /** @@ -686,6 +686,7 @@ void Launcher::addItem(Item item) item.info.categoryId = qint64(queryCategoryId(&item)); itemsMap[item.info.id] = item; + m_desktopAndItemMap[item.info.path] = item; } Categorytype Launcher::queryCategoryId(const Item *item) @@ -967,8 +968,6 @@ bool Launcher::doUninstall(DesktopInfo &info, const Item &item) case (AppType::Default): ret = removeDesktop(item); break; - default: - break; } return ret; diff --git a/src/modules/launcher/launcher.h b/src/modules/launcher/launcher.h index 7e724dc..bca18ef 100644 --- a/src/modules/launcher/launcher.h +++ b/src/modules/launcher/launcher.h @@ -147,14 +147,16 @@ private: void notifyUninstallDone(const Item &item, bool result); private: - QMap itemsMap; // appKey, Item + QMap itemsMap; // appId, Item QMap desktopPkgMap; QMap pkgCategoryMap; - QMap nameMap; + QMap nameMap; // appId, Name QMap noPkgItemIds; QVector appsHidden; QStringList appDirs; + + QMap m_desktopAndItemMap; // desktoppath,Item }; #endif // LAUNCHER_H diff --git a/src/service/main.cpp b/src/service/main.cpp index bc38221..0fa7294 100644 --- a/src/service/main.cpp +++ b/src/service/main.cpp @@ -96,11 +96,6 @@ int main(int argc, char *argv[]) QDBusConnection::sessionBus().registerObject(app->path().path(), "org.desktopspec.Application", app.get()); } - for (const QSharedPointer &app : apps) { - qInfo() << "appId - " << app->id(); - qInfo() << "appFilePath - " << app->filePath(); - } - ApplicationManager::instance()->addApplication(apps); ApplicationManager::instance()->launchAutostartApps();