summaryrefslogtreecommitdiffstats
path: root/src/assistant/help/qhelpcollectionhandler.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2020-02-19 09:51:23 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2020-03-19 16:39:11 +0100
commit6c28b30cacc72959b8efdb4644b3d2bde2dd86f9 (patch)
tree3540fd1822d2dd5de81af22692b159fc376ce0dc /src/assistant/help/qhelpcollectionhandler.cpp
parent6f50422bab3c3683ba3d18f37d7096d0999f4ae4 (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.cpp43
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