diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2020-02-19 09:51:23 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2020-03-19 16:39:11 +0100 |
commit | 6c28b30cacc72959b8efdb4644b3d2bde2dd86f9 (patch) | |
tree | 3540fd1822d2dd5de81af22692b159fc376ce0dc /src/assistant/help/qhelpcollectionhandler.cpp | |
parent | 6f50422bab3c3683ba3d18f37d7096d0999f4ae4 (diff) |
Adapt the QtHelp API according to recent QMap changes
The usage of QMap as a multi map has just been deprecated.
Adapt the QtHelp API accordingly. Introduce QHelpLink data
structure.
Fixes: QTBUG-82334
Change-Id: I8ff15710b1a433ddcb3000e5bcf58790c983e63f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/assistant/help/qhelpcollectionhandler.cpp')
-rw-r--r-- | src/assistant/help/qhelpcollectionhandler.cpp | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/src/assistant/help/qhelpcollectionhandler.cpp b/src/assistant/help/qhelpcollectionhandler.cpp index 427521a9a..29178bb55 100644 --- a/src/assistant/help/qhelpcollectionhandler.cpp +++ b/src/assistant/help/qhelpcollectionhandler.cpp @@ -51,6 +51,8 @@ #include <QtCore/QVector> #include <QtCore/QVersionNumber> +#include <QtHelp/QHelpLink> + #include <QtSql/QSqlError> #include <QtSql/QSqlDriver> @@ -2375,14 +2377,38 @@ QMap<QString, QUrl> QHelpCollectionHandler::linksForKeyword(const QString &keywo return linksForField(QLatin1String("Name"), keyword, filterName); } +QList<QHelpLink> QHelpCollectionHandler::documentsForIdentifier(const QString &id, + const QString &filterName) const +{ + return documentsForField(QLatin1String("Identifier"), id, filterName); +} + +QList<QHelpLink> QHelpCollectionHandler::documentsForKeyword(const QString &keyword, + const QString &filterName) const +{ + return documentsForField(QLatin1String("Name"), keyword, filterName); +} + QMap<QString, QUrl> QHelpCollectionHandler::linksForField(const QString &fieldName, const QString &fieldValue, const QString &filterName) const { QMap<QString, QUrl> linkMap; + const auto documents = documentsForField(fieldName, fieldValue, filterName); + for (const auto &document : documents) + static_cast<QMultiMap<QString, QUrl> &>(linkMap).insert(document.title, document.url); + + return linkMap; +} + +QList<QHelpLink> QHelpCollectionHandler::documentsForField(const QString &fieldName, + const QString &fieldValue, + const QString &filterName) const +{ + QList<QHelpLink> docList; if (!isDBOpened()) - return linkMap; + return docList; const QString filterlessQuery = QString::fromLatin1( "SELECT " @@ -2402,7 +2428,8 @@ QMap<QString, QUrl> QHelpCollectionHandler::linksForField(const QString &fieldNa "AND IndexTable.%1 = ?").arg(fieldName); const QString filterQuery = filterlessQuery - + prepareFilterQuery(filterName); + + prepareFilterQuery(filterName) + + QLatin1String(" ORDER BY LOWER(FileNameTable.Title), FileNameTable.Title"); m_query->prepare(filterQuery); m_query->bindValue(0, fieldValue); @@ -2415,13 +2442,13 @@ QMap<QString, QUrl> QHelpCollectionHandler::linksForField(const QString &fieldNa if (title.isEmpty()) // generate a title + corresponding path title = fieldValue + QLatin1String(" : ") + m_query->value(3).toString(); - static_cast<QMultiMap<QString, QUrl> &>(linkMap).insert(title, buildQUrl( - m_query->value(1).toString(), - m_query->value(2).toString(), - m_query->value(3).toString(), - m_query->value(4).toString())); + const QUrl url = buildQUrl(m_query->value(1).toString(), + m_query->value(2).toString(), + m_query->value(3).toString(), + m_query->value(4).toString()); + docList.append(QHelpLink {url, title}); } - return linkMap; + return docList; } QStringList QHelpCollectionHandler::namespacesForFilter(const QString &filterName) const |