summaryrefslogtreecommitdiffstats
path: root/src/assistant/help/qhelpsearchengine.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2024-02-09 15:53:20 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2024-02-20 17:50:49 +0100
commita4bd06bc338132a73e1cde560a95a2b4af8766b3 (patch)
tree866474d2cdac5e69f59734fad340fbd7f3a7a609 /src/assistant/help/qhelpsearchengine.cpp
parent99e80b51633633b6bfb8d6cf742a5ced754c7012 (diff)
QtHelp: Reuse QHelpSearchEngineCore inside QHelpSearchEngine
Task-number: QTBUG-122025 Change-Id: Ib4cb458c18c2b375ad615927087f97c5cb560c07 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/assistant/help/qhelpsearchengine.cpp')
-rw-r--r--src/assistant/help/qhelpsearchengine.cpp160
1 files changed, 22 insertions, 138 deletions
diff --git a/src/assistant/help/qhelpsearchengine.cpp b/src/assistant/help/qhelpsearchengine.cpp
index f65e9cd8c..43f41deb9 100644
--- a/src/assistant/help/qhelpsearchengine.cpp
+++ b/src/assistant/help/qhelpsearchengine.cpp
@@ -3,121 +3,18 @@
#include "qhelpsearchengine.h"
#include "qhelpenginecore.h"
+#include "qhelpsearchenginecore.h"
#include "qhelpsearchquerywidget.h"
#include "qhelpsearchresultwidget.h"
-#include "qhelpsearchindexreader_p.h"
-#include "qhelpsearchindexwriter_p.h"
-
-#include <QtCore/qdir.h>
-#include <QtCore/qfile.h>
-#include <QtCore/qfileinfo.h>
-#include <QtCore/qpointer.h>
-#include <QtCore/qtimer.h>
-
QT_BEGIN_NAMESPACE
-using namespace fulltextsearch;
-
-class QHelpSearchEnginePrivate : public QObject
+class QHelpSearchEnginePrivate
{
- Q_OBJECT
-
-signals:
- void indexingStarted();
- void indexingFinished();
-
- void searchingStarted();
- void searchingFinished(int searchResultCount);
-
public:
- int searchResultCount() const
- {
- return indexReader ? indexReader->searchResultCount() : 0;
- }
-
- QList<QHelpSearchResult> searchResults(int start, int end) const
- {
- return indexReader ? indexReader->searchResults(start, end) : QList<QHelpSearchResult>();
- }
-
- void updateIndex(bool reindex = false)
- {
- if (helpEngine.isNull())
- return;
-
- if (!QFile::exists(QFileInfo(helpEngine->collectionFile()).path()))
- return;
-
- if (!indexWriter) {
- indexWriter.reset(new QHelpSearchIndexWriter);
-
- connect(indexWriter.get(), &QHelpSearchIndexWriter::indexingStarted,
- this, &QHelpSearchEnginePrivate::indexingStarted);
- connect(indexWriter.get(), &QHelpSearchIndexWriter::indexingFinished,
- this, &QHelpSearchEnginePrivate::indexingFinished);
- }
-
- indexWriter->cancelIndexing();
- indexWriter->updateIndex(helpEngine->collectionFile(), indexFilesFolder(), reindex);
- }
-
- void cancelIndexing()
- {
- if (indexWriter)
- indexWriter->cancelIndexing();
- }
-
- void search(const QString &searchInput)
- {
- if (helpEngine.isNull())
- return;
-
- if (!QFile::exists(QFileInfo(helpEngine->collectionFile()).path()))
- return;
-
- if (!indexReader) {
- indexReader.reset(new QHelpSearchIndexReader);
- connect(indexReader.get(), &QHelpSearchIndexReader::searchingStarted,
- this, &QHelpSearchEnginePrivate::searchingStarted);
- connect(indexReader.get(), &QHelpSearchIndexReader::searchingFinished,
- this, &QHelpSearchEnginePrivate::searchingFinished);
- }
-
- m_searchInput = searchInput;
- indexReader->cancelSearching();
- indexReader->search(helpEngine->collectionFile(), indexFilesFolder(),
- searchInput, helpEngine->usesFilterEngine());
- }
-
- void cancelSearching()
- {
- if (indexReader)
- indexReader->cancelSearching();
- }
-
- QString indexFilesFolder() const
- {
- QString indexFilesFolder = QLatin1String(".fulltextsearch");
- if (helpEngine && !helpEngine->collectionFile().isEmpty()) {
- QFileInfo fi(helpEngine->collectionFile());
- indexFilesFolder = fi.absolutePath() + QDir::separator() + QLatin1Char('.')
- + fi.fileName().left(fi.fileName().lastIndexOf(QLatin1String(".qhc")));
- }
- return indexFilesFolder;
- }
-
- bool m_isIndexingScheduled = false;
-
+ QHelpSearchEngineCore m_searchEngine;
QHelpSearchQueryWidget *queryWidget = nullptr;
QHelpSearchResultWidget *resultWidget = nullptr;
-
- std::unique_ptr<QHelpSearchIndexReader> indexReader;
- std::unique_ptr<QHelpSearchIndexWriter> indexWriter;
-
- QPointer<QHelpEngineCore> helpEngine;
-
- QString m_searchInput;
};
/*!
@@ -235,20 +132,15 @@ public:
*/
QHelpSearchEngine::QHelpSearchEngine(QHelpEngineCore *helpEngine, QObject *parent)
: QObject(parent)
- , d(new QHelpSearchEnginePrivate)
+ , d(new QHelpSearchEnginePrivate{QHelpSearchEngineCore(helpEngine)})
{
- d->helpEngine = helpEngine;
-
- connect(helpEngine, &QHelpEngineCore::setupFinished,
- this, &QHelpSearchEngine::scheduleIndexDocumentation);
-
- connect(d, &QHelpSearchEnginePrivate::indexingStarted,
+ connect(&d->m_searchEngine, &QHelpSearchEngineCore::indexingStarted,
this, &QHelpSearchEngine::indexingStarted);
- connect(d, &QHelpSearchEnginePrivate::indexingFinished,
+ connect(&d->m_searchEngine, &QHelpSearchEngineCore::indexingFinished,
this, &QHelpSearchEngine::indexingFinished);
- connect(d, &QHelpSearchEnginePrivate::searchingStarted,
+ connect(&d->m_searchEngine, &QHelpSearchEngineCore::searchingStarted,
this, &QHelpSearchEngine::searchingStarted);
- connect(d, &QHelpSearchEnginePrivate::searchingFinished,
+ connect(&d->m_searchEngine, &QHelpSearchEngineCore::searchingFinished,
this, &QHelpSearchEngine::searchingFinished);
}
@@ -288,7 +180,7 @@ QHelpSearchResultWidget* QHelpSearchEngine::resultWidget()
*/
int QHelpSearchEngine::hitsCount() const
{
- return d->searchResultCount();
+ return searchResultCount();
}
/*!
@@ -298,7 +190,7 @@ int QHelpSearchEngine::hitsCount() const
*/
int QHelpSearchEngine::hitCount() const
{
- return d->searchResultCount();
+ return searchResultCount();
}
#endif // QT_DEPRECATED_SINCE(5, 9)
@@ -308,7 +200,7 @@ int QHelpSearchEngine::hitCount() const
*/
int QHelpSearchEngine::searchResultCount() const
{
- return d->searchResultCount();
+ return d->m_searchEngine.searchResultCount();
}
#if QT_DEPRECATED_SINCE(5, 9)
@@ -344,7 +236,7 @@ QList<QHelpSearchEngine::SearchHit> QHelpSearchEngine::hits(int start, int end)
*/
QList<QHelpSearchResult> QHelpSearchEngine::searchResults(int start, int end) const
{
- return d->searchResults(start, end);
+ return d->m_searchEngine.searchResults(start, end);
}
/*!
@@ -353,7 +245,7 @@ QList<QHelpSearchResult> QHelpSearchEngine::searchResults(int start, int end) co
*/
QString QHelpSearchEngine::searchInput() const
{
- return d->m_searchInput;
+ return d->m_searchEngine.searchInput();
}
#if QT_DEPRECATED_SINCE(5, 9)
@@ -366,7 +258,7 @@ QT_WARNING_DISABLE_DEPRECATED
*/
QList<QHelpSearchQuery> QHelpSearchEngine::query() const
{
- return {{QHelpSearchQuery::DEFAULT, d->m_searchInput.split(QChar::Space)}};
+ return {{QHelpSearchQuery::DEFAULT, searchInput().split(QChar::Space)}};
}
QT_WARNING_POP
#endif // QT_DEPRECATED_SINCE(5, 9)
@@ -376,7 +268,7 @@ QT_WARNING_POP
*/
void QHelpSearchEngine::reindexDocumentation()
{
- d->updateIndex(true);
+ d->m_searchEngine.reindexDocumentation();
}
/*!
@@ -384,7 +276,7 @@ void QHelpSearchEngine::reindexDocumentation()
*/
void QHelpSearchEngine::cancelIndexing()
{
- d->cancelIndexing();
+ d->m_searchEngine.cancelIndexing();
}
/*!
@@ -392,7 +284,7 @@ void QHelpSearchEngine::cancelIndexing()
*/
void QHelpSearchEngine::cancelSearching()
{
- d->cancelSearching();
+ d->m_searchEngine.cancelSearching();
}
/*!
@@ -414,7 +306,7 @@ void QHelpSearchEngine::cancelSearching()
*/
void QHelpSearchEngine::search(const QString &searchInput)
{
- d->search(searchInput);
+ d->m_searchEngine.search(searchInput);
}
#if QT_DEPRECATED_SINCE(5, 9)
@@ -427,7 +319,7 @@ void QHelpSearchEngine::search(const QList<QHelpSearchQuery> &queryList)
if (queryList.isEmpty())
return;
- d->search(queryList.first().wordList.join(QChar::Space));
+ d->m_searchEngine.search(queryList.first().wordList.join(QChar::Space));
}
#endif // QT_DEPRECATED_SINCE(5, 9)
@@ -436,19 +328,11 @@ void QHelpSearchEngine::search(const QList<QHelpSearchQuery> &queryList)
*/
void QHelpSearchEngine::scheduleIndexDocumentation()
{
- if (d->m_isIndexingScheduled)
- return;
-
- d->m_isIndexingScheduled = true;
- QTimer::singleShot(0, this, &QHelpSearchEngine::indexDocumentation);
+ d->m_searchEngine.scheduleIndexDocumentation();
}
+// TODO: Deprecate me (but it's private???)
void QHelpSearchEngine::indexDocumentation()
-{
- d->m_isIndexingScheduled = false;
- d->updateIndex();
-}
+{}
QT_END_NAMESPACE
-
-#include "qhelpsearchengine.moc"