59 , m_category {category}
60 , m_usedPlugins {usedPlugins}
62 , m_searchProcess {new QProcess {this}}
63 , m_searchTimeout {new QTimer {this}}
68 const QStringList params
81 connect(
m_searchProcess, qOverload<int, QProcess::ExitStatus>(&QProcess::finished)
89 QTimer::singleShot(0,
this, [
this]() {
m_searchProcess->start(QIODevice::ReadOnly); });
120 else if ((
m_searchProcess->exitStatus() == QProcess::NormalExit) && (exitcode == 0))
134 QList<QByteArray> lines =
output.split(
'\n');
139 QVector<SearchResult> searchResultList;
140 searchResultList.reserve(lines.size());
142 for (
const QByteArray &line :
asConst(lines))
146 searchResultList << searchResult;
149 if (!searchResultList.isEmpty())
168 const QList<QStringView> parts = line.split(u
'|');
169 const int nbFields = parts.size();
SearchPluginManager * manager() const
const QStringList m_usedPlugins
QList< SearchResult > m_results
bool parseSearchResult(QStringView line, SearchResult &searchResult)
QByteArray m_searchResultLineTruncated
QProcess * m_searchProcess
SearchHandler(const QString &pattern, const QString &category, const QStringList &usedPlugins, SearchPluginManager *manager)
QList< SearchResult > results() const
void searchFinished(bool cancelled=false)
SearchPluginManager * m_manager
void processFinished(int exitcode)
void newSearchResults(const QVector< SearchResult > &results)
static QString engineLocation()
constexpr std::add_const_t< T > & asConst(T &t) noexcept
QString toNativePath(const QString &path)