Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qhelpcollectionhandler_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QHELPCOLLECTIONHANDLER_H
6#define QHELPCOLLECTIONHANDLER_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists for the convenience
13// of the help generator tools. This header file may change from version
14// to version without notice, or even be removed.
15//
16// We mean it.
17//
18
20#include "qhelplink.h"
21
22#include <QtCore/qdatetime.h>
23#include <QtCore/qlist.h>
24#include <QtCore/qmap.h>
25#include <QtCore/qobject.h>
26#include <QtCore/qstringlist.h>
27
28#include <memory>
29
30QT_BEGIN_NAMESPACE
31
32class QHelpFilterData;
33class QSqlQuery;
34class QVariant;
35class QVersionNumber;
36
38{
40
41public:
49
50 struct TimeStamp
51 {
52 int namespaceId = -1;
53 int folderId = -1;
55 int size = 0;
57 };
58
65
66 explicit QHelpCollectionHandler(const QString &collectionFile, QObject *parent = nullptr);
68
69 QString collectionFile() const { return m_collectionFile; }
70
71 bool openCollectionFile();
72 bool copyCollectionFile(const QString &fileName);
73
74 // *** Legacy block start ***
75 // legacy API since Qt 5.13
76
77 // use filters() instead
79
80 // use QHelpFilterEngine::removeFilter() instead
81 bool removeCustomFilter(const QString &filterName);
82
83 // use QHelpFilterEngine::setFilterData() instead
84 bool addCustomFilter(const QString &filterName, const QStringList &attributes);
85
86 // use files(const QString &, const QString &, const QString &) instead
87 QStringList files(const QString &namespaceName,
88 const QStringList &filterAttributes,
89 const QString &extensionFilter) const;
90
91 // use namespaceForFile(const QUrl &, const QString &) instead
92 QString namespaceForFile(const QUrl &url, const QStringList &filterAttributes) const;
93
94 // use findFile(const QUrl &, const QString &) instead
95 QUrl findFile(const QUrl &url, const QStringList &filterAttributes) const;
96
97 // use indicesForFilter(const QString &) instead
98 QStringList indicesForFilter(const QStringList &filterAttributes) const;
99
100 // use contentsForFilter(const QString &) instead
101 QList<ContentsData> contentsForFilter(const QStringList &filterAttributes) const;
102
103 // use QHelpFilterEngine::activeFilter() and filterData(const QString &) instead;
105
106 // use filterData(const QString &) instead
107 QStringList filterAttributes(const QString &filterName) const;
108
109 // use filterData(const QString &) instead
110 QList<QStringList> filterAttributeSets(const QString &namespaceName) const;
111
112 // *** Legacy block end ***
113
114 QStringList filters() const;
115
120 QHelpFilterData filterData(const QString &filterName) const;
121 bool setFilterData(const QString &filterName, const QHelpFilterData &filterData);
122 bool removeFilter(const QString &filterName);
123
124 FileInfo registeredDocumentation(const QString &namespaceName) const;
126 bool registerDocumentation(const QString &fileName);
127 bool unregisterDocumentation(const QString &namespaceName);
128
129 bool fileExists(const QUrl &url) const;
130 QStringList files(const QString &namespaceName,
131 const QString &filterName,
132 const QString &extensionFilter) const;
133 QString namespaceForFile(const QUrl &url, const QString &filterName) const;
134 QUrl findFile(const QUrl &url, const QString &filterName) const;
135 QByteArray fileData(const QUrl &url) const;
136
137 QStringList indicesForFilter(const QString &filterName) const;
138 QList<ContentsData> contentsForFilter(const QString &filterName) const;
139
140 bool removeCustomValue(const QString &key);
141 QVariant customValue(const QString &key, const QVariant &defaultValue) const;
142 bool setCustomValue(const QString &key, const QVariant &value);
143
144 int registerNamespace(const QString &nspace, const QString &fileName);
145 int registerVirtualFolder(const QString &folderName, int namespaceId);
146 int registerComponent(const QString &componentName, int namespaceId);
147 bool registerVersion(const QString &version, int namespaceId);
148
149 QList<QHelpLink> documentsForIdentifier(const QString &id, const QString &filterName) const;
150 QList<QHelpLink> documentsForKeyword(const QString &keyword, const QString &filterName) const;
151 QList<QHelpLink> documentsForIdentifier(const QString &id,
152 const QStringList &filterAttributes) const;
153 QList<QHelpLink> documentsForKeyword(const QString &keyword,
154 const QStringList &filterAttributes) const;
155
156 QStringList namespacesForFilter(const QString &filterName) const;
157
158 void setReadOnly(bool readOnly) { m_readOnly = readOnly; }
159
160 static QUrl buildQUrl(const QString &ns, const QString &folder,
161 const QString &relFileName, const QString &anchor);
162
163signals:
164 void error(const QString &msg);
165
166private:
167 // legacy stuff
168 QList<QHelpLink> documentsForField(const QString &fieldName,
169 const QString &fieldValue,
170 const QStringList &filterAttributes) const;
171
172 QString namespaceVersion(const QString &namespaceName) const;
173 QMultiMap<QString, QUrl> linksForField(const QString &fieldName, const QString &fieldValue,
174 const QString &filterName) const;
175 QList<QHelpLink> documentsForField(const QString &fieldName,
176 const QString &fieldValue,
177 const QString &filterName) const;
178
179 bool isDBOpened() const;
180 bool createTables(QSqlQuery *query);
181 void closeDB();
182 bool recreateIndexAndNamespaceFilterTables(QSqlQuery *query);
183 bool registerIndexAndNamespaceFilterTables(const QString &nameSpace,
184 bool createDefaultVersionFilter = false);
185 void createVersionFilter(const QString &version);
186 bool registerFilterAttributes(const QList<QStringList> &attributeSets, int nsId);
187 bool registerFileAttributeSets(const QList<QStringList> &attributeSets, int nsId);
188 bool registerIndexTable(const QHelpDBReader::IndexTable &indexTable,
189 int nsId, int vfId, const QString &fileName);
190 bool unregisterIndexTable(int nsId, int vfId);
191 QString absoluteDocPath(const QString &fileName) const;
192 bool isTimeStampCorrect(const TimeStamp &timeStamp) const;
193 bool hasTimeStampInfo(const QString &nameSpace) const;
194 void scheduleVacuum();
195 void execVacuum();
196
197 QString m_collectionFile;
198 QString m_connectionName;
199 std::unique_ptr<QSqlQuery> m_query;
200 bool m_vacuumScheduled = false;
201 bool m_readOnly = true;
202};
203
204QT_END_NAMESPACE
205
206#endif // QHELPCOLLECTIONHANDLER_H
bool unregisterDocumentation(const QString &namespaceName)
QStringList filterAttributes(const QString &filterName) const
QList< QHelpLink > documentsForKeyword(const QString &keyword, const QString &filterName) const
bool removeCustomFilter(const QString &filterName)
QUrl findFile(const QUrl &url, const QStringList &filterAttributes) const
bool setFilterData(const QString &filterName, const QHelpFilterData &filterData)
bool removeFilter(const QString &filterName)
FileInfo registeredDocumentation(const QString &namespaceName) const
QByteArray fileData(const QUrl &url) const
QStringList files(const QString &namespaceName, const QStringList &filterAttributes, const QString &extensionFilter) const
FileInfoList registeredDocumentations() const
QList< ContentsData > contentsForFilter(const QStringList &filterAttributes) const
QMap< QString, QVersionNumber > namespaceToVersion() const
bool removeCustomValue(const QString &key)
QList< QVersionNumber > availableVersions() const
QString namespaceForFile(const QUrl &url, const QStringList &filterAttributes) const
int registerComponent(const QString &componentName, int namespaceId)
bool addCustomFilter(const QString &filterName, const QStringList &attributes)
QMap< QString, QString > namespaceToComponent() const
static QUrl buildQUrl(const QString &ns, const QString &folder, const QString &relFileName, const QString &anchor)
QHelpFilterData filterData(const QString &filterName) const
int registerVirtualFolder(const QString &folderName, int namespaceId)
QStringList availableComponents() const
QVariant customValue(const QString &key, const QVariant &defaultValue) const
bool registerVersion(const QString &version, int namespaceId)
QStringList indicesForFilter(const QStringList &filterAttributes) const
bool fileExists(const QUrl &url) const
bool copyCollectionFile(const QString &fileName)
QStringList namespacesForFilter(const QString &filterName) const
int registerNamespace(const QString &nspace, const QString &fileName)
QHelpCollectionHandler(const QString &collectionFile, QObject *parent=nullptr)
bool registerDocumentation(const QString &fileName)
QList< QStringList > filterAttributeSets(const QString &namespaceName) const
bool setCustomValue(const QString &key, const QVariant &value)
QList< QHelpLink > documentsForIdentifier(const QString &id, const QString &filterName) const
\inmodule QtCore
Transaction(const QString &connectionName)
Combined button and popup list for selecting options.
static QString getTitle(const QByteArray &contents)
static QHelpCollectionHandler::FileInfo extractFileInfo(const QUrl &url)
static QString prepareFilterQuery(int attributesCount, const QString &idTableName, const QString &idColumnName, const QString &filterTableName, const QString &filterColumnName)
static void bindFilterQuery(QSqlQuery *query, int bindStart, const QString &filterName)
static void bindFilterQuery(QSqlQuery *query, int startingBindPos, const QStringList &filterAttributes)
static QString prepareFilterQuery(const QString &filterName)