summaryrefslogtreecommitdiffstats
path: root/src/assistant/help/qhelpcollectionhandler.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2020-08-31 10:33:58 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2020-09-11 15:35:06 +0200
commitdbe178044b591490cb98c071da8b91342129e030 (patch)
tree26acb80b35eb473ed8f2047b020c3a90729fe6b5 /src/assistant/help/qhelpcollectionhandler.cpp
parent14024df36e7a26b79aa2b0edf82c9b29d9eb0185 (diff)
QtHelp: Fix documentsFor() when not using filter engine
Fixes: QTBUG-84727 Pick-to: 5.15 Change-Id: Id66cc071a24cc761dc63d044b7f74d0e1959cd22 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Diffstat (limited to 'src/assistant/help/qhelpcollectionhandler.cpp')
-rw-r--r--src/assistant/help/qhelpcollectionhandler.cpp92
1 files changed, 64 insertions, 28 deletions
diff --git a/src/assistant/help/qhelpcollectionhandler.cpp b/src/assistant/help/qhelpcollectionhandler.cpp
index b59975808..57ab8e329 100644
--- a/src/assistant/help/qhelpcollectionhandler.cpp
+++ b/src/assistant/help/qhelpcollectionhandler.cpp
@@ -2301,28 +2301,56 @@ static QUrl buildQUrl(const QString &ns, const QString &folder,
return url;
}
-QMultiMap<QString, QUrl>
-QHelpCollectionHandler::linksForIdentifier(const QString &id,
- const QStringList &filterAttributes) const
+QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForIdentifier(
+ const QString &id,
+ const QStringList &filterAttributes) const
{
return linksForField(QLatin1String("Identifier"), id, filterAttributes);
}
-QMultiMap<QString, QUrl>
-QHelpCollectionHandler::linksForKeyword(const QString &keyword,
- const QStringList &filterAttributes) const
+QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForKeyword(
+ const QString &keyword,
+ const QStringList &filterAttributes) const
{
return linksForField(QLatin1String("Name"), keyword, filterAttributes);
}
-QMultiMap<QString, QUrl>
-QHelpCollectionHandler::linksForField(const QString &fieldName, const QString &fieldValue,
- const QStringList &filterAttributes) const
+QList<QHelpLink> QHelpCollectionHandler::documentsForIdentifier(
+ const QString &id,
+ const QStringList &filterAttributes) const
+{
+ return documentsForField(QLatin1String("Identifier"), id, filterAttributes);
+}
+
+QList<QHelpLink> QHelpCollectionHandler::documentsForKeyword(
+ const QString &keyword,
+ const QStringList &filterAttributes) const
+{
+ return documentsForField(QLatin1String("Name"), keyword, filterAttributes);
+}
+
+QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForField(
+ const QString &fieldName,
+ const QString &fieldValue,
+ const QStringList &filterAttributes) const
{
QMultiMap<QString, QUrl> linkMap;
+ const auto documents = documentsForField(fieldName, fieldValue, filterAttributes);
+ for (const auto &document : documents)
+ linkMap.insert(document.title, document.url);
+
+ return linkMap;
+}
+
+QList<QHelpLink> QHelpCollectionHandler::documentsForField(
+ const QString &fieldName,
+ const QString &fieldValue,
+ const QStringList &filterAttributes) const
+{
+ QList<QHelpLink> docList;
if (!isDBOpened())
- return linkMap;
+ return docList;
const QString filterlessQuery = QString::fromLatin1(
"SELECT "
@@ -2359,40 +2387,47 @@ QHelpCollectionHandler::linksForField(const QString &fieldName, const QString &f
if (title.isEmpty()) // generate a title + corresponding path
title = fieldValue + QLatin1String(" : ") + m_query->value(3).toString();
- 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;
}
-QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForIdentifier(const QString &id,
- const QString &filterName) const
+QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForIdentifier(
+ const QString &id,
+ const QString &filterName) const
{
return linksForField(QLatin1String("Identifier"), id, filterName);
}
-QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForKeyword(const QString &keyword,
- const QString &filterName) const
+QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForKeyword(
+ const QString &keyword,
+ const QString &filterName) const
{
return linksForField(QLatin1String("Name"), keyword, filterName);
}
-QList<QHelpLink> QHelpCollectionHandler::documentsForIdentifier(const QString &id,
- const QString &filterName) const
+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
+QList<QHelpLink> QHelpCollectionHandler::documentsForKeyword(
+ const QString &keyword,
+ const QString &filterName) const
{
return documentsForField(QLatin1String("Name"), keyword, filterName);
}
-QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForField(const QString &fieldName,
- const QString &fieldValue,
- const QString &filterName) const
+QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForField(
+ const QString &fieldName,
+ const QString &fieldValue,
+ const QString &filterName) const
{
QMultiMap<QString, QUrl> linkMap;
const auto documents = documentsForField(fieldName, fieldValue, filterName);
@@ -2402,9 +2437,10 @@ QMultiMap<QString, QUrl> QHelpCollectionHandler::linksForField(const QString &fi
return linkMap;
}
-QList<QHelpLink> QHelpCollectionHandler::documentsForField(const QString &fieldName,
- const QString &fieldValue,
- const QString &filterName) const
+QList<QHelpLink> QHelpCollectionHandler::documentsForField(
+ const QString &fieldName,
+ const QString &fieldValue,
+ const QString &filterName) const
{
QList<QHelpLink> docList;