diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2017-02-03 13:59:39 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2017-03-09 07:49:59 +0000 |
commit | 060b9c9528971951b379785cb771c17ed7a50696 (patch) | |
tree | f8aa48773f0539b88976e361a5d80387aeeb2a47 /src/assistant/help/qhelpsearchengine.cpp | |
parent | d116ac573d80b6fdfdea4a56b7ae44f84e0ba6ad (diff) |
Implement snippet functionality for search results
Change-Id: Idaeddb90ae39963e9b92912289f1ecbccd3669e2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Diffstat (limited to 'src/assistant/help/qhelpsearchengine.cpp')
-rw-r--r-- | src/assistant/help/qhelpsearchengine.cpp | 74 |
1 files changed, 69 insertions, 5 deletions
diff --git a/src/assistant/help/qhelpsearchengine.cpp b/src/assistant/help/qhelpsearchengine.cpp index 5579c0cc3..d9c65b71e 100644 --- a/src/assistant/help/qhelpsearchengine.cpp +++ b/src/assistant/help/qhelpsearchengine.cpp @@ -58,6 +58,60 @@ QT_BEGIN_NAMESPACE using namespace fulltextsearch::qt; +class QHelpSearchResultData : public QSharedData +{ +public: + QUrl m_url; + QString m_title; + QString m_snippet; +}; + +QHelpSearchResult::QHelpSearchResult() + : d(new QHelpSearchResultData) +{ +} + + +QHelpSearchResult::QHelpSearchResult(const QHelpSearchResult &other) + : d(other.d) +{ +} + +QHelpSearchResult::QHelpSearchResult(const QUrl &url, const QString &title, const QString &snippet) + : d(new QHelpSearchResultData) +{ + d->m_url = url; + d->m_title = title; + d->m_snippet = snippet; +} + +QHelpSearchResult::~QHelpSearchResult() +{ +} + +QHelpSearchResult &QHelpSearchResult::operator=(const QHelpSearchResult &other) +{ + d = other.d; + return *this; +} + +QString QHelpSearchResult::title() const +{ + return d->m_title; +} + +QUrl QHelpSearchResult::url() const +{ + return d->m_url; +} + +QString QHelpSearchResult::snippet() const +{ + return d->m_snippet; +} + + + class QHelpSearchEnginePrivate : public QObject { Q_OBJECT @@ -67,7 +121,7 @@ signals: void indexingFinished(); void searchingStarted(); - void searchingFinished(int hits); + void searchingFinished(int searchResults); private: QHelpSearchEnginePrivate(QHelpEngineCore *helpEngine) @@ -94,11 +148,11 @@ private: return count; } - QList<QHelpSearchEngine::SearchHit> hits(int start, int end) const + QVector<QHelpSearchResult> searchResults(int start, int end) const { return indexReader ? - indexReader->hits(start, end) : - QList<QHelpSearchEngine::SearchHit>(); + indexReader->searchResults(start, end) : + QVector<QHelpSearchResult>(); } void updateIndex(bool reindex = false) @@ -360,6 +414,7 @@ int QHelpSearchEngine::hitCount() const return d->hitCount(); } +// TODO: obsolete the SearchHit typedef and hits methods /*! \typedef QHelpSearchEngine::SearchHit @@ -374,7 +429,16 @@ int QHelpSearchEngine::hitCount() const */ QList<QHelpSearchEngine::SearchHit> QHelpSearchEngine::hits(int start, int end) const { - return d->hits(start, end); + QList<QHelpSearchEngine::SearchHit> hits; + for (const QHelpSearchResult &result : searchResults(start, end)) + hits.append(qMakePair(result.url().toString(), result.title())); + return hits; +} + +// TODO: add a doc for searchResults() and for QHelpSearchResult class +QVector<QHelpSearchResult> QHelpSearchEngine::searchResults(int start, int end) const +{ + return d->searchResults(start, end); } /*! |