/* * Copyright (C) 2020, KylinSoft Co., Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authors: sunfengsheng * */ #ifndef APPMATCH_H #define APPMATCH_H #include #include #include #include #include #include #include #include #include class AppMatch : public QThread { Q_OBJECT public: static AppMatch *getAppMatch(); explicit AppMatch(QObject *parent = nullptr); ~AppMatch(); void startMatchApp(QString input,QMap &installed,QMap &softwarereturn); QMap> startMatchApp(QString input); private: void getAllDesktopFilePath(QString path); void getDesktopFilePath(); void getAppName(); void getAppName(QMap &installed); // void appNameMatch(QString appname,QString desktoppath,QString appicon); void appNameMatch(QString appname); void appNameMatch(QString appname,QMap &installed); void softWareCenterSearch(); void softWareCenterSearch(QMap &softwarereturn); void parseSoftWareCenterReturn(QList> list); void parseSoftWareCenterReturn(QList> list,QMap &softwarereturn); void getInstalledAppsVersion(QString appname); void returnAppMap(); private: QString m_sourceText; QStringList m_filePathList; QStringList m_returnResult; QDBusInterface *m_interFace=nullptr; QFileSystemWatcher *m_watchAppDir=nullptr; QMap> m_softWareCenterMap; QMap> m_installAppMap; QMap> m_matchInstallAppMap; QMap> m_returnResult1; QMap> m_midResult; // QProcess *m_versionCommand; private Q_SLOTS: void slotDBusCallFinished(); void slotDBusCallFinished(QMap &softwarereturn); //Q_SIGNALS: protected: void run() override; }; #endif // APPMATCH_H