#ifndef UKUISEARCH_H #define UKUISEARCH_H #include "result-item.h" #include "data-queue.h" #include "search-result-property.h" namespace UkuiSearch { class UkuiSearchTaskPrivate; class UkuiSearchTask : public QObject { Q_OBJECT public: explicit UkuiSearchTask(QObject *parent = nullptr); ~UkuiSearchTask(); DataQueue* init(); void addSearchDir(const QString &path); void setRecurse(bool recurse = true); void addKeyword(const QString &keyword); void addFileLabel(const QString &label); void setOnlySearchFile(bool onlySearchFile); void setOnlySearchDir(bool onlySearchDir); void setSearchOnlineApps(bool searchOnlineApps); /** * @brief initSearchPlugin 初始化搜索插件 * @param searchType * @param customSearchType */ void initSearchPlugin(SearchProperty::SearchType searchType, const QString& customSearchType = QString()); /** * @brief setResultDataType * @param searchType * @param dataType * @return */ bool setResultProperties(SearchProperty::SearchType searchType, SearchResultProperties searchResultProperties); void setCustomResultDataType(QString customSearchType, QStringList dataType); void clearAllConditions(); void clearKeyWords(); void clearSearchDir(); void clearFileLabel(); void setMaxResultNum(unsigned int maxResults = 99999999); size_t startSearch(SearchProperty::SearchType searchtype, QString customSearchType = QString()); void stop(); Q_SIGNALS: void searchFinished(size_t searchId); void searchError(size_t searchId, QString msg); private: UkuiSearchTaskPrivate* d = nullptr; }; } #endif // UKUISEARCH_H