About
Contact
QtCreator
KDevelop
Solarized
line #s on
1
// Copyright (C) 2024 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
4
#include
"qhelpengineplugin.h"
5
6
#include
<algorithm>
7
#include
<iterator>
8
#include
<memory>
9
10
QT_BEGIN_NAMESPACE
11
12
static
std::
vector
<
QQmlLSHelpProvider
::
DocumentLink
>
13
transformQHelpLink
(
QList
<
QHelpLink
> &&
qhelplinklist
)
14
{
15
std::
vector
<
QQmlLSHelpProvider
::
DocumentLink
>
result
(
qhelplinklist
.
size
());
16
std::
transform
(
first:
qhelplinklist
.
begin
(),
last:
qhelplinklist
.
end
(),
result:
result
.
begin
(),
17
unary_op:
[&](
const
auto
&
item
) {
18
QQmlLSHelpProvider
::
DocumentLink
element
;
19
element
.
title
=
item
.title;
20
element
.
url
=
item
.url;
21
return
element
;
22
});
23
return
result
;
24
}
25
26
QQmlLSHelpProvider
::
QQmlLSHelpProvider
(
const
QString
&
qhcFilePath
,
QObject
*
parent
)
27
{
28
m_helpEngine
.
emplace
(
args:
qhcFilePath
,
args&:
parent
);
29
m_helpEngine
->
setReadOnly
(
false
);
30
m_helpEngine
->
setupData
();
31
}
32
33
bool
QQmlLSHelpProvider
::
registerDocumentation
(
const
QString
&
documentationFileName
)
34
{
35
Q_ASSERT
(
m_helpEngine
.
has_value
());
36
return
m_helpEngine
->
registerDocumentation
(
documentationFileName
);
37
}
38
39
QByteArray
QQmlLSHelpProvider
::
fileData
(
const
QUrl
&
url
)
const
40
{
41
Q_ASSERT
(
m_helpEngine
.
has_value
());
42
return
m_helpEngine
->
fileData
(
url
);
43
}
44
45
std::
vector
<
QQmlLSHelpProvider
::
DocumentLink
>
46
QQmlLSHelpProvider
::
documentsForIdentifier
(
const
QString
&
id
)
const
47
{
48
Q_ASSERT
(
m_helpEngine
.
has_value
());
49
return
transformQHelpLink
(
qhelplinklist:
m_helpEngine
->
documentsForIdentifier
(
id
));
50
}
51
52
std::
vector
<
QQmlLSHelpProvider
::
DocumentLink
>
53
QQmlLSHelpProvider
::
documentsForIdentifier
(
const
QString
&
id
,
const
QString
&
filterName
)
const
54
{
55
Q_ASSERT
(
m_helpEngine
.
has_value
());
56
return
transformQHelpLink
(
qhelplinklist:
m_helpEngine
->
documentsForIdentifier
(
id
,
filterName
));
57
}
58
59
std::
vector
<
QQmlLSHelpProvider
::
DocumentLink
>
60
QQmlLSHelpProvider
::
documentsForKeyword
(
const
QString
&
keyword
)
const
61
{
62
Q_ASSERT
(
m_helpEngine
.
has_value
());
63
return
transformQHelpLink
(
qhelplinklist:
m_helpEngine
->
documentsForKeyword
(
keyword
));
64
}
65
66
std::
vector
<
QQmlLSHelpProvider
::
DocumentLink
>
67
QQmlLSHelpProvider
::
documentsForKeyword
(
const
QString
&
keyword
,
const
QString
&
filter
)
const
68
{
69
Q_ASSERT
(
m_helpEngine
.
has_value
());
70
return
transformQHelpLink
(
qhelplinklist:
m_helpEngine
->
documentsForKeyword
(
keyword
,
filterName:
filter
));
71
}
72
73
QStringList
QQmlLSHelpProvider
::
registeredNamespaces
()
const
74
{
75
Q_ASSERT
(
m_helpEngine
.
has_value
());
76
return
m_helpEngine
->
registeredDocumentations
();
77
}
78
79
QString
QQmlLSHelpProvider
::
error
()
const
80
{
81
Q_ASSERT
(
m_helpEngine
.
has_value
());
82
return
m_helpEngine
->
error
();
83
}
84
85
QHelpEnginePlugin
::
QHelpEnginePlugin
(
QObject
*
parent
) :
QObject
(
parent
) { }
86
87
std::
unique_ptr
<
QQmlLSHelpProviderBase
>
QHelpEnginePlugin
::
initialize
(
const
QString
&
collectionFile
,
88
QObject
*
parent
)
89
{
90
return
std::
make_unique
<
QQmlLSHelpProvider
>(
args:
collectionFile
,
args&:
parent
);
91
}
92
93
QT_END_NAMESPACE
94
95
#include
"moc_qhelpengineplugin.cpp"
96
Definitions
transformQHelpLink
QQmlLSHelpProvider
registerDocumentation
fileData
documentsForIdentifier
documentsForIdentifier
documentsForKeyword
documentsForKeyword
registeredNamespaces
error
QHelpEnginePlugin
Learn Advanced QML with KDAB
Find out more