author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> |
Mon, 04 Oct 2010 01:19:32 +0300 | |
changeset 37 | 758a864f9613 |
parent 33 | 3e2da88830cd |
permissions | -rw-r--r-- |
0 | 1 |
/**************************************************************************** |
2 |
** |
|
18
2f34d5167611
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
3
diff
changeset
|
3 |
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
0 | 4 |
** All rights reserved. |
5 |
** Contact: Nokia Corporation (qt-info@nokia.com) |
|
6 |
** |
|
7 |
** This file is part of the tools applications of the Qt Toolkit. |
|
8 |
** |
|
9 |
** $QT_BEGIN_LICENSE:LGPL$ |
|
10 |
** No Commercial Usage |
|
11 |
** This file contains pre-release code and may not be distributed. |
|
12 |
** You may use this file in accordance with the terms and conditions |
|
13 |
** contained in the Technology Preview License Agreement accompanying |
|
14 |
** this package. |
|
15 |
** |
|
16 |
** GNU Lesser General Public License Usage |
|
17 |
** Alternatively, this file may be used under the terms of the GNU Lesser |
|
18 |
** General Public License version 2.1 as published by the Free Software |
|
19 |
** Foundation and appearing in the file LICENSE.LGPL included in the |
|
20 |
** packaging of this file. Please review the following information to |
|
21 |
** ensure the GNU Lesser General Public License version 2.1 requirements |
|
22 |
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
|
23 |
** |
|
24 |
** In addition, as a special exception, Nokia gives you certain additional |
|
25 |
** rights. These rights are described in the Nokia Qt LGPL Exception |
|
26 |
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
|
27 |
** |
|
28 |
** If you have questions regarding the use of this file, please contact |
|
29 |
** Nokia at qt-info@nokia.com. |
|
30 |
** |
|
31 |
** |
|
32 |
** |
|
33 |
** |
|
34 |
** |
|
35 |
** |
|
36 |
** |
|
37 |
** |
|
38 |
** $QT_END_LICENSE$ |
|
39 |
** |
|
40 |
****************************************************************************/ |
|
41 |
||
42 |
/* |
|
43 |
htmlgenerator.cpp |
|
44 |
*/ |
|
45 |
||
46 |
#include "codemarker.h" |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
47 |
#include "codeparser.h" |
0 | 48 |
#include "helpprojectwriter.h" |
49 |
#include "htmlgenerator.h" |
|
50 |
#include "node.h" |
|
51 |
#include "separator.h" |
|
52 |
#include "tree.h" |
|
53 |
#include <ctype.h> |
|
54 |
||
55 |
#include <qdebug.h> |
|
56 |
#include <qlist.h> |
|
57 |
#include <qiterator.h> |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
58 |
#include <qtextcodec.h> |
0 | 59 |
|
60 |
QT_BEGIN_NAMESPACE |
|
61 |
||
62 |
#define COMMAND_VERSION Doc::alias("version") |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
63 |
int HtmlGenerator::id = 0; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
64 |
bool HtmlGenerator::debugging_on = false; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
65 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
66 |
#if 0 |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
67 |
QString HtmlGenerator::divNavTop = "<div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
68 |
#endif |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
69 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
70 |
QString HtmlGenerator::divNavTop = ""; |
0 | 71 |
|
72 |
QString HtmlGenerator::sinceTitles[] = |
|
73 |
{ |
|
74 |
" New Namespaces", |
|
75 |
" New Classes", |
|
76 |
" New Member Functions", |
|
77 |
" New Functions in Namespaces", |
|
78 |
" New Global Functions", |
|
79 |
" New Macros", |
|
80 |
" New Enum Types", |
|
81 |
" New Typedefs", |
|
82 |
" New Properties", |
|
83 |
" New Variables", |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
84 |
" New QML Elements", |
0 | 85 |
" New Qml Properties", |
86 |
" New Qml Signals", |
|
87 |
" New Qml Methods", |
|
88 |
"" |
|
89 |
}; |
|
90 |
||
91 |
static bool showBrokenLinks = false; |
|
92 |
||
93 |
static QRegExp linkTag("(<@link node=\"([^\"]+)\">).*(</@link>)"); |
|
94 |
static QRegExp funcTag("(<@func target=\"([^\"]*)\">)(.*)(</@func>)"); |
|
95 |
static QRegExp typeTag("(<@(type|headerfile|func)(?: +[^>]*)?>)(.*)(</@\\2>)"); |
|
96 |
static QRegExp spanTag("</@(?:comment|preprocessor|string|char)>"); |
|
97 |
static QRegExp unknownTag("</?@[^>]*>"); |
|
98 |
||
99 |
bool parseArg(const QString &src, |
|
100 |
const QString &tag, |
|
101 |
int *pos, |
|
102 |
int n, |
|
103 |
QStringRef *contents, |
|
104 |
QStringRef *par1 = 0, |
|
105 |
bool debug = false) |
|
106 |
{ |
|
107 |
#define SKIP_CHAR(c) \ |
|
108 |
if (debug) \ |
|
109 |
qDebug() << "looking for " << c << " at " << QString(src.data() + i, n - i); \ |
|
110 |
if (i >= n || src[i] != c) { \ |
|
111 |
if (debug) \ |
|
112 |
qDebug() << " char '" << c << "' not found"; \ |
|
113 |
return false; \ |
|
114 |
} \ |
|
115 |
++i; |
|
116 |
||
117 |
||
118 |
#define SKIP_SPACE \ |
|
119 |
while (i < n && src[i] == ' ') \ |
|
120 |
++i; |
|
121 |
||
122 |
int i = *pos; |
|
123 |
int j = i; |
|
124 |
||
125 |
// assume "<@" has been parsed outside |
|
126 |
//SKIP_CHAR('<'); |
|
127 |
//SKIP_CHAR('@'); |
|
128 |
||
129 |
if (tag != QStringRef(&src, i, tag.length())) { |
|
130 |
if (0 && debug) |
|
131 |
qDebug() << "tag " << tag << " not found at " << i; |
|
132 |
return false; |
|
133 |
} |
|
134 |
||
135 |
if (debug) |
|
136 |
qDebug() << "haystack:" << src << "needle:" << tag << "i:" <<i; |
|
137 |
||
138 |
// skip tag |
|
139 |
i += tag.length(); |
|
140 |
||
141 |
// parse stuff like: linkTag("(<@link node=\"([^\"]+)\">).*(</@link>)"); |
|
142 |
if (par1) { |
|
143 |
SKIP_SPACE; |
|
144 |
// read parameter name |
|
145 |
j = i; |
|
146 |
while (i < n && src[i].isLetter()) |
|
147 |
++i; |
|
148 |
if (src[i] == '=') { |
|
149 |
if (debug) |
|
150 |
qDebug() << "read parameter" << QString(src.data() + j, i - j); |
|
151 |
SKIP_CHAR('='); |
|
152 |
SKIP_CHAR('"'); |
|
153 |
// skip parameter name |
|
154 |
j = i; |
|
155 |
while (i < n && src[i] != '"') |
|
156 |
++i; |
|
157 |
*par1 = QStringRef(&src, j, i - j); |
|
158 |
SKIP_CHAR('"'); |
|
159 |
SKIP_SPACE; |
|
160 |
} else { |
|
161 |
if (debug) |
|
162 |
qDebug() << "no optional parameter found"; |
|
163 |
} |
|
164 |
} |
|
165 |
SKIP_SPACE; |
|
166 |
SKIP_CHAR('>'); |
|
167 |
||
168 |
// find contents up to closing "</@tag> |
|
169 |
j = i; |
|
170 |
for (; true; ++i) { |
|
171 |
if (i + 4 + tag.length() > n) |
|
172 |
return false; |
|
173 |
if (src[i] != '<') |
|
174 |
continue; |
|
175 |
if (src[i + 1] != '/') |
|
176 |
continue; |
|
177 |
if (src[i + 2] != '@') |
|
178 |
continue; |
|
179 |
if (tag != QStringRef(&src, i + 3, tag.length())) |
|
180 |
continue; |
|
181 |
if (src[i + 3 + tag.length()] != '>') |
|
182 |
continue; |
|
183 |
break; |
|
184 |
} |
|
185 |
||
186 |
*contents = QStringRef(&src, j, i - j); |
|
187 |
||
188 |
i += tag.length() + 4; |
|
189 |
||
190 |
*pos = i; |
|
191 |
if (debug) |
|
192 |
qDebug() << " tag " << tag << " found: pos now: " << i; |
|
193 |
return true; |
|
194 |
#undef SKIP_CHAR |
|
195 |
} |
|
196 |
||
197 |
static void addLink(const QString &linkTarget, |
|
198 |
const QStringRef &nestedStuff, |
|
199 |
QString *res) |
|
200 |
{ |
|
201 |
if (!linkTarget.isEmpty()) { |
|
202 |
*res += "<a href=\""; |
|
203 |
*res += linkTarget; |
|
204 |
*res += "\">"; |
|
205 |
*res += nestedStuff; |
|
206 |
*res += "</a>"; |
|
207 |
} |
|
208 |
else { |
|
209 |
*res += nestedStuff; |
|
210 |
} |
|
211 |
} |
|
212 |
||
213 |
||
214 |
HtmlGenerator::HtmlGenerator() |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
215 |
: helpProjectWriter(0), |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
216 |
inLink(false), |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
217 |
inContents(false), |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
218 |
inSectionHeading(false), |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
219 |
inTableHeader(false), |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
220 |
numTableRows(0), |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
221 |
threeColumnEnumValueTable(true), |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
222 |
application(Online), |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
223 |
funcLeftParen("\\S(\\()"), |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
224 |
myTree(0), |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
225 |
slow(false), |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
226 |
obsoleteLinks(false) |
0 | 227 |
{ |
228 |
} |
|
229 |
||
230 |
HtmlGenerator::~HtmlGenerator() |
|
231 |
{ |
|
232 |
if (helpProjectWriter) |
|
233 |
delete helpProjectWriter; |
|
234 |
} |
|
235 |
||
236 |
void HtmlGenerator::initializeGenerator(const Config &config) |
|
237 |
{ |
|
238 |
static const struct { |
|
239 |
const char *key; |
|
240 |
const char *left; |
|
241 |
const char *right; |
|
242 |
} defaults[] = { |
|
243 |
{ ATOM_FORMATTING_BOLD, "<b>", "</b>" }, |
|
244 |
{ ATOM_FORMATTING_INDEX, "<!--", "-->" }, |
|
245 |
{ ATOM_FORMATTING_ITALIC, "<i>", "</i>" }, |
|
246 |
{ ATOM_FORMATTING_PARAMETER, "<i>", "</i>" }, |
|
247 |
{ ATOM_FORMATTING_SUBSCRIPT, "<sub>", "</sub>" }, |
|
248 |
{ ATOM_FORMATTING_SUPERSCRIPT, "<sup>", "</sup>" }, |
|
249 |
{ ATOM_FORMATTING_TELETYPE, "<tt>", "</tt>" }, |
|
250 |
{ ATOM_FORMATTING_UNDERLINE, "<u>", "</u>" }, |
|
251 |
{ 0, 0, 0 } |
|
252 |
}; |
|
253 |
||
254 |
Generator::initializeGenerator(config); |
|
255 |
obsoleteLinks = config.getBool(QLatin1String(CONFIG_OBSOLETELINKS)); |
|
256 |
setImageFileExtensions(QStringList() << "png" << "jpg" << "jpeg" << "gif"); |
|
257 |
int i = 0; |
|
258 |
while (defaults[i].key) { |
|
259 |
formattingLeftMap().insert(defaults[i].key, defaults[i].left); |
|
260 |
formattingRightMap().insert(defaults[i].key, defaults[i].right); |
|
261 |
i++; |
|
262 |
} |
|
263 |
||
264 |
style = config.getString(HtmlGenerator::format() + |
|
265 |
Config::dot + |
|
266 |
HTMLGENERATOR_STYLE); |
|
267 |
postHeader = config.getString(HtmlGenerator::format() + |
|
268 |
Config::dot + |
|
269 |
HTMLGENERATOR_POSTHEADER); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
270 |
postPostHeader = config.getString(HtmlGenerator::format() + |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
271 |
Config::dot + |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
272 |
HTMLGENERATOR_POSTPOSTHEADER); |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
273 |
creatorPostHeader = config.getString(HtmlGenerator::format() + |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
274 |
Config::dot + |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
275 |
HTMLGENERATOR_CREATORPOSTHEADER); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
276 |
creatorPostPostHeader = config.getString(HtmlGenerator::format() + |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
277 |
Config::dot + |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
278 |
HTMLGENERATOR_CREATORPOSTPOSTHEADER); |
0 | 279 |
footer = config.getString(HtmlGenerator::format() + |
280 |
Config::dot + |
|
281 |
HTMLGENERATOR_FOOTER); |
|
282 |
address = config.getString(HtmlGenerator::format() + |
|
283 |
Config::dot + |
|
284 |
HTMLGENERATOR_ADDRESS); |
|
285 |
pleaseGenerateMacRef = config.getBool(HtmlGenerator::format() + |
|
286 |
Config::dot + |
|
287 |
HTMLGENERATOR_GENERATEMACREFS); |
|
288 |
||
289 |
project = config.getString(CONFIG_PROJECT); |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
290 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
291 |
QString app = config.getString(CONFIG_APPLICATION); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
292 |
if (app == "online") |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
293 |
application = Online; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
294 |
else if (app == "creator") |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
295 |
application = Creator; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
296 |
else |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
297 |
application = Creator; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
298 |
|
0 | 299 |
projectDescription = config.getString(CONFIG_DESCRIPTION); |
300 |
if (projectDescription.isEmpty() && !project.isEmpty()) |
|
301 |
projectDescription = project + " Reference Documentation"; |
|
302 |
||
303 |
projectUrl = config.getString(CONFIG_URL); |
|
304 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
305 |
outputEncoding = config.getString(CONFIG_OUTPUTENCODING); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
306 |
if (outputEncoding.isEmpty()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
307 |
outputEncoding = QLatin1String("ISO-8859-1"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
308 |
outputCodec = QTextCodec::codecForName(outputEncoding.toLocal8Bit()); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
309 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
310 |
naturalLanguage = config.getString(CONFIG_NATURALLANGUAGE); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
311 |
if (naturalLanguage.isEmpty()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
312 |
naturalLanguage = QLatin1String("en"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
313 |
|
0 | 314 |
QSet<QString> editionNames = config.subVars(CONFIG_EDITION); |
315 |
QSet<QString>::ConstIterator edition = editionNames.begin(); |
|
316 |
while (edition != editionNames.end()) { |
|
317 |
QString editionName = *edition; |
|
318 |
QStringList editionModules = config.getStringList(CONFIG_EDITION + |
|
319 |
Config::dot + |
|
320 |
editionName + |
|
321 |
Config::dot + |
|
322 |
"modules"); |
|
323 |
QStringList editionGroups = config.getStringList(CONFIG_EDITION + |
|
324 |
Config::dot + |
|
325 |
editionName + |
|
326 |
Config::dot + |
|
327 |
"groups"); |
|
328 |
||
329 |
if (!editionModules.isEmpty()) |
|
330 |
editionModuleMap[editionName] = editionModules; |
|
331 |
if (!editionGroups.isEmpty()) |
|
332 |
editionGroupMap[editionName] = editionGroups; |
|
333 |
||
334 |
++edition; |
|
335 |
} |
|
336 |
||
337 |
slow = config.getBool(CONFIG_SLOW); |
|
338 |
||
339 |
stylesheets = config.getStringList(HtmlGenerator::format() + |
|
340 |
Config::dot + |
|
341 |
HTMLGENERATOR_STYLESHEETS); |
|
342 |
customHeadElements = config.getStringList(HtmlGenerator::format() + |
|
343 |
Config::dot + |
|
344 |
HTMLGENERATOR_CUSTOMHEADELEMENTS); |
|
345 |
codeIndent = config.getInt(CONFIG_CODEINDENT); |
|
346 |
||
347 |
helpProjectWriter = new HelpProjectWriter(config, |
|
348 |
project.toLower() + |
|
349 |
".qhp"); |
|
350 |
} |
|
351 |
||
352 |
void HtmlGenerator::terminateGenerator() |
|
353 |
{ |
|
354 |
Generator::terminateGenerator(); |
|
355 |
} |
|
356 |
||
357 |
QString HtmlGenerator::format() |
|
358 |
{ |
|
359 |
return "HTML"; |
|
360 |
} |
|
361 |
||
362 |
/*! |
|
363 |
This is where the html files and dcf files are written. |
|
364 |
\note The html file generation is done in the base class, |
|
365 |
PageGenerator::generateTree(). |
|
366 |
*/ |
|
367 |
void HtmlGenerator::generateTree(const Tree *tree, CodeMarker *marker) |
|
368 |
{ |
|
369 |
myTree = tree; |
|
370 |
nonCompatClasses.clear(); |
|
371 |
mainClasses.clear(); |
|
372 |
compatClasses.clear(); |
|
373 |
obsoleteClasses.clear(); |
|
374 |
moduleClassMap.clear(); |
|
375 |
moduleNamespaceMap.clear(); |
|
376 |
funcIndex.clear(); |
|
377 |
legaleseTexts.clear(); |
|
378 |
serviceClasses.clear(); |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
379 |
qmlClasses.clear(); |
0 | 380 |
findAllClasses(tree->root()); |
381 |
findAllFunctions(tree->root()); |
|
382 |
findAllLegaleseTexts(tree->root()); |
|
383 |
findAllNamespaces(tree->root()); |
|
384 |
findAllSince(tree->root()); |
|
385 |
||
386 |
PageGenerator::generateTree(tree, marker); |
|
387 |
||
388 |
dcfClassesRoot.ref = "classes.html"; |
|
389 |
dcfClassesRoot.title = "Classes"; |
|
390 |
qSort(dcfClassesRoot.subsections); |
|
391 |
||
392 |
dcfOverviewsRoot.ref = "overviews.html"; |
|
393 |
dcfOverviewsRoot.title = "Overviews"; |
|
394 |
qSort(dcfOverviewsRoot.subsections); |
|
395 |
||
396 |
dcfExamplesRoot.ref = "examples.html"; |
|
397 |
dcfExamplesRoot.title = "Tutorial & Examples"; |
|
398 |
qSort(dcfExamplesRoot.subsections); |
|
399 |
||
400 |
DcfSection qtRoot; |
|
401 |
appendDcfSubSection(&qtRoot, dcfClassesRoot); |
|
402 |
appendDcfSubSection(&qtRoot, dcfOverviewsRoot); |
|
403 |
appendDcfSubSection(&qtRoot, dcfExamplesRoot); |
|
404 |
||
405 |
generateDcf(project.toLower().simplified().replace(" ", "-"), |
|
406 |
"index.html", |
|
407 |
projectDescription, qtRoot); |
|
408 |
generateDcf("designer", |
|
409 |
"designer-manual.html", |
|
410 |
"Qt Designer Manual", |
|
411 |
dcfDesignerRoot); |
|
412 |
generateDcf("linguist", |
|
413 |
"linguist-manual.html", |
|
414 |
"Qt Linguist Manual", |
|
415 |
dcfLinguistRoot); |
|
416 |
generateDcf("assistant", |
|
417 |
"assistant-manual.html", |
|
418 |
"Qt Assistant Manual", |
|
419 |
dcfAssistantRoot); |
|
420 |
generateDcf("qmake", |
|
421 |
"qmake-manual.html", |
|
422 |
"qmake Manual", |
|
423 |
dcfQmakeRoot); |
|
424 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
425 |
QString fileBase = project.toLower().simplified().replace(" ", "-"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
426 |
generateIndex(fileBase, projectUrl, projectDescription); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
427 |
generatePageIndex(outputDir() + "/" + fileBase + ".pageindex", marker); |
0 | 428 |
|
429 |
helpProjectWriter->generate(myTree); |
|
430 |
} |
|
431 |
||
432 |
void HtmlGenerator::startText(const Node * /* relative */, |
|
433 |
CodeMarker * /* marker */) |
|
434 |
{ |
|
435 |
inLink = false; |
|
436 |
inContents = false; |
|
437 |
inSectionHeading = false; |
|
438 |
inTableHeader = false; |
|
439 |
numTableRows = 0; |
|
440 |
threeColumnEnumValueTable = true; |
|
441 |
link.clear(); |
|
442 |
sectionNumber.clear(); |
|
443 |
} |
|
444 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
445 |
/*! |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
446 |
Generate html from an instance of Atom. |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
447 |
*/ |
0 | 448 |
int HtmlGenerator::generateAtom(const Atom *atom, |
449 |
const Node *relative, |
|
450 |
CodeMarker *marker) |
|
451 |
{ |
|
452 |
int skipAhead = 0; |
|
453 |
static bool in_para = false; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
454 |
|
0 | 455 |
switch (atom->type()) { |
456 |
case Atom::AbstractLeft: |
|
457 |
break; |
|
458 |
case Atom::AbstractRight: |
|
459 |
break; |
|
460 |
case Atom::AutoLink: |
|
461 |
if (!inLink && !inContents && !inSectionHeading) { |
|
462 |
const Node *node = 0; |
|
463 |
QString link = getLink(atom, relative, marker, &node); |
|
464 |
if (!link.isEmpty()) { |
|
465 |
beginLink(link, node, relative, marker); |
|
466 |
generateLink(atom, relative, marker); |
|
467 |
endLink(); |
|
468 |
} |
|
469 |
else { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
470 |
out() << protectEnc(atom->string()); |
0 | 471 |
} |
472 |
} |
|
473 |
else { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
474 |
out() << protectEnc(atom->string()); |
0 | 475 |
} |
476 |
break; |
|
477 |
case Atom::BaseName: |
|
478 |
break; |
|
479 |
case Atom::BriefLeft: |
|
480 |
if (relative->type() == Node::Fake) { |
|
481 |
skipAhead = skipAtoms(atom, Atom::BriefRight); |
|
482 |
break; |
|
483 |
} |
|
484 |
||
485 |
out() << "<p>"; |
|
486 |
if (relative->type() == Node::Property || |
|
487 |
relative->type() == Node::Variable) { |
|
488 |
QString str; |
|
489 |
atom = atom->next(); |
|
490 |
while (atom != 0 && atom->type() != Atom::BriefRight) { |
|
491 |
if (atom->type() == Atom::String || |
|
492 |
atom->type() == Atom::AutoLink) |
|
493 |
str += atom->string(); |
|
494 |
skipAhead++; |
|
495 |
atom = atom->next(); |
|
496 |
} |
|
497 |
str[0] = str[0].toLower(); |
|
498 |
if (str.right(1) == ".") |
|
499 |
str.truncate(str.length() - 1); |
|
500 |
out() << "This "; |
|
501 |
if (relative->type() == Node::Property) |
|
502 |
out() << "property"; |
|
503 |
else |
|
504 |
out() << "variable"; |
|
505 |
QStringList words = str.split(" "); |
|
506 |
if (!(words.first() == "contains" || words.first() == "specifies" |
|
507 |
|| words.first() == "describes" || words.first() == "defines" |
|
508 |
|| words.first() == "holds" || words.first() == "determines")) |
|
509 |
out() << " holds "; |
|
510 |
else |
|
511 |
out() << " "; |
|
512 |
out() << str << "."; |
|
513 |
} |
|
514 |
break; |
|
515 |
case Atom::BriefRight: |
|
516 |
if (relative->type() != Node::Fake) |
|
517 |
out() << "</p>\n"; |
|
518 |
break; |
|
519 |
case Atom::C: |
|
520 |
out() << formattingLeftMap()[ATOM_FORMATTING_TELETYPE]; |
|
521 |
if (inLink) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
522 |
out() << protectEnc(plainCode(atom->string())); |
0 | 523 |
} |
524 |
else { |
|
525 |
out() << highlightedCode(atom->string(), marker, relative); |
|
526 |
} |
|
527 |
out() << formattingRightMap()[ATOM_FORMATTING_TELETYPE]; |
|
528 |
break; |
|
529 |
case Atom::Code: |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
530 |
out() << "<pre class=\"highlightedCode brush: cpp\">" |
0 | 531 |
<< trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()), |
532 |
marker,relative)) |
|
533 |
<< "</pre>\n"; |
|
534 |
break; |
|
535 |
#ifdef QDOC_QML |
|
536 |
case Atom::Qml: |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
537 |
out() << "<pre class=\"highlightedCode brush: cpp\">" |
0 | 538 |
<< trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()), |
539 |
marker,relative)) |
|
540 |
<< "</pre>\n"; |
|
541 |
break; |
|
542 |
#endif |
|
543 |
case Atom::CodeNew: |
|
544 |
out() << "<p>you can rewrite it as</p>\n" |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
545 |
<< "<pre class=\"highlightedCode brush: cpp\">" |
0 | 546 |
<< trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()), |
547 |
marker,relative)) |
|
548 |
<< "</pre>\n"; |
|
549 |
break; |
|
550 |
case Atom::CodeOld: |
|
551 |
out() << "<p>For example, if you have code like</p>\n"; |
|
552 |
// fallthrough |
|
553 |
case Atom::CodeBad: |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
554 |
out() << "<pre class=\"highlightedCode brush: cpp\">" |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
555 |
<< trimmedTrailing(protectEnc(plainCode(indent(codeIndent,atom->string())))) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
556 |
<< "</pre>\n"; |
0 | 557 |
break; |
558 |
case Atom::FootnoteLeft: |
|
559 |
// ### For now |
|
560 |
if (in_para) { |
|
561 |
out() << "</p>\n"; |
|
562 |
in_para = false; |
|
563 |
} |
|
564 |
out() << "<!-- "; |
|
565 |
break; |
|
566 |
case Atom::FootnoteRight: |
|
567 |
// ### For now |
|
568 |
out() << "-->"; |
|
569 |
break; |
|
570 |
case Atom::FormatElse: |
|
571 |
case Atom::FormatEndif: |
|
572 |
case Atom::FormatIf: |
|
573 |
break; |
|
574 |
case Atom::FormattingLeft: |
|
575 |
out() << formattingLeftMap()[atom->string()]; |
|
576 |
if (atom->string() == ATOM_FORMATTING_PARAMETER) { |
|
577 |
if (atom->next() != 0 && atom->next()->type() == Atom::String) { |
|
578 |
QRegExp subscriptRegExp("([a-z]+)_([0-9n])"); |
|
579 |
if (subscriptRegExp.exactMatch(atom->next()->string())) { |
|
580 |
out() << subscriptRegExp.cap(1) << "<sub>" |
|
581 |
<< subscriptRegExp.cap(2) << "</sub>"; |
|
582 |
skipAhead = 1; |
|
583 |
} |
|
584 |
} |
|
585 |
} |
|
586 |
break; |
|
587 |
case Atom::FormattingRight: |
|
588 |
if (atom->string() == ATOM_FORMATTING_LINK) { |
|
589 |
endLink(); |
|
590 |
} |
|
591 |
else { |
|
592 |
out() << formattingRightMap()[atom->string()]; |
|
593 |
} |
|
594 |
break; |
|
595 |
case Atom::AnnotatedList: |
|
596 |
{ |
|
597 |
QList<Node*> values = myTree->groups().values(atom->string()); |
|
598 |
NodeMap nodeMap; |
|
599 |
for (int i = 0; i < values.size(); ++i) { |
|
600 |
const Node* n = values.at(i); |
|
601 |
if ((n->status() != Node::Internal) && (n->access() != Node::Private)) { |
|
602 |
nodeMap.insert(n->nameForLists(),n); |
|
603 |
} |
|
604 |
} |
|
605 |
generateAnnotatedList(relative, marker, nodeMap); |
|
606 |
} |
|
607 |
break; |
|
608 |
case Atom::GeneratedList: |
|
609 |
if (atom->string() == "annotatedclasses") { |
|
610 |
generateAnnotatedList(relative, marker, nonCompatClasses); |
|
611 |
} |
|
612 |
else if (atom->string() == "classes") { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
613 |
generateCompactList(relative, marker, nonCompatClasses, true); |
0 | 614 |
} |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
615 |
else if (atom->string() == "qmlclasses") { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
616 |
generateCompactList(relative, marker, qmlClasses, true); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
617 |
} |
0 | 618 |
else if (atom->string().contains("classesbymodule")) { |
619 |
QString arg = atom->string().trimmed(); |
|
620 |
QString moduleName = atom->string().mid(atom->string().indexOf( |
|
621 |
"classesbymodule") + 15).trimmed(); |
|
622 |
if (moduleClassMap.contains(moduleName)) |
|
623 |
generateAnnotatedList(relative, marker, moduleClassMap[moduleName]); |
|
624 |
} |
|
625 |
else if (atom->string().contains("classesbyedition")) { |
|
626 |
||
627 |
QString arg = atom->string().trimmed(); |
|
628 |
QString editionName = atom->string().mid(atom->string().indexOf( |
|
629 |
"classesbyedition") + 16).trimmed(); |
|
630 |
||
631 |
if (editionModuleMap.contains(editionName)) { |
|
632 |
||
633 |
// Add all classes in the modules listed for that edition. |
|
634 |
NodeMap editionClasses; |
|
635 |
foreach (const QString &moduleName, editionModuleMap[editionName]) { |
|
636 |
if (moduleClassMap.contains(moduleName)) |
|
637 |
editionClasses.unite(moduleClassMap[moduleName]); |
|
638 |
} |
|
639 |
||
640 |
// Add additional groups and remove groups of classes that |
|
641 |
// should be excluded from the edition. |
|
642 |
||
643 |
QMultiMap <QString, Node *> groups = myTree->groups(); |
|
644 |
foreach (const QString &groupName, editionGroupMap[editionName]) { |
|
645 |
QList<Node *> groupClasses; |
|
646 |
if (groupName.startsWith("-")) { |
|
647 |
groupClasses = groups.values(groupName.mid(1)); |
|
648 |
foreach (const Node *node, groupClasses) |
|
649 |
editionClasses.remove(node->name()); |
|
650 |
} |
|
651 |
else { |
|
652 |
groupClasses = groups.values(groupName); |
|
653 |
foreach (const Node *node, groupClasses) |
|
654 |
editionClasses.insert(node->name(), node); |
|
655 |
} |
|
656 |
} |
|
657 |
generateAnnotatedList(relative, marker, editionClasses); |
|
658 |
} |
|
659 |
} |
|
660 |
else if (atom->string() == "classhierarchy") { |
|
661 |
generateClassHierarchy(relative, marker, nonCompatClasses); |
|
662 |
} |
|
663 |
else if (atom->string() == "compatclasses") { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
664 |
generateCompactList(relative, marker, compatClasses, false); |
0 | 665 |
} |
666 |
else if (atom->string() == "obsoleteclasses") { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
667 |
generateCompactList(relative, marker, obsoleteClasses, false); |
0 | 668 |
} |
669 |
else if (atom->string() == "functionindex") { |
|
670 |
generateFunctionIndex(relative, marker); |
|
671 |
} |
|
672 |
else if (atom->string() == "legalese") { |
|
673 |
generateLegaleseList(relative, marker); |
|
674 |
} |
|
675 |
else if (atom->string() == "mainclasses") { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
676 |
generateCompactList(relative, marker, mainClasses, true); |
0 | 677 |
} |
678 |
else if (atom->string() == "services") { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
679 |
generateCompactList(relative, marker, serviceClasses, false); |
0 | 680 |
} |
681 |
else if (atom->string() == "overviews") { |
|
682 |
generateOverviewList(relative, marker); |
|
683 |
} |
|
684 |
else if (atom->string() == "namespaces") { |
|
685 |
generateAnnotatedList(relative, marker, namespaceIndex); |
|
686 |
} |
|
687 |
else if (atom->string() == "related") { |
|
688 |
const FakeNode *fake = static_cast<const FakeNode *>(relative); |
|
689 |
if (fake && !fake->groupMembers().isEmpty()) { |
|
690 |
NodeMap groupMembersMap; |
|
691 |
foreach (const Node *node, fake->groupMembers()) { |
|
692 |
if (node->type() == Node::Fake) |
|
693 |
groupMembersMap[fullName(node, relative, marker)] = node; |
|
694 |
} |
|
695 |
generateAnnotatedList(fake, marker, groupMembersMap); |
|
696 |
} |
|
697 |
} |
|
698 |
else if (atom->string() == "relatedinline") { |
|
699 |
const FakeNode *fake = static_cast<const FakeNode *>(relative); |
|
700 |
if (fake && !fake->groupMembers().isEmpty()) { |
|
701 |
// Reverse the list into the original scan order. |
|
702 |
// Should be sorted. But on what? It may not be a |
|
703 |
// regular class or page definition. |
|
704 |
QList<const Node *> list; |
|
705 |
foreach (const Node *node, fake->groupMembers()) |
|
706 |
list.prepend(node); |
|
707 |
foreach (const Node *node, list) |
|
708 |
generateBody(node, marker); |
|
709 |
} |
|
710 |
} |
|
711 |
break; |
|
712 |
case Atom::SinceList: |
|
713 |
{ |
|
714 |
NewSinceMaps::const_iterator nsmap; |
|
715 |
nsmap = newSinceMaps.find(atom->string()); |
|
716 |
NewClassMaps::const_iterator ncmap; |
|
717 |
ncmap = newClassMaps.find(atom->string()); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
718 |
NewClassMaps::const_iterator nqcmap; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
719 |
nqcmap = newQmlClassMaps.find(atom->string()); |
0 | 720 |
if ((nsmap != newSinceMaps.constEnd()) && !nsmap.value().isEmpty()) { |
721 |
QList<Section> sections; |
|
722 |
QList<Section>::ConstIterator s; |
|
723 |
for (int i=0; i<LastSinceType; ++i) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
724 |
sections.append(Section(sinceTitle(i),QString(),QString(),QString())); |
0 | 725 |
|
726 |
NodeMultiMap::const_iterator n = nsmap.value().constBegin(); |
|
727 |
while (n != nsmap.value().constEnd()) { |
|
728 |
const Node* node = n.value(); |
|
729 |
switch (node->type()) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
730 |
case Node::Fake: |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
731 |
if (node->subType() == Node::QmlClass) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
732 |
sections[QmlClass].appendMember((Node*)node); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
733 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
734 |
break; |
0 | 735 |
case Node::Namespace: |
736 |
sections[Namespace].appendMember((Node*)node); |
|
737 |
break; |
|
738 |
case Node::Class: |
|
739 |
sections[Class].appendMember((Node*)node); |
|
740 |
break; |
|
741 |
case Node::Enum: |
|
742 |
sections[Enum].appendMember((Node*)node); |
|
743 |
break; |
|
744 |
case Node::Typedef: |
|
745 |
sections[Typedef].appendMember((Node*)node); |
|
746 |
break; |
|
747 |
case Node::Function: { |
|
748 |
const FunctionNode* fn = static_cast<const FunctionNode*>(node); |
|
749 |
if (fn->isMacro()) |
|
750 |
sections[Macro].appendMember((Node*)node); |
|
751 |
else { |
|
752 |
Node* p = fn->parent(); |
|
753 |
if (p) { |
|
754 |
if (p->type() == Node::Class) |
|
755 |
sections[MemberFunction].appendMember((Node*)node); |
|
756 |
else if (p->type() == Node::Namespace) { |
|
757 |
if (p->name().isEmpty()) |
|
758 |
sections[GlobalFunction].appendMember((Node*)node); |
|
759 |
else |
|
760 |
sections[NamespaceFunction].appendMember((Node*)node); |
|
761 |
} |
|
762 |
else |
|
763 |
sections[GlobalFunction].appendMember((Node*)node); |
|
764 |
} |
|
765 |
else |
|
766 |
sections[GlobalFunction].appendMember((Node*)node); |
|
767 |
} |
|
768 |
break; |
|
769 |
} |
|
770 |
case Node::Property: |
|
771 |
sections[Property].appendMember((Node*)node); |
|
772 |
break; |
|
773 |
case Node::Variable: |
|
774 |
sections[Variable].appendMember((Node*)node); |
|
775 |
break; |
|
776 |
case Node::QmlProperty: |
|
777 |
sections[QmlProperty].appendMember((Node*)node); |
|
778 |
break; |
|
779 |
case Node::QmlSignal: |
|
780 |
sections[QmlSignal].appendMember((Node*)node); |
|
781 |
break; |
|
782 |
case Node::QmlMethod: |
|
783 |
sections[QmlMethod].appendMember((Node*)node); |
|
784 |
break; |
|
785 |
default: |
|
786 |
break; |
|
787 |
} |
|
788 |
++n; |
|
789 |
} |
|
790 |
||
791 |
/* |
|
792 |
First generate the table of contents. |
|
793 |
*/ |
|
794 |
out() << "<ul>\n"; |
|
795 |
s = sections.constBegin(); |
|
796 |
while (s != sections.constEnd()) { |
|
797 |
if (!(*s).members.isEmpty()) { |
|
798 |
||
799 |
out() << "<li>" |
|
800 |
<< "<a href=\"#" |
|
801 |
<< Doc::canonicalTitle((*s).name) |
|
802 |
<< "\">" |
|
803 |
<< (*s).name |
|
804 |
<< "</a></li>\n"; |
|
805 |
} |
|
806 |
++s; |
|
807 |
} |
|
808 |
out() << "</ul>\n"; |
|
809 |
||
810 |
int idx = 0; |
|
811 |
s = sections.constBegin(); |
|
812 |
while (s != sections.constEnd()) { |
|
813 |
if (!(*s).members.isEmpty()) { |
|
814 |
out() << "<a name=\"" |
|
815 |
<< Doc::canonicalTitle((*s).name) |
|
816 |
<< "\"></a>\n"; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
817 |
out() << "<h3>" << protectEnc((*s).name) << "</h3>\n"; |
0 | 818 |
if (idx == Class) |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
819 |
generateCompactList(0, marker, ncmap.value(), false, QString("Q")); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
820 |
else if (idx == QmlClass) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
821 |
generateCompactList(0, marker, nqcmap.value(), false, QString("Q")); |
0 | 822 |
else if (idx == MemberFunction) { |
823 |
ParentMaps parentmaps; |
|
824 |
ParentMaps::iterator pmap; |
|
825 |
NodeList::const_iterator i = s->members.constBegin(); |
|
826 |
while (i != s->members.constEnd()) { |
|
827 |
Node* p = (*i)->parent(); |
|
828 |
pmap = parentmaps.find(p); |
|
829 |
if (pmap == parentmaps.end()) |
|
830 |
pmap = parentmaps.insert(p,NodeMultiMap()); |
|
831 |
pmap->insert((*i)->name(),(*i)); |
|
832 |
++i; |
|
833 |
} |
|
834 |
pmap = parentmaps.begin(); |
|
835 |
while (pmap != parentmaps.end()) { |
|
836 |
NodeList nlist = pmap->values(); |
|
837 |
out() << "<p>Class "; |
|
838 |
||
839 |
out() << "<a href=\"" |
|
840 |
<< linkForNode(pmap.key(), 0) |
|
841 |
<< "\">"; |
|
842 |
QStringList pieces = fullName(pmap.key(), 0, marker).split("::"); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
843 |
out() << protectEnc(pieces.last()); |
0 | 844 |
out() << "</a>" << ":</p>\n"; |
845 |
||
846 |
generateSection(nlist, 0, marker, CodeMarker::Summary); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
847 |
out() << "<br/>"; |
0 | 848 |
++pmap; |
849 |
} |
|
850 |
} |
|
851 |
else |
|
852 |
generateSection(s->members, 0, marker, CodeMarker::Summary); |
|
853 |
} |
|
854 |
++idx; |
|
855 |
++s; |
|
856 |
} |
|
857 |
} |
|
858 |
} |
|
859 |
break; |
|
860 |
case Atom::Image: |
|
861 |
case Atom::InlineImage: |
|
862 |
{ |
|
863 |
QString fileName = imageFileName(relative, atom->string()); |
|
864 |
QString text; |
|
865 |
if (atom->next() != 0) |
|
866 |
text = atom->next()->string(); |
|
867 |
if (atom->type() == Atom::Image) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
868 |
out() << "<p class=\"centerAlign\">"; |
0 | 869 |
if (fileName.isEmpty()) { |
870 |
out() << "<font color=\"red\">[Missing image " |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
871 |
<< protectEnc(atom->string()) << "]</font>"; |
0 | 872 |
} |
873 |
else { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
874 |
out() << "<img src=\"" << protectEnc(fileName) << "\""; |
0 | 875 |
if (!text.isEmpty()) |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
876 |
out() << " alt=\"" << protectEnc(text) << "\""; |
0 | 877 |
out() << " />"; |
878 |
helpProjectWriter->addExtraFile(fileName); |
|
879 |
} |
|
880 |
if (atom->type() == Atom::Image) |
|
881 |
out() << "</p>"; |
|
882 |
} |
|
883 |
break; |
|
884 |
case Atom::ImageText: |
|
885 |
break; |
|
886 |
case Atom::LegaleseLeft: |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
887 |
out() << "<div class=\"LegaleseLeft\">"; |
0 | 888 |
break; |
889 |
case Atom::LegaleseRight: |
|
890 |
out() << "</div>"; |
|
891 |
break; |
|
892 |
case Atom::LineBreak: |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
893 |
out() << "<br/>"; |
0 | 894 |
break; |
895 |
case Atom::Link: |
|
896 |
{ |
|
897 |
const Node *node = 0; |
|
898 |
QString myLink = getLink(atom, relative, marker, &node); |
|
899 |
if (myLink.isEmpty()) { |
|
900 |
relative->doc().location().warning(tr("Cannot link to '%1' in %2") |
|
901 |
.arg(atom->string()) |
|
902 |
.arg(marker->plainFullName(relative))); |
|
903 |
} |
|
904 |
beginLink(myLink, node, relative, marker); |
|
905 |
skipAhead = 1; |
|
906 |
} |
|
907 |
break; |
|
908 |
case Atom::LinkNode: |
|
909 |
{ |
|
910 |
const Node *node = CodeMarker::nodeForString(atom->string()); |
|
911 |
beginLink(linkForNode(node, relative), node, relative, marker); |
|
912 |
skipAhead = 1; |
|
913 |
} |
|
914 |
break; |
|
915 |
case Atom::ListLeft: |
|
916 |
if (in_para) { |
|
917 |
out() << "</p>\n"; |
|
918 |
in_para = false; |
|
919 |
} |
|
920 |
if (atom->string() == ATOM_LIST_BULLET) { |
|
921 |
out() << "<ul>\n"; |
|
922 |
} |
|
923 |
else if (atom->string() == ATOM_LIST_TAG) { |
|
924 |
out() << "<dl>\n"; |
|
925 |
} |
|
926 |
else if (atom->string() == ATOM_LIST_VALUE) { |
|
927 |
threeColumnEnumValueTable = isThreeColumnEnumValueTable(atom); |
|
928 |
if (threeColumnEnumValueTable) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
929 |
out() << "<table class=\"valuelist\">"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
930 |
// << "<tr>" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
931 |
if (++numTableRows % 2 == 1) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
932 |
out() << "<tr class=\"odd\">"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
933 |
else |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
934 |
out() << "<tr class=\"even\">"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
935 |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
936 |
out() << "<tr><th class=\"tblConst\">Constant</th>" |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
937 |
<< "<th class=\"tblval\">Value</th>" |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
938 |
<< "<th class=\"tbldscr\">Description</th></tr>\n"; |
0 | 939 |
} |
940 |
else { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
941 |
out() << "<table class=\"valuelist\">" |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
942 |
<< "<tr><th class=\"tblConst\">Constant</th><th class=\"tblVal\">Value</th></tr>\n"; |
0 | 943 |
} |
944 |
} |
|
945 |
else { |
|
946 |
out() << "<ol type="; |
|
947 |
if (atom->string() == ATOM_LIST_UPPERALPHA) { |
|
948 |
out() << "\"A\""; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
949 |
} /* why type? */ |
0 | 950 |
else if (atom->string() == ATOM_LIST_LOWERALPHA) { |
951 |
out() << "\"a\""; |
|
952 |
} |
|
953 |
else if (atom->string() == ATOM_LIST_UPPERROMAN) { |
|
954 |
out() << "\"I\""; |
|
955 |
} |
|
956 |
else if (atom->string() == ATOM_LIST_LOWERROMAN) { |
|
957 |
out() << "\"i\""; |
|
958 |
} |
|
959 |
else { // (atom->string() == ATOM_LIST_NUMERIC) |
|
960 |
out() << "\"1\""; |
|
961 |
} |
|
962 |
if (atom->next() != 0 && atom->next()->string().toInt() != 1) |
|
963 |
out() << " start=\"" << atom->next()->string() << "\""; |
|
964 |
out() << ">\n"; |
|
965 |
} |
|
966 |
break; |
|
967 |
case Atom::ListItemNumber: |
|
968 |
break; |
|
969 |
case Atom::ListTagLeft: |
|
970 |
if (atom->string() == ATOM_LIST_TAG) { |
|
971 |
out() << "<dt>"; |
|
972 |
} |
|
973 |
else { // (atom->string() == ATOM_LIST_VALUE) |
|
974 |
// ### Trenton |
|
975 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
976 |
out() << "<tr><td class=\"topAlign\"><tt>" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
977 |
<< protectEnc(plainCode(marker->markedUpEnumValue(atom->next()->string(), |
0 | 978 |
relative))) |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
979 |
<< "</tt></td><td class=\" topAlign\">"; |
0 | 980 |
|
981 |
QString itemValue; |
|
982 |
if (relative->type() == Node::Enum) { |
|
983 |
const EnumNode *enume = static_cast<const EnumNode *>(relative); |
|
984 |
itemValue = enume->itemValue(atom->next()->string()); |
|
985 |
} |
|
986 |
||
987 |
if (itemValue.isEmpty()) |
|
988 |
out() << "?"; |
|
989 |
else |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
990 |
out() << "<tt>" << protectEnc(itemValue) << "</tt>"; |
0 | 991 |
|
992 |
skipAhead = 1; |
|
993 |
} |
|
994 |
break; |
|
995 |
case Atom::ListTagRight: |
|
996 |
if (atom->string() == ATOM_LIST_TAG) |
|
997 |
out() << "</dt>\n"; |
|
998 |
break; |
|
999 |
case Atom::ListItemLeft: |
|
1000 |
if (atom->string() == ATOM_LIST_TAG) { |
|
1001 |
out() << "<dd>"; |
|
1002 |
} |
|
1003 |
else if (atom->string() == ATOM_LIST_VALUE) { |
|
1004 |
if (threeColumnEnumValueTable) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1005 |
out() << "</td><td class=\"topAlign\">"; |
0 | 1006 |
if (matchAhead(atom, Atom::ListItemRight)) |
1007 |
out() << " "; |
|
1008 |
} |
|
1009 |
} |
|
1010 |
else { |
|
1011 |
out() << "<li>"; |
|
1012 |
} |
|
1013 |
if (matchAhead(atom, Atom::ParaLeft)) |
|
1014 |
skipAhead = 1; |
|
1015 |
break; |
|
1016 |
case Atom::ListItemRight: |
|
1017 |
if (atom->string() == ATOM_LIST_TAG) { |
|
1018 |
out() << "</dd>\n"; |
|
1019 |
} |
|
1020 |
else if (atom->string() == ATOM_LIST_VALUE) { |
|
1021 |
out() << "</td></tr>\n"; |
|
1022 |
} |
|
1023 |
else { |
|
1024 |
out() << "</li>\n"; |
|
1025 |
} |
|
1026 |
break; |
|
1027 |
case Atom::ListRight: |
|
1028 |
if (atom->string() == ATOM_LIST_BULLET) { |
|
1029 |
out() << "</ul>\n"; |
|
1030 |
} |
|
1031 |
else if (atom->string() == ATOM_LIST_TAG) { |
|
1032 |
out() << "</dl>\n"; |
|
1033 |
} |
|
1034 |
else if (atom->string() == ATOM_LIST_VALUE) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1035 |
out() << "</table>\n"; |
0 | 1036 |
} |
1037 |
else { |
|
1038 |
out() << "</ol>\n"; |
|
1039 |
} |
|
1040 |
break; |
|
1041 |
case Atom::Nop: |
|
1042 |
break; |
|
1043 |
case Atom::ParaLeft: |
|
1044 |
out() << "<p>"; |
|
1045 |
in_para = true; |
|
1046 |
break; |
|
1047 |
case Atom::ParaRight: |
|
1048 |
endLink(); |
|
1049 |
if (in_para) { |
|
1050 |
out() << "</p>\n"; |
|
1051 |
in_para = false; |
|
1052 |
} |
|
1053 |
//if (!matchAhead(atom, Atom::ListItemRight) && !matchAhead(atom, Atom::TableItemRight)) |
|
1054 |
// out() << "</p>\n"; |
|
1055 |
break; |
|
1056 |
case Atom::QuotationLeft: |
|
1057 |
out() << "<blockquote>"; |
|
1058 |
break; |
|
1059 |
case Atom::QuotationRight: |
|
1060 |
out() << "</blockquote>\n"; |
|
1061 |
break; |
|
1062 |
case Atom::RawString: |
|
1063 |
out() << atom->string(); |
|
1064 |
break; |
|
1065 |
case Atom::SectionLeft: |
|
1066 |
#if 0 |
|
1067 |
{ |
|
1068 |
int nextLevel = atom->string().toInt(); |
|
1069 |
if (sectionNumber.size() < nextLevel) { |
|
1070 |
do { |
|
1071 |
sectionNumber.append("1"); |
|
1072 |
} while (sectionNumber.size() < nextLevel); |
|
1073 |
} |
|
1074 |
else { |
|
1075 |
while (sectionNumber.size() > nextLevel) { |
|
1076 |
sectionNumber.removeLast(); |
|
1077 |
} |
|
1078 |
sectionNumber.last() = QString::number(sectionNumber.last().toInt() + 1); |
|
1079 |
} |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1080 |
out() << "<a name=\"sec-" << sectionNumber.join("-") << "\"></a>" << divNavTop << "\n"; |
0 | 1081 |
} |
1082 |
#else |
|
1083 |
out() << "<a name=\"" << Doc::canonicalTitle(Text::sectionHeading(atom).toString()) |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1084 |
<< "\"></a>" << divNavTop << "\n"; |
0 | 1085 |
#endif |
1086 |
break; |
|
1087 |
case Atom::SectionRight: |
|
1088 |
break; |
|
1089 |
case Atom::SectionHeadingLeft: |
|
1090 |
out() << "<h" + QString::number(atom->string().toInt() + hOffset(relative)) + ">"; |
|
1091 |
inSectionHeading = true; |
|
1092 |
break; |
|
1093 |
case Atom::SectionHeadingRight: |
|
1094 |
out() << "</h" + QString::number(atom->string().toInt() + hOffset(relative)) + ">\n"; |
|
1095 |
inSectionHeading = false; |
|
1096 |
break; |
|
1097 |
case Atom::SidebarLeft: |
|
1098 |
break; |
|
1099 |
case Atom::SidebarRight: |
|
1100 |
break; |
|
1101 |
case Atom::String: |
|
1102 |
if (inLink && !inContents && !inSectionHeading) { |
|
1103 |
generateLink(atom, relative, marker); |
|
1104 |
} |
|
1105 |
else { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1106 |
out() << protectEnc(atom->string()); |
0 | 1107 |
} |
1108 |
break; |
|
1109 |
case Atom::TableLeft: |
|
1110 |
if (in_para) { |
|
1111 |
out() << "</p>\n"; |
|
1112 |
in_para = false; |
|
1113 |
} |
|
1114 |
if (!atom->string().isEmpty()) { |
|
1115 |
if (atom->string().contains("%")) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1116 |
out() << "<table class=\"generic\">\n "; // width=\"" << atom->string() << "\">\n "; |
0 | 1117 |
else { |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1118 |
out() << "<table class=\"generic\">\n"; |
0 | 1119 |
} |
1120 |
} |
|
1121 |
else { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1122 |
out() << "<table class=\"generic\">\n"; |
0 | 1123 |
} |
1124 |
numTableRows = 0; |
|
1125 |
break; |
|
1126 |
case Atom::TableRight: |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1127 |
out() << "</table>\n"; |
0 | 1128 |
break; |
1129 |
case Atom::TableHeaderLeft: |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1130 |
out() << "<thead><tr class=\"qt-style topAlign\">"; |
0 | 1131 |
inTableHeader = true; |
1132 |
break; |
|
1133 |
case Atom::TableHeaderRight: |
|
1134 |
out() << "</tr>"; |
|
1135 |
if (matchAhead(atom, Atom::TableHeaderLeft)) { |
|
1136 |
skipAhead = 1; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1137 |
out() << "\n<tr class=\"qt-style topAlign\">"; |
0 | 1138 |
} |
1139 |
else { |
|
1140 |
out() << "</thead>\n"; |
|
1141 |
inTableHeader = false; |
|
1142 |
} |
|
1143 |
break; |
|
1144 |
case Atom::TableRowLeft: |
|
1145 |
if (++numTableRows % 2 == 1) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1146 |
out() << "<tr class=\"odd topAlign\">"; |
0 | 1147 |
else |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1148 |
out() << "<tr class=\"even topAlign\">"; |
0 | 1149 |
break; |
1150 |
case Atom::TableRowRight: |
|
1151 |
out() << "</tr>\n"; |
|
1152 |
break; |
|
1153 |
case Atom::TableItemLeft: |
|
1154 |
{ |
|
1155 |
if (inTableHeader) |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1156 |
out() << "<th "; |
0 | 1157 |
else |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1158 |
out() << "<td "; |
0 | 1159 |
|
1160 |
QStringList spans = atom->string().split(","); |
|
1161 |
if (spans.size() == 2) { |
|
1162 |
if (spans.at(0) != "1") |
|
1163 |
out() << " colspan=\"" << spans.at(0) << "\""; |
|
1164 |
if (spans.at(1) != "1") |
|
1165 |
out() << " rowspan=\"" << spans.at(1) << "\""; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1166 |
if (inTableHeader) |
0 | 1167 |
out() << ">"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1168 |
else |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1169 |
out() << "><p>"; |
0 | 1170 |
} |
1171 |
if (matchAhead(atom, Atom::ParaLeft)) |
|
1172 |
skipAhead = 1; |
|
1173 |
} |
|
1174 |
break; |
|
1175 |
case Atom::TableItemRight: |
|
1176 |
if (inTableHeader) |
|
1177 |
out() << "</th>"; |
|
1178 |
else |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1179 |
out() << "</p></td>"; |
0 | 1180 |
if (matchAhead(atom, Atom::ParaLeft)) |
1181 |
skipAhead = 1; |
|
1182 |
break; |
|
1183 |
case Atom::TableOfContents: |
|
1184 |
{ |
|
1185 |
int numColumns = 1; |
|
1186 |
const Node *node = relative; |
|
1187 |
||
1188 |
Doc::SectioningUnit sectioningUnit = Doc::Section4; |
|
1189 |
QStringList params = atom->string().split(","); |
|
1190 |
QString columnText = params.at(0); |
|
1191 |
QStringList pieces = columnText.split(" ", QString::SkipEmptyParts); |
|
1192 |
if (pieces.size() >= 2) { |
|
1193 |
columnText = pieces.at(0); |
|
1194 |
pieces.pop_front(); |
|
1195 |
QString path = pieces.join(" ").trimmed(); |
|
1196 |
node = findNodeForTarget(path, relative, marker, atom); |
|
1197 |
} |
|
1198 |
||
1199 |
if (params.size() == 2) { |
|
1200 |
numColumns = qMax(columnText.toInt(), numColumns); |
|
1201 |
sectioningUnit = (Doc::SectioningUnit)params.at(1).toInt(); |
|
1202 |
} |
|
1203 |
||
1204 |
if (node) |
|
1205 |
generateTableOfContents(node, |
|
1206 |
marker, |
|
1207 |
sectioningUnit, |
|
1208 |
numColumns, |
|
1209 |
relative); |
|
1210 |
} |
|
1211 |
break; |
|
1212 |
case Atom::Target: |
|
1213 |
out() << "<a name=\"" << Doc::canonicalTitle(atom->string()) << "\"></a>"; |
|
1214 |
break; |
|
1215 |
case Atom::UnhandledFormat: |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1216 |
out() << "<b class=\"redFont\"><Missing HTML></b>"; |
0 | 1217 |
break; |
1218 |
case Atom::UnknownCommand: |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1219 |
out() << "<b class=\"redFont\"><code>\\" << protectEnc(atom->string()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1220 |
<< "</code></b>"; |
0 | 1221 |
break; |
1222 |
#ifdef QDOC_QML |
|
1223 |
case Atom::QmlText: |
|
1224 |
case Atom::EndQmlText: |
|
1225 |
// don't do anything with these. They are just tags. |
|
1226 |
break; |
|
1227 |
#endif |
|
1228 |
default: |
|
1229 |
unknownAtom(atom); |
|
1230 |
} |
|
1231 |
return skipAhead; |
|
1232 |
} |
|
1233 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1234 |
/*! |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1235 |
Generate a reference page for a C++ class. |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1236 |
*/ |
0 | 1237 |
void HtmlGenerator::generateClassLikeNode(const InnerNode *inner, |
1238 |
CodeMarker *marker) |
|
1239 |
{ |
|
1240 |
QList<Section> sections; |
|
1241 |
QList<Section>::ConstIterator s; |
|
1242 |
||
1243 |
const ClassNode *classe = 0; |
|
1244 |
const NamespaceNode *namespasse = 0; |
|
1245 |
||
1246 |
QString title; |
|
1247 |
QString rawTitle; |
|
1248 |
QString fullTitle; |
|
1249 |
if (inner->type() == Node::Namespace) { |
|
1250 |
namespasse = static_cast<const NamespaceNode *>(inner); |
|
1251 |
rawTitle = marker->plainName(inner); |
|
1252 |
fullTitle = marker->plainFullName(inner); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1253 |
title = rawTitle + " Namespace"; |
0 | 1254 |
} |
1255 |
else if (inner->type() == Node::Class) { |
|
1256 |
classe = static_cast<const ClassNode *>(inner); |
|
1257 |
rawTitle = marker->plainName(inner); |
|
1258 |
fullTitle = marker->plainFullName(inner); |
|
1259 |
title = rawTitle + " Class Reference"; |
|
1260 |
} |
|
1261 |
||
1262 |
DcfSection classSection; |
|
1263 |
classSection.title = title; |
|
1264 |
classSection.ref = linkForNode(inner, 0); |
|
1265 |
classSection.keywords += qMakePair(inner->name(), classSection.ref); |
|
1266 |
||
1267 |
Text subtitleText; |
|
1268 |
if (rawTitle != fullTitle) |
|
1269 |
subtitleText << "(" << Atom(Atom::AutoLink, fullTitle) << ")" |
|
1270 |
<< Atom(Atom::LineBreak); |
|
1271 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1272 |
generateHeader(title, inner, marker); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1273 |
sections = marker->sections(inner, CodeMarker::Summary, CodeMarker::Okay); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1274 |
generateTableOfContents(inner,marker,§ions); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1275 |
generateTitle(title, subtitleText, SmallSubTitle, inner, marker); |
0 | 1276 |
generateBrief(inner, marker); |
1277 |
generateIncludes(inner, marker); |
|
1278 |
generateStatus(inner, marker); |
|
1279 |
if (classe) { |
|
1280 |
generateInherits(classe, marker); |
|
1281 |
generateInheritedBy(classe, marker); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1282 |
#ifdef QDOC_QML |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1283 |
if (!classe->qmlElement().isEmpty()) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1284 |
generateInstantiatedBy(classe,marker); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1285 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1286 |
#endif |
0 | 1287 |
} |
1288 |
generateThreadSafeness(inner, marker); |
|
1289 |
generateSince(inner, marker); |
|
1290 |
||
1291 |
out() << "<ul>\n"; |
|
1292 |
||
1293 |
QString membersLink = generateListOfAllMemberFile(inner, marker); |
|
1294 |
if (!membersLink.isEmpty()) |
|
1295 |
out() << "<li><a href=\"" << membersLink << "\">" |
|
1296 |
<< "List of all members, including inherited members</a></li>\n"; |
|
1297 |
||
1298 |
QString obsoleteLink = generateLowStatusMemberFile(inner, |
|
1299 |
marker, |
|
1300 |
CodeMarker::Obsolete); |
|
1301 |
if (!obsoleteLink.isEmpty()) |
|
1302 |
out() << "<li><a href=\"" << obsoleteLink << "\">" |
|
1303 |
<< "Obsolete members</a></li>\n"; |
|
1304 |
||
1305 |
QString compatLink = generateLowStatusMemberFile(inner, |
|
1306 |
marker, |
|
1307 |
CodeMarker::Compat); |
|
1308 |
if (!compatLink.isEmpty()) |
|
1309 |
out() << "<li><a href=\"" << compatLink << "\">" |
|
1310 |
<< "Qt 3 support members</a></li>\n"; |
|
1311 |
||
1312 |
out() << "</ul>\n"; |
|
1313 |
||
1314 |
bool needOtherSection = false; |
|
1315 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1316 |
/* |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1317 |
sections is built above for the call to generateTableOfContents(). |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1318 |
*/ |
0 | 1319 |
s = sections.begin(); |
1320 |
while (s != sections.end()) { |
|
1321 |
if (s->members.isEmpty() && s->reimpMembers.isEmpty()) { |
|
1322 |
if (!s->inherited.isEmpty()) |
|
1323 |
needOtherSection = true; |
|
1324 |
} |
|
1325 |
else { |
|
1326 |
if (!s->members.isEmpty()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1327 |
// out() << "<hr />\n"; |
0 | 1328 |
out() << "<a name=\"" |
1329 |
<< registerRef((*s).name.toLower()) |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1330 |
<< "\"></a>" << divNavTop << "\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1331 |
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; |
0 | 1332 |
generateSection(s->members, inner, marker, CodeMarker::Summary); |
1333 |
} |
|
1334 |
if (!s->reimpMembers.isEmpty()) { |
|
1335 |
QString name = QString("Reimplemented ") + (*s).name; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1336 |
// out() << "<hr />\n"; |
0 | 1337 |
out() << "<a name=\"" |
1338 |
<< registerRef(name.toLower()) |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1339 |
<< "\"></a>" << divNavTop << "\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1340 |
out() << "<h2>" << protectEnc(name) << "</h2>\n"; |
0 | 1341 |
generateSection(s->reimpMembers, inner, marker, CodeMarker::Summary); |
1342 |
} |
|
1343 |
||
1344 |
if (!s->inherited.isEmpty()) { |
|
1345 |
out() << "<ul>\n"; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1346 |
generateSectionInheritedList(*s, inner, marker); |
0 | 1347 |
out() << "</ul>\n"; |
1348 |
} |
|
1349 |
} |
|
1350 |
++s; |
|
1351 |
} |
|
1352 |
||
1353 |
if (needOtherSection) { |
|
1354 |
out() << "<h3>Additional Inherited Members</h3>\n" |
|
1355 |
"<ul>\n"; |
|
1356 |
||
1357 |
s = sections.begin(); |
|
1358 |
while (s != sections.end()) { |
|
1359 |
if (s->members.isEmpty() && !s->inherited.isEmpty()) |
|
1360 |
generateSectionInheritedList(*s, inner, marker); |
|
1361 |
++s; |
|
1362 |
} |
|
1363 |
out() << "</ul>\n"; |
|
1364 |
} |
|
1365 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1366 |
out() << "<a name=\"" << registerRef("details") << "\"></a>" << divNavTop << "\n"; |
0 | 1367 |
|
1368 |
if (!inner->doc().isEmpty()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1369 |
generateExtractionMark(inner, DetailedDescriptionMark); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1370 |
//out() << "<hr />\n" |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1371 |
out() << "<div class=\"descr\">\n" // QTBUG-9504 |
0 | 1372 |
<< "<h2>" << "Detailed Description" << "</h2>\n"; |
1373 |
generateBody(inner, marker); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1374 |
out() << "</div>\n"; // QTBUG-9504 |
0 | 1375 |
generateAlsoList(inner, marker); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1376 |
generateExtractionMark(inner, EndMark); |
0 | 1377 |
} |
1378 |
||
1379 |
sections = marker->sections(inner, CodeMarker::Detailed, CodeMarker::Okay); |
|
1380 |
s = sections.begin(); |
|
1381 |
while (s != sections.end()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1382 |
//out() << "<hr />\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1383 |
if (!(*s).divClass.isEmpty()) |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1384 |
out() << "<div class=\"" << (*s).divClass << "\">\n"; // QTBUG-9504 |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1385 |
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; |
0 | 1386 |
|
1387 |
NodeList::ConstIterator m = (*s).members.begin(); |
|
1388 |
while (m != (*s).members.end()) { |
|
1389 |
if ((*m)->access() != Node::Private) { // ### check necessary? |
|
1390 |
if ((*m)->type() != Node::Class) |
|
1391 |
generateDetailedMember(*m, inner, marker); |
|
1392 |
else { |
|
1393 |
out() << "<h3> class "; |
|
1394 |
generateFullName(*m, inner, marker); |
|
1395 |
out() << "</h3>"; |
|
1396 |
generateBrief(*m, marker, inner); |
|
1397 |
} |
|
1398 |
||
1399 |
QStringList names; |
|
1400 |
names << (*m)->name(); |
|
1401 |
if ((*m)->type() == Node::Function) { |
|
1402 |
const FunctionNode *func = reinterpret_cast<const FunctionNode *>(*m); |
|
1403 |
if (func->metaness() == FunctionNode::Ctor || |
|
1404 |
func->metaness() == FunctionNode::Dtor || |
|
1405 |
func->overloadNumber() != 1) |
|
1406 |
names.clear(); |
|
1407 |
} |
|
1408 |
else if ((*m)->type() == Node::Property) { |
|
1409 |
const PropertyNode *prop = reinterpret_cast<const PropertyNode *>(*m); |
|
1410 |
if (!prop->getters().isEmpty() && |
|
1411 |
!names.contains(prop->getters().first()->name())) |
|
1412 |
names << prop->getters().first()->name(); |
|
1413 |
if (!prop->setters().isEmpty()) |
|
1414 |
names << prop->setters().first()->name(); |
|
1415 |
if (!prop->resetters().isEmpty()) |
|
1416 |
names << prop->resetters().first()->name(); |
|
1417 |
} |
|
1418 |
else if ((*m)->type() == Node::Enum) { |
|
1419 |
const EnumNode *enume = reinterpret_cast<const EnumNode*>(*m); |
|
1420 |
if (enume->flagsType()) |
|
1421 |
names << enume->flagsType()->name(); |
|
1422 |
||
1423 |
foreach (const QString &enumName, |
|
1424 |
enume->doc().enumItemNames().toSet() - |
|
1425 |
enume->doc().omitEnumItemNames().toSet()) |
|
1426 |
names << plainCode(marker->markedUpEnumValue(enumName, |
|
1427 |
enume)); |
|
1428 |
} |
|
1429 |
foreach (const QString &name, names) |
|
1430 |
classSection.keywords += qMakePair(name,linkForNode(*m,0)); |
|
1431 |
} |
|
1432 |
++m; |
|
1433 |
} |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1434 |
if (!(*s).divClass.isEmpty()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1435 |
out() << "</div>\n"; // QTBUG-9504 |
0 | 1436 |
++s; |
1437 |
} |
|
1438 |
generateFooter(inner); |
|
1439 |
||
1440 |
if (!membersLink.isEmpty()) { |
|
1441 |
DcfSection membersSection; |
|
1442 |
membersSection.title = "List of all members"; |
|
1443 |
membersSection.ref = membersLink; |
|
1444 |
appendDcfSubSection(&classSection, membersSection); |
|
1445 |
} |
|
1446 |
if (!obsoleteLink.isEmpty()) { |
|
1447 |
DcfSection obsoleteSection; |
|
1448 |
obsoleteSection.title = "Obsolete members"; |
|
1449 |
obsoleteSection.ref = obsoleteLink; |
|
1450 |
appendDcfSubSection(&classSection, obsoleteSection); |
|
1451 |
} |
|
1452 |
if (!compatLink.isEmpty()) { |
|
1453 |
DcfSection compatSection; |
|
1454 |
compatSection.title = "Qt 3 support members"; |
|
1455 |
compatSection.ref = compatLink; |
|
1456 |
appendDcfSubSection(&classSection, compatSection); |
|
1457 |
} |
|
1458 |
||
1459 |
appendDcfSubSection(&dcfClassesRoot, classSection); |
|
1460 |
} |
|
1461 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1462 |
/*! |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1463 |
Generate the html page for a qdoc file that doesn't map |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1464 |
to an underlying c++ file. |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1465 |
*/ |
0 | 1466 |
void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) |
1467 |
{ |
|
1468 |
SubTitleSize subTitleSize = LargeSubTitle; |
|
1469 |
DcfSection fakeSection; |
|
1470 |
fakeSection.title = fake->fullTitle(); |
|
1471 |
fakeSection.ref = linkForNode(fake, 0); |
|
1472 |
||
1473 |
QList<Section> sections; |
|
1474 |
QList<Section>::const_iterator s; |
|
1475 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1476 |
QString fullTitle = fake->fullTitle(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1477 |
QString htmlTitle = fullTitle; |
0 | 1478 |
if (fake->subType() == Node::File && !fake->subTitle().isEmpty()) { |
1479 |
subTitleSize = SmallSubTitle; |
|
1480 |
htmlTitle += " (" + fake->subTitle() + ")"; |
|
1481 |
} |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1482 |
else if (fake->subType() == Node::QmlBasicType) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1483 |
fullTitle = "QML Basic Type: " + fullTitle; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1484 |
htmlTitle = fullTitle; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1485 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1486 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1487 |
generateHeader(htmlTitle, fake, marker); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1488 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1489 |
/* |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1490 |
Generate the TOC for the new doc format. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1491 |
Don't generate a TOC for the home page. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1492 |
*/ |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1493 |
const QmlClassNode* qml_cn = 0; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1494 |
if (fake->subType() == Node::QmlClass) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1495 |
qml_cn = static_cast<const QmlClassNode*>(fake); |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1496 |
sections = marker->qmlSections(qml_cn,CodeMarker::Summary,0); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1497 |
generateTableOfContents(fake,marker,§ions); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1498 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1499 |
else if (fake->name() != QString("index.html")) |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1500 |
generateTableOfContents(fake,marker,0); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1501 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1502 |
generateTitle(fullTitle, |
0 | 1503 |
Text() << fake->subTitle(), |
1504 |
subTitleSize, |
|
1505 |
fake, |
|
1506 |
marker); |
|
1507 |
||
1508 |
if (fake->subType() == Node::Module) { |
|
1509 |
// Generate brief text and status for modules. |
|
1510 |
generateBrief(fake, marker); |
|
1511 |
generateStatus(fake, marker); |
|
1512 |
||
1513 |
if (moduleNamespaceMap.contains(fake->name())) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1514 |
out() << "<a name=\"" << registerRef("namespaces") << "\"></a>" << divNavTop << "\n"; |
0 | 1515 |
out() << "<h2>Namespaces</h2>\n"; |
1516 |
generateAnnotatedList(fake, marker, moduleNamespaceMap[fake->name()]); |
|
1517 |
} |
|
1518 |
if (moduleClassMap.contains(fake->name())) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1519 |
out() << "<a name=\"" << registerRef("classes") << "\"></a>" << divNavTop << "\n"; |
0 | 1520 |
out() << "<h2>Classes</h2>\n"; |
1521 |
generateAnnotatedList(fake, marker, moduleClassMap[fake->name()]); |
|
1522 |
} |
|
1523 |
} |
|
1524 |
else if (fake->subType() == Node::HeaderFile) { |
|
1525 |
// Generate brief text and status for modules. |
|
1526 |
generateBrief(fake, marker); |
|
1527 |
generateStatus(fake, marker); |
|
1528 |
||
1529 |
out() << "<ul>\n"; |
|
1530 |
||
1531 |
QString membersLink = generateListOfAllMemberFile(fake, marker); |
|
1532 |
if (!membersLink.isEmpty()) |
|
1533 |
out() << "<li><a href=\"" << membersLink << "\">" |
|
1534 |
<< "List of all members, including inherited members</a></li>\n"; |
|
1535 |
||
1536 |
QString obsoleteLink = generateLowStatusMemberFile(fake, |
|
1537 |
marker, |
|
1538 |
CodeMarker::Obsolete); |
|
1539 |
if (!obsoleteLink.isEmpty()) |
|
1540 |
out() << "<li><a href=\"" << obsoleteLink << "\">" |
|
1541 |
<< "Obsolete members</a></li>\n"; |
|
1542 |
||
1543 |
QString compatLink = generateLowStatusMemberFile(fake, |
|
1544 |
marker, |
|
1545 |
CodeMarker::Compat); |
|
1546 |
if (!compatLink.isEmpty()) |
|
1547 |
out() << "<li><a href=\"" << compatLink << "\">" |
|
1548 |
<< "Qt 3 support members</a></li>\n"; |
|
1549 |
||
1550 |
out() << "</ul>\n"; |
|
1551 |
||
1552 |
if (!membersLink.isEmpty()) { |
|
1553 |
DcfSection membersSection; |
|
1554 |
membersSection.title = "List of all members"; |
|
1555 |
membersSection.ref = membersLink; |
|
1556 |
appendDcfSubSection(&fakeSection, membersSection); |
|
1557 |
} |
|
1558 |
if (!obsoleteLink.isEmpty()) { |
|
1559 |
DcfSection obsoleteSection; |
|
1560 |
obsoleteSection.title = "Obsolete members"; |
|
1561 |
obsoleteSection.ref = obsoleteLink; |
|
1562 |
appendDcfSubSection(&fakeSection, obsoleteSection); |
|
1563 |
} |
|
1564 |
if (!compatLink.isEmpty()) { |
|
1565 |
DcfSection compatSection; |
|
1566 |
compatSection.title = "Qt 3 support members"; |
|
1567 |
compatSection.ref = compatLink; |
|
1568 |
appendDcfSubSection(&fakeSection, compatSection); |
|
1569 |
} |
|
1570 |
} |
|
1571 |
#ifdef QDOC_QML |
|
1572 |
else if (fake->subType() == Node::QmlClass) { |
|
1573 |
const ClassNode* cn = qml_cn->classNode(); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1574 |
generateBrief(qml_cn, marker); |
0 | 1575 |
generateQmlInherits(qml_cn, marker); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1576 |
generateQmlInheritedBy(qml_cn, marker); |
0 | 1577 |
generateQmlInstantiates(qml_cn, marker); |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1578 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1579 |
QString allQmlMembersLink = generateAllQmlMembersFile(qml_cn, marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1580 |
if (!allQmlMembersLink.isEmpty()) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1581 |
out() << "<li><a href=\"" << allQmlMembersLink << "\">" |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1582 |
<< "List of all members, including inherited members</a></li>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1583 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1584 |
|
0 | 1585 |
s = sections.begin(); |
1586 |
while (s != sections.end()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1587 |
out() << "<a name=\"" << registerRef((*s).name.toLower()) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1588 |
<< "\"></a>" << divNavTop << "\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1589 |
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; |
0 | 1590 |
generateQmlSummary(*s,fake,marker); |
1591 |
++s; |
|
1592 |
} |
|
1593 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1594 |
generateExtractionMark(fake, DetailedDescriptionMark); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1595 |
out() << "<a name=\"" << registerRef("details") << "\"></a>" << divNavTop << "\n"; |
0 | 1596 |
out() << "<h2>" << "Detailed Description" << "</h2>\n"; |
1597 |
generateBody(fake, marker); |
|
1598 |
if (cn) |
|
1599 |
generateQmlText(cn->doc().body(), cn, marker, fake->name()); |
|
1600 |
generateAlsoList(fake, marker); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1601 |
generateExtractionMark(fake, EndMark); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1602 |
//out() << "<hr />\n"; |
0 | 1603 |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1604 |
sections = marker->qmlSections(qml_cn,CodeMarker::Detailed,0); |
0 | 1605 |
s = sections.begin(); |
1606 |
while (s != sections.end()) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1607 |
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; |
0 | 1608 |
NodeList::ConstIterator m = (*s).members.begin(); |
1609 |
while (m != (*s).members.end()) { |
|
1610 |
generateDetailedQmlMember(*m, fake, marker); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1611 |
out() << "<br/>\n"; |
0 | 1612 |
fakeSection.keywords += qMakePair((*m)->name(), |
1613 |
linkForNode(*m,0)); |
|
1614 |
++m; |
|
1615 |
} |
|
1616 |
++s; |
|
1617 |
} |
|
1618 |
generateFooter(fake); |
|
1619 |
return; |
|
1620 |
} |
|
1621 |
#endif |
|
1622 |
||
1623 |
sections = marker->sections(fake, CodeMarker::Summary, CodeMarker::Okay); |
|
1624 |
s = sections.begin(); |
|
1625 |
while (s != sections.end()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1626 |
out() << "<a name=\"" << registerRef((*s).name) << "\"></a>" << divNavTop << "\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1627 |
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; |
0 | 1628 |
generateSectionList(*s, fake, marker, CodeMarker::Summary); |
1629 |
++s; |
|
1630 |
} |
|
1631 |
||
1632 |
Text brief = fake->doc().briefText(); |
|
1633 |
if (fake->subType() == Node::Module && !brief.isEmpty()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1634 |
generateExtractionMark(fake, DetailedDescriptionMark); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1635 |
out() << "<a name=\"" << registerRef("details") << "\"></a>" << divNavTop << "\n"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1636 |
out() << "<div class=\"descr\">\n"; // QTBUG-9504 |
0 | 1637 |
out() << "<h2>" << "Detailed Description" << "</h2>\n"; |
1638 |
} |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1639 |
else { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1640 |
generateExtractionMark(fake, DetailedDescriptionMark); |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1641 |
out() << "<div class=\"descr\"> <a name=\"" << registerRef("details") << "\"></a>\n"; // QTBUG-9504 |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1642 |
} |
0 | 1643 |
|
1644 |
generateBody(fake, marker); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1645 |
out() << "</div>\n"; // QTBUG-9504 |
0 | 1646 |
generateAlsoList(fake, marker); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1647 |
generateExtractionMark(fake, EndMark); |
0 | 1648 |
|
1649 |
if (!fake->groupMembers().isEmpty()) { |
|
1650 |
NodeMap groupMembersMap; |
|
1651 |
foreach (const Node *node, fake->groupMembers()) { |
|
1652 |
if (node->type() == Node::Class || node->type() == Node::Namespace) |
|
1653 |
groupMembersMap[node->name()] = node; |
|
1654 |
} |
|
1655 |
generateAnnotatedList(fake, marker, groupMembersMap); |
|
1656 |
} |
|
1657 |
||
1658 |
fakeSection.keywords += qMakePair(fakeSection.title, fakeSection.ref); |
|
1659 |
||
1660 |
sections = marker->sections(fake, CodeMarker::Detailed, CodeMarker::Okay); |
|
1661 |
s = sections.begin(); |
|
1662 |
while (s != sections.end()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1663 |
//out() << "<hr />\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1664 |
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n"; |
0 | 1665 |
|
1666 |
NodeList::ConstIterator m = (*s).members.begin(); |
|
1667 |
while (m != (*s).members.end()) { |
|
1668 |
generateDetailedMember(*m, fake, marker); |
|
1669 |
fakeSection.keywords += qMakePair((*m)->name(), linkForNode(*m, 0)); |
|
1670 |
++m; |
|
1671 |
} |
|
1672 |
++s; |
|
1673 |
} |
|
1674 |
generateFooter(fake); |
|
1675 |
||
1676 |
if (fake->subType() == Node::Example) { |
|
1677 |
appendDcfSubSection(&dcfExamplesRoot, fakeSection); |
|
1678 |
} |
|
1679 |
else if (fake->subType() != Node::File) { |
|
1680 |
QString contentsPage = fake->links().value(Node::ContentsLink).first; |
|
1681 |
||
1682 |
if (contentsPage == "Qt Designer Manual") { |
|
1683 |
appendDcfSubSection(&dcfDesignerRoot, fakeSection); |
|
1684 |
} |
|
1685 |
else if (contentsPage == "Qt Linguist Manual") { |
|
1686 |
appendDcfSubSection(&dcfLinguistRoot, fakeSection); |
|
1687 |
} |
|
1688 |
else if (contentsPage == "Qt Assistant Manual") { |
|
1689 |
appendDcfSubSection(&dcfAssistantRoot, fakeSection); |
|
1690 |
} |
|
1691 |
else if (contentsPage == "qmake Manual") { |
|
1692 |
appendDcfSubSection(&dcfQmakeRoot, fakeSection); |
|
1693 |
} |
|
1694 |
else { |
|
1695 |
appendDcfSubSection(&dcfOverviewsRoot, fakeSection); |
|
1696 |
} |
|
1697 |
} |
|
1698 |
} |
|
1699 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1700 |
/*! |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1701 |
Returns "html" for this subclass of Generator. |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1702 |
*/ |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1703 |
QString HtmlGenerator::fileExtension(const Node * /* node */) const |
0 | 1704 |
{ |
1705 |
return "html"; |
|
1706 |
} |
|
1707 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1708 |
/*! |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1709 |
Output breadcrumb list in the html file. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1710 |
*/ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1711 |
void HtmlGenerator::generateBreadCrumbs(const QString& title, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1712 |
const Node *node, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1713 |
CodeMarker *marker) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1714 |
{ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1715 |
Text breadcrumb; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1716 |
if (node->type() == Node::Class) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1717 |
const ClassNode* cn = static_cast<const ClassNode*>(node); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1718 |
QString name = node->moduleName(); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1719 |
out() << " <li><a href=\"modules.html\">Modules</a></li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1720 |
if (!name.isEmpty()) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1721 |
out() << " <li>"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1722 |
breadcrumb << Atom(Atom::AutoLink,name); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1723 |
generateText(breadcrumb, node, marker); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1724 |
out() << "</li>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1725 |
} |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1726 |
if (!cn->name().isEmpty()) |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1727 |
out() << " <li>" << protectEnc(cn->name()) << "</li>\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1728 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1729 |
else if (node->type() == Node::Fake) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1730 |
const FakeNode* fn = static_cast<const FakeNode*>(node); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1731 |
if (node->subType() == Node::Module) { |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1732 |
out() << " <li><a href=\"modules.html\">Modules</a></li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1733 |
QString name = node->name(); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1734 |
if (!name.isEmpty()) |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1735 |
out() << " <li>" << protectEnc(name) << "</li>\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1736 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1737 |
else if (node->subType() == Node::Group) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1738 |
if (fn->name() == QString("modules")) |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1739 |
out() << " <li>Modules</li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1740 |
else { |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1741 |
out() << " <li>" << protectEnc(title) << "</li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1742 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1743 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1744 |
else if (node->subType() == Node::Page) { |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1745 |
if (fn->name() == QString("qdeclarativeexamples.html")) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1746 |
out() << " <li><a href=\"all-examples.html\">Examples</a></li>"; |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1747 |
out() << " <li>QML Examples & Demos</li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1748 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1749 |
else if (fn->name().startsWith("examples-")) { |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1750 |
out() << " <li><a href=\"all-examples.html\">Examples</a></li>"; |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1751 |
out() << " <li>" << protectEnc(title) << "</li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1752 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1753 |
else if (fn->name() == QString("namespaces.html")) { |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1754 |
out() << " <li>Namespaces</li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1755 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1756 |
else { |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1757 |
out() << " <li>" << protectEnc(title) << "</li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1758 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1759 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1760 |
else if (node->subType() == Node::QmlClass) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1761 |
out() << " <li><a href=\"qdeclarativeelements.html\">QML Elements</a></li>"; |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1762 |
out() << " <li>" << protectEnc(title) << "</li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1763 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1764 |
else if (node->subType() == Node::Example) { |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1765 |
out() << " <li><a href=\"all-examples.html\">Examples</a></li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1766 |
QStringList sl = fn->name().split('/'); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1767 |
if (sl.contains("declarative")) |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1768 |
out() << " <li><a href=\"qdeclarativeexamples.html\">QML Examples & Demos</a></li>"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1769 |
else { |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1770 |
QString name = protectEnc("examples-" + sl.at(0) + ".html"); // this generates an empty link |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1771 |
QString t = CodeParser::titleFromName(name); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1772 |
} |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1773 |
out() << " <li>" << protectEnc(title) << "</li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1774 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1775 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1776 |
else if (node->type() == Node::Namespace) { |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1777 |
out() << " <li><a href=\"namespaces.html\">Namespaces</a></li>"; |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1778 |
out() << " <li>" << protectEnc(title) << "</li>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1779 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1780 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1781 |
|
0 | 1782 |
void HtmlGenerator::generateHeader(const QString& title, |
1783 |
const Node *node, |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1784 |
CodeMarker *marker) |
0 | 1785 |
{ |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1786 |
out() << QString("<?xml version=\"1.0\" encoding=\"%1\"?>\n").arg(outputEncoding); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1787 |
out() << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1788 |
out() << QString("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"%1\" lang=\"%1\">\n").arg(naturalLanguage); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1789 |
out() << "<head>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1790 |
out() << " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"; |
0 | 1791 |
QString shortVersion; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1792 |
shortVersion = project + " " + shortVersion + ": "; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1793 |
if (node && !node->doc().location().isEmpty()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1794 |
out() << "<!-- " << node->doc().location().fileName() << " -->\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1795 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1796 |
shortVersion = myTree->version(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1797 |
if (shortVersion.count(QChar('.')) == 2) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1798 |
shortVersion.truncate(shortVersion.lastIndexOf(QChar('.'))); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1799 |
if (!shortVersion.isEmpty()) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1800 |
if (project == "QSA") |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1801 |
shortVersion = "QSA " + shortVersion + ": "; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1802 |
else |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1803 |
shortVersion = "Qt " + shortVersion + ": "; |
0 | 1804 |
} |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1805 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1806 |
// Generating page title |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1807 |
out() << " <title>" << shortVersion << protectEnc(title) << "</title>\n"; |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1808 |
// Adding style sheet |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1809 |
out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1810 |
// Adding jquery and functions - providing online tools and search features |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1811 |
out() << " <script src=\"scripts/jquery.js\" type=\"text/javascript\"></script>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1812 |
out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1813 |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1814 |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1815 |
// Adding syntax highlighter // future release |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1816 |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1817 |
// Setting some additional style sheet related details depending on configuration (e.g. Online/Creator) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1818 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1819 |
switch (application) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1820 |
case Online: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1821 |
// Adding style and js for small windows |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1822 |
out() << " <script src=\"./scripts/superfish.js\" type=\"text/javascript\"></script>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1823 |
out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/superfish.css\" />"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1824 |
out() << " <script src=\"./scripts/narrow.js\" type=\"text/javascript\"></script>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1825 |
out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/narrow.css\" />\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1826 |
// Browser spec styles |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1827 |
out() << " <!--[if IE]>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1828 |
out() << "<meta name=\"MSSmartTagsPreventParsing\" content=\"true\">\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1829 |
out() << "<meta http-equiv=\"imagetoolbar\" content=\"no\">\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1830 |
out() << "<![endif]-->\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1831 |
out() << "<!--[if lt IE 7]>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1832 |
out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie6.css\">\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1833 |
out() << "<![endif]-->\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1834 |
out() << "<!--[if IE 7]>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1835 |
out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie7.css\">\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1836 |
out() << "<![endif]-->\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1837 |
out() << "<!--[if IE 8]>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1838 |
out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie8.css\">\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1839 |
out() << "<![endif]-->\n"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1840 |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1841 |
out() << "</head>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1842 |
// CheckEmptyAndLoadList activating search |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1843 |
out() << "<body class=\"\" onload=\"CheckEmptyAndLoadList();\">\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1844 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1845 |
case Creator: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1846 |
out() << "</head>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1847 |
out() << "<body class=\"offline narrow creator\">\n"; // offline narrow |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1848 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1849 |
default: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1850 |
out() << "</head>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1851 |
out() << "<body>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1852 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1853 |
} |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1854 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1855 |
#ifdef GENERATE_MAC_REFS |
0 | 1856 |
if (mainPage) |
1857 |
generateMacRef(node, marker); |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1858 |
#endif |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1859 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1860 |
switch (application) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1861 |
case Online: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1862 |
out() << QString(postHeader).replace("\\" + COMMAND_VERSION, myTree->version()); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1863 |
generateBreadCrumbs(title,node,marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1864 |
out() << QString(postPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1865 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1866 |
case Creator: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1867 |
out() << QString(creatorPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1868 |
generateBreadCrumbs(title,node,marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1869 |
out() << QString(creatorPostPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1870 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1871 |
default: // default -- not used except if one forgets to set any of the above settings to true |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1872 |
out() << QString(creatorPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1873 |
generateBreadCrumbs(title,node,marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1874 |
out() << QString(creatorPostPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1875 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1876 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1877 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1878 |
navigationLinks.clear(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1879 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1880 |
if (node && !node->links().empty()) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1881 |
QPair<QString,QString> linkPair; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1882 |
QPair<QString,QString> anchorPair; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1883 |
const Node *linkNode; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1884 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1885 |
if (node->links().contains(Node::PreviousLink)) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1886 |
linkPair = node->links()[Node::PreviousLink]; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1887 |
linkNode = findNodeForTarget(linkPair.first, node, marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1888 |
if (!linkNode || linkNode == node) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1889 |
anchorPair = linkPair; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1890 |
else |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1891 |
anchorPair = anchorForNode(linkNode); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1892 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1893 |
out() << " <link rel=\"prev\" href=\"" |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1894 |
<< anchorPair.first << "\" />\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1895 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1896 |
navigationLinks += "[Previous: <a href=\"" + anchorPair.first + "\">"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1897 |
if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1898 |
navigationLinks += protect(anchorPair.second); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1899 |
else |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1900 |
navigationLinks += protect(linkPair.second); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1901 |
navigationLinks += "</a>]\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1902 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1903 |
if (node->links().contains(Node::NextLink)) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1904 |
linkPair = node->links()[Node::NextLink]; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1905 |
linkNode = findNodeForTarget(linkPair.first, node, marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1906 |
if (!linkNode || linkNode == node) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1907 |
anchorPair = linkPair; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1908 |
else |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1909 |
anchorPair = anchorForNode(linkNode); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1910 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1911 |
out() << " <link rel=\"next\" href=\"" |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1912 |
<< anchorPair.first << "\" />\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1913 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1914 |
navigationLinks += "[Next: <a href=\"" + anchorPair.first + "\">"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1915 |
if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1916 |
navigationLinks += protect(anchorPair.second); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1917 |
else |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1918 |
navigationLinks += protect(linkPair.second); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1919 |
navigationLinks += "</a>]\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1920 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1921 |
if (node->links().contains(Node::StartLink)) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1922 |
linkPair = node->links()[Node::StartLink]; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1923 |
linkNode = findNodeForTarget(linkPair.first, node, marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1924 |
if (!linkNode || linkNode == node) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1925 |
anchorPair = linkPair; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1926 |
else |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1927 |
anchorPair = anchorForNode(linkNode); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1928 |
out() << " <link rel=\"start\" href=\"" |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1929 |
<< anchorPair.first << "\" />\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1930 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1931 |
} |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1932 |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1933 |
#if 0 // Removed for new doc format. MWS |
0 | 1934 |
if (node && !node->links().empty()) |
1935 |
out() << "<p>\n" << navigationLinks << "</p>\n"; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1936 |
#endif |
0 | 1937 |
} |
1938 |
||
1939 |
void HtmlGenerator::generateTitle(const QString& title, |
|
1940 |
const Text &subTitle, |
|
1941 |
SubTitleSize subTitleSize, |
|
1942 |
const Node *relative, |
|
1943 |
CodeMarker *marker) |
|
1944 |
{ |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1945 |
if (!title.isEmpty()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1946 |
out() << "<h1 class=\"title\">" << protectEnc(title) << "</h1>\n"; |
0 | 1947 |
if (!subTitle.isEmpty()) { |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1948 |
out() << "<span"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1949 |
if (subTitleSize == SmallSubTitle) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1950 |
out() << " class=\"small-subtitle\">"; |
0 | 1951 |
else |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1952 |
out() << " class=\"subtitle\">"; |
0 | 1953 |
generateText(subTitle, relative, marker); |
1954 |
out() << "</span>\n"; |
|
1955 |
} |
|
1956 |
} |
|
1957 |
||
1958 |
void HtmlGenerator::generateFooter(const Node *node) |
|
1959 |
{ |
|
1960 |
if (node && !node->links().empty()) |
|
1961 |
out() << "<p>\n" << navigationLinks << "</p>\n"; |
|
1962 |
||
1963 |
out() << QString(footer).replace("\\" + COMMAND_VERSION, myTree->version()) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1964 |
<< QString(address).replace("\\" + COMMAND_VERSION, myTree->version()); |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1965 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1966 |
switch (application) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1967 |
case Online: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1968 |
out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1969 |
out() << " <!-- <script type=\"text/javascript\">\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1970 |
out() << " var _gaq = _gaq || [];\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1971 |
out() << " _gaq.push(['_setAccount', 'UA-4457116-5']);\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1972 |
out() << " _gaq.push(['_trackPageview']);\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1973 |
out() << " (function() {\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1974 |
out() << " var ga = document.createElement('script'); "; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1975 |
out() << "ga.type = 'text/javascript'; ga.async = true;\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1976 |
out() << " ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + "; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1977 |
out() << "'.google-analytics.com/ga.js';\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1978 |
out() << " var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1979 |
out() << " })();\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1980 |
out() << " </script> -->\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1981 |
out() << "</body>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1982 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1983 |
case Creator: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1984 |
out() << "</body>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1985 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1986 |
default: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1987 |
out() << "</body>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
1988 |
} |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
1989 |
out() << "</html>\n"; |
0 | 1990 |
} |
1991 |
||
1992 |
void HtmlGenerator::generateBrief(const Node *node, CodeMarker *marker, |
|
1993 |
const Node *relative) |
|
1994 |
{ |
|
1995 |
Text brief = node->doc().briefText(); |
|
1996 |
if (!brief.isEmpty()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
1997 |
generateExtractionMark(node, BriefMark); |
0 | 1998 |
out() << "<p>"; |
1999 |
generateText(brief, node, marker); |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2000 |
|
0 | 2001 |
if (!relative || node == relative) |
2002 |
out() << " <a href=\"#"; |
|
2003 |
else |
|
2004 |
out() << " <a href=\"" << linkForNode(node, relative) << "#"; |
|
2005 |
out() << registerRef("details") << "\">More...</a></p>\n"; |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2006 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2007 |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2008 |
generateExtractionMark(node, EndMark); |
0 | 2009 |
} |
2010 |
} |
|
2011 |
||
2012 |
void HtmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *marker) |
|
2013 |
{ |
|
2014 |
if (!inner->includes().isEmpty()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2015 |
out() << "<pre class=\"highlightedCode brush: cpp\">" |
0 | 2016 |
<< trimmedTrailing(highlightedCode(indent(codeIndent, |
2017 |
marker->markedUpIncludes(inner->includes())), |
|
2018 |
marker,inner)) |
|
2019 |
<< "</pre>"; |
|
2020 |
} |
|
2021 |
} |
|
2022 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2023 |
/*! |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2024 |
Generates a table of contents beginning at \a node. |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2025 |
*/ |
0 | 2026 |
void HtmlGenerator::generateTableOfContents(const Node *node, |
2027 |
CodeMarker *marker, |
|
2028 |
Doc::SectioningUnit sectioningUnit, |
|
2029 |
int numColumns, |
|
2030 |
const Node *relative) |
|
2031 |
||
2032 |
{ |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2033 |
return; |
0 | 2034 |
if (!node->doc().hasTableOfContents()) |
2035 |
return; |
|
2036 |
QList<Atom *> toc = node->doc().tableOfContents(); |
|
2037 |
if (toc.isEmpty()) |
|
2038 |
return; |
|
2039 |
||
2040 |
QString nodeName = ""; |
|
2041 |
if (node != relative) |
|
2042 |
nodeName = node->name(); |
|
2043 |
||
2044 |
QStringList sectionNumber; |
|
2045 |
int columnSize = 0; |
|
2046 |
||
2047 |
QString tdTag; |
|
2048 |
if (numColumns > 1) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2049 |
tdTag = "<td>"; /* width=\"" + QString::number((100 + numColumns - 1) / numColumns) + "%\">";*/ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2050 |
out() << "<table class=\"toc\">\n<tr class=\"topAlign\">" |
0 | 2051 |
<< tdTag << "\n"; |
2052 |
} |
|
2053 |
||
2054 |
// disable nested links in table of contents |
|
2055 |
inContents = true; |
|
2056 |
inLink = true; |
|
2057 |
||
2058 |
for (int i = 0; i < toc.size(); ++i) { |
|
2059 |
Atom *atom = toc.at(i); |
|
2060 |
||
2061 |
int nextLevel = atom->string().toInt(); |
|
2062 |
if (nextLevel > (int)sectioningUnit) |
|
2063 |
continue; |
|
2064 |
||
2065 |
if (sectionNumber.size() < nextLevel) { |
|
2066 |
do { |
|
2067 |
out() << "<ul>"; |
|
2068 |
sectionNumber.append("1"); |
|
2069 |
} while (sectionNumber.size() < nextLevel); |
|
2070 |
} |
|
2071 |
else { |
|
2072 |
while (sectionNumber.size() > nextLevel) { |
|
2073 |
out() << "</ul>\n"; |
|
2074 |
sectionNumber.removeLast(); |
|
2075 |
} |
|
2076 |
sectionNumber.last() = QString::number(sectionNumber.last().toInt() + 1); |
|
2077 |
} |
|
2078 |
int numAtoms; |
|
2079 |
Text headingText = Text::sectionHeading(atom); |
|
2080 |
||
2081 |
if (sectionNumber.size() == 1 && columnSize > toc.size() / numColumns) { |
|
2082 |
out() << "</ul></td>" << tdTag << "<ul>\n"; |
|
2083 |
columnSize = 0; |
|
2084 |
} |
|
2085 |
out() << "<li>"; |
|
2086 |
out() << "<a href=\"" |
|
2087 |
<< nodeName |
|
2088 |
<< "#" |
|
2089 |
<< Doc::canonicalTitle(headingText.toString()) |
|
2090 |
<< "\">"; |
|
2091 |
generateAtomList(headingText.firstAtom(), node, marker, true, numAtoms); |
|
2092 |
out() << "</a></li>\n"; |
|
2093 |
||
2094 |
++columnSize; |
|
2095 |
} |
|
2096 |
while (!sectionNumber.isEmpty()) { |
|
2097 |
out() << "</ul>\n"; |
|
2098 |
sectionNumber.removeLast(); |
|
2099 |
} |
|
2100 |
||
2101 |
if (numColumns > 1) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2102 |
out() << "</td></tr></table>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2103 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2104 |
inContents = false; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2105 |
inLink = false; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2106 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2107 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2108 |
/*! |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2109 |
Revised for the new doc format. |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2110 |
Generates a table of contents beginning at \a node. |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2111 |
*/ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2112 |
void HtmlGenerator::generateTableOfContents(const Node *node, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2113 |
CodeMarker *marker, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2114 |
QList<Section>* sections) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2115 |
{ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2116 |
QList<Atom*> toc; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2117 |
if (node->doc().hasTableOfContents()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2118 |
toc = node->doc().tableOfContents(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2119 |
if (toc.isEmpty() && !sections && (node->subType() != Node::Module)) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2120 |
return; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2121 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2122 |
QStringList sectionNumber; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2123 |
int detailsBase = 0; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2124 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2125 |
// disable nested links in table of contents |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2126 |
inContents = true; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2127 |
inLink = true; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2128 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2129 |
out() << "<div class=\"toc\">\n"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2130 |
out() << "<h3><a name=\"toc\">Contents</a></h3>\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2131 |
sectionNumber.append("1"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2132 |
out() << "<ul>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2133 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2134 |
if (node->subType() == Node::Module) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2135 |
if (moduleNamespaceMap.contains(node->name())) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2136 |
out() << "<li class=\"level" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2137 |
<< sectionNumber.size() |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2138 |
<< "\"><a href=\"#" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2139 |
<< registerRef("namespaces") |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2140 |
<< "\">Namespaces</a></li>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2141 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2142 |
if (moduleClassMap.contains(node->name())) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2143 |
out() << "<li class=\"level" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2144 |
<< sectionNumber.size() |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2145 |
<< "\"><a href=\"#" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2146 |
<< registerRef("classes") |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2147 |
<< "\">Classes</a></li>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2148 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2149 |
out() << "<li class=\"level" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2150 |
<< sectionNumber.size() |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2151 |
<< "\"><a href=\"#" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2152 |
<< registerRef("details") |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2153 |
<< "\">Detailed Description</a></li>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2154 |
for (int i = 0; i < toc.size(); ++i) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2155 |
if (toc.at(i)->string().toInt() == 1) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2156 |
detailsBase = 1; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2157 |
break; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2158 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2159 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2160 |
} |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2161 |
else if (sections && ((node->type() == Node::Class) || |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2162 |
(node->type() == Node::Namespace) || |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2163 |
(node->subType() == Node::QmlClass))) { |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2164 |
QList<Section>::ConstIterator s = sections->begin(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2165 |
while (s != sections->end()) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2166 |
if (!s->members.isEmpty() || !s->reimpMembers.isEmpty()) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2167 |
out() << "<li class=\"level" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2168 |
<< sectionNumber.size() |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2169 |
<< "\"><a href=\"#" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2170 |
<< registerRef((*s).pluralMember) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2171 |
<< "\">" << (*s).name |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2172 |
<< "</a></li>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2173 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2174 |
++s; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2175 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2176 |
out() << "<li class=\"level" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2177 |
<< sectionNumber.size() |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2178 |
<< "\"><a href=\"#" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2179 |
<< registerRef("details") |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2180 |
<< "\">Detailed Description</a></li>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2181 |
for (int i = 0; i < toc.size(); ++i) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2182 |
if (toc.at(i)->string().toInt() == 1) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2183 |
detailsBase = 1; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2184 |
break; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2185 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2186 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2187 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2188 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2189 |
for (int i = 0; i < toc.size(); ++i) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2190 |
Atom *atom = toc.at(i); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2191 |
int nextLevel = atom->string().toInt() + detailsBase; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2192 |
if (sectionNumber.size() < nextLevel) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2193 |
do { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2194 |
sectionNumber.append("1"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2195 |
} while (sectionNumber.size() < nextLevel); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2196 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2197 |
else { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2198 |
while (sectionNumber.size() > nextLevel) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2199 |
sectionNumber.removeLast(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2200 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2201 |
sectionNumber.last() = QString::number(sectionNumber.last().toInt() + 1); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2202 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2203 |
int numAtoms; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2204 |
Text headingText = Text::sectionHeading(atom); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2205 |
QString s = headingText.toString(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2206 |
out() << "<li class=\"level" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2207 |
<< sectionNumber.size() |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2208 |
<< "\">"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2209 |
out() << "<a href=\"" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2210 |
<< "#" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2211 |
<< Doc::canonicalTitle(s) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2212 |
<< "\">"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2213 |
generateAtomList(headingText.firstAtom(), node, marker, true, numAtoms); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2214 |
out() << "</a></li>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2215 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2216 |
while (!sectionNumber.isEmpty()) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2217 |
sectionNumber.removeLast(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2218 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2219 |
out() << "</ul>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2220 |
out() << "</div>\n"; |
0 | 2221 |
inContents = false; |
2222 |
inLink = false; |
|
2223 |
} |
|
2224 |
||
2225 |
#if 0 |
|
2226 |
void HtmlGenerator::generateNavigationBar(const NavigationBar& bar, |
|
2227 |
const Node *node, |
|
2228 |
CodeMarker *marker) |
|
2229 |
{ |
|
2230 |
if (bar.prev.begin() != 0 || bar.current.begin() != 0 || |
|
2231 |
bar.next.begin() != 0) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2232 |
out() << "<p class=\"rightAlign\">"; |
0 | 2233 |
if (bar.prev.begin() != 0) { |
2234 |
#if 0 |
|
2235 |
out() << "[<a href=\"" << section.previousBaseName() |
|
2236 |
<< ".html\">Prev: "; |
|
2237 |
generateText(section.previousHeading(), node, marker); |
|
2238 |
out() << "</a>]\n"; |
|
2239 |
#endif |
|
2240 |
} |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2241 |
if (fake->name() != QString("index.html")) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2242 |
{ |
0 | 2243 |
if (bar.current.begin() != 0) { |
2244 |
out() << "[<a href=\"" << "home" |
|
2245 |
<< ".html\">Home</a>]\n"; |
|
2246 |
} |
|
2247 |
if (bar.next.begin() != 0) { |
|
2248 |
out() << "[<a href=\"" << fileBase(node, bar.next) |
|
2249 |
<< ".html\">Next: "; |
|
2250 |
generateText(Text::sectionHeading(bar.next.begin()), node, marker); |
|
2251 |
out() << "</a>]\n"; |
|
2252 |
} |
|
2253 |
out() << "</p>\n"; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2254 |
} |
0 | 2255 |
} |
2256 |
} |
|
2257 |
#endif |
|
2258 |
||
2259 |
QString HtmlGenerator::generateListOfAllMemberFile(const InnerNode *inner, |
|
2260 |
CodeMarker *marker) |
|
2261 |
{ |
|
2262 |
QList<Section> sections; |
|
2263 |
QList<Section>::ConstIterator s; |
|
2264 |
||
2265 |
sections = marker->sections(inner, |
|
2266 |
CodeMarker::SeparateList, |
|
2267 |
CodeMarker::Okay); |
|
2268 |
if (sections.isEmpty()) |
|
2269 |
return QString(); |
|
2270 |
||
2271 |
QString fileName = fileBase(inner) + "-members." + fileExtension(inner); |
|
2272 |
beginSubPage(inner->location(), fileName); |
|
2273 |
QString title = "List of All Members for " + inner->name(); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2274 |
generateHeader(title, inner, marker); |
0 | 2275 |
generateTitle(title, Text(), SmallSubTitle, inner, marker); |
2276 |
out() << "<p>This is the complete list of members for "; |
|
2277 |
generateFullName(inner, 0, marker); |
|
2278 |
out() << ", including inherited members.</p>\n"; |
|
2279 |
||
2280 |
Section section = sections.first(); |
|
2281 |
generateSectionList(section, 0, marker, CodeMarker::SeparateList); |
|
2282 |
||
2283 |
generateFooter(); |
|
2284 |
endSubPage(); |
|
2285 |
return fileName; |
|
2286 |
} |
|
2287 |
||
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2288 |
/*! |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2289 |
This function creates an html page on which are listed all |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2290 |
the members of QML class \a qml_cn, including the inherited |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2291 |
members. The \a marker is used for formatting stuff. |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2292 |
*/ |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2293 |
QString HtmlGenerator::generateAllQmlMembersFile(const QmlClassNode* qml_cn, |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2294 |
CodeMarker* marker) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2295 |
{ |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2296 |
QList<Section> sections; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2297 |
QList<Section>::ConstIterator s; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2298 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2299 |
sections = marker->qmlSections(qml_cn,CodeMarker::SeparateList,myTree); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2300 |
if (sections.isEmpty()) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2301 |
return QString(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2302 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2303 |
QString fileName = fileBase(qml_cn) + "-members." + fileExtension(qml_cn); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2304 |
beginSubPage(qml_cn->location(), fileName); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2305 |
QString title = "List of All Members for " + qml_cn->name(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2306 |
generateHeader(title, qml_cn, marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2307 |
generateTitle(title, Text(), SmallSubTitle, qml_cn, marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2308 |
out() << "<p>This is the complete list of members for "; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2309 |
generateFullName(qml_cn, 0, marker); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2310 |
out() << ", including inherited members.</p>\n"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2311 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2312 |
Section section = sections.first(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2313 |
generateSectionList(section, 0, marker, CodeMarker::SeparateList); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2314 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2315 |
generateFooter(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2316 |
endSubPage(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2317 |
return fileName; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2318 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
2319 |
|
0 | 2320 |
QString HtmlGenerator::generateLowStatusMemberFile(const InnerNode *inner, |
2321 |
CodeMarker *marker, |
|
2322 |
CodeMarker::Status status) |
|
2323 |
{ |
|
2324 |
QList<Section> sections = marker->sections(inner, |
|
2325 |
CodeMarker::Summary, |
|
2326 |
status); |
|
2327 |
QMutableListIterator<Section> j(sections); |
|
2328 |
while (j.hasNext()) { |
|
2329 |
if (j.next().members.size() == 0) |
|
2330 |
j.remove(); |
|
2331 |
} |
|
2332 |
if (sections.isEmpty()) |
|
2333 |
return QString(); |
|
2334 |
||
2335 |
int i; |
|
2336 |
||
2337 |
QString title; |
|
2338 |
QString fileName; |
|
2339 |
||
2340 |
if (status == CodeMarker::Compat) { |
|
2341 |
title = "Qt 3 Support Members for " + inner->name(); |
|
2342 |
fileName = fileBase(inner) + "-qt3." + fileExtension(inner); |
|
2343 |
} |
|
2344 |
else { |
|
2345 |
title = "Obsolete Members for " + inner->name(); |
|
2346 |
fileName = fileBase(inner) + "-obsolete." + fileExtension(inner); |
|
2347 |
} |
|
2348 |
||
2349 |
beginSubPage(inner->location(), fileName); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2350 |
generateHeader(title, inner, marker); |
0 | 2351 |
generateTitle(title, Text(), SmallSubTitle, inner, marker); |
2352 |
||
2353 |
if (status == CodeMarker::Compat) { |
|
2354 |
out() << "<p><b>The following class members are part of the " |
|
2355 |
"<a href=\"qt3support.html\">Qt 3 support layer</a>.</b> " |
|
2356 |
"They are provided to help you port old code to Qt 4. We advise against " |
|
2357 |
"using them in new code.</p>\n"; |
|
2358 |
} |
|
2359 |
else { |
|
2360 |
out() << "<p><b>The following class members are obsolete.</b> " |
|
2361 |
<< "They are provided to keep old source code working. " |
|
2362 |
<< "We strongly advise against using them in new code.</p>\n"; |
|
2363 |
} |
|
2364 |
||
2365 |
out() << "<p><ul><li><a href=\"" |
|
2366 |
<< linkForNode(inner, 0) << "\">" |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2367 |
<< protectEnc(inner->name()) |
0 | 2368 |
<< " class reference</a></li></ul></p>\n"; |
2369 |
||
2370 |
for (i = 0; i < sections.size(); ++i) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2371 |
out() << "<h2>" << protectEnc(sections.at(i).name) << "</h2>\n"; |
0 | 2372 |
generateSectionList(sections.at(i), inner, marker, CodeMarker::Summary); |
2373 |
} |
|
2374 |
||
2375 |
sections = marker->sections(inner, CodeMarker::Detailed, status); |
|
2376 |
for (i = 0; i < sections.size(); ++i) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2377 |
//out() << "<hr />\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2378 |
out() << "<h2>" << protectEnc(sections.at(i).name) << "</h2>\n"; |
0 | 2379 |
|
2380 |
NodeList::ConstIterator m = sections.at(i).members.begin(); |
|
2381 |
while (m != sections.at(i).members.end()) { |
|
2382 |
if ((*m)->access() != Node::Private) |
|
2383 |
generateDetailedMember(*m, inner, marker); |
|
2384 |
++m; |
|
2385 |
} |
|
2386 |
} |
|
2387 |
||
2388 |
generateFooter(); |
|
2389 |
endSubPage(); |
|
2390 |
return fileName; |
|
2391 |
} |
|
2392 |
||
2393 |
void HtmlGenerator::generateClassHierarchy(const Node *relative, |
|
2394 |
CodeMarker *marker, |
|
2395 |
const QMap<QString,const Node*> &classMap) |
|
2396 |
{ |
|
2397 |
if (classMap.isEmpty()) |
|
2398 |
return; |
|
2399 |
||
2400 |
NodeMap topLevel; |
|
2401 |
NodeMap::ConstIterator c = classMap.begin(); |
|
2402 |
while (c != classMap.end()) { |
|
2403 |
const ClassNode *classe = static_cast<const ClassNode *>(*c); |
|
2404 |
if (classe->baseClasses().isEmpty()) |
|
2405 |
topLevel.insert(classe->name(), classe); |
|
2406 |
++c; |
|
2407 |
} |
|
2408 |
||
2409 |
QStack<NodeMap > stack; |
|
2410 |
stack.push(topLevel); |
|
2411 |
||
2412 |
out() << "<ul>\n"; |
|
2413 |
while (!stack.isEmpty()) { |
|
2414 |
if (stack.top().isEmpty()) { |
|
2415 |
stack.pop(); |
|
2416 |
out() << "</ul>\n"; |
|
2417 |
} |
|
2418 |
else { |
|
2419 |
const ClassNode *child = |
|
2420 |
static_cast<const ClassNode *>(*stack.top().begin()); |
|
2421 |
out() << "<li>"; |
|
2422 |
generateFullName(child, relative, marker); |
|
2423 |
out() << "</li>\n"; |
|
2424 |
stack.top().erase(stack.top().begin()); |
|
2425 |
||
2426 |
NodeMap newTop; |
|
2427 |
foreach (const RelatedClass &d, child->derivedClasses()) { |
|
2428 |
if (d.access != Node::Private) |
|
2429 |
newTop.insert(d.node->name(), d.node); |
|
2430 |
} |
|
2431 |
if (!newTop.isEmpty()) { |
|
2432 |
stack.push(newTop); |
|
2433 |
out() << "<ul>\n"; |
|
2434 |
} |
|
2435 |
} |
|
2436 |
} |
|
2437 |
} |
|
2438 |
||
2439 |
void HtmlGenerator::generateAnnotatedList(const Node *relative, |
|
2440 |
CodeMarker *marker, |
|
2441 |
const NodeMap &nodeMap) |
|
2442 |
{ |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2443 |
out() << "<table class=\"annotated\">\n"; |
0 | 2444 |
|
2445 |
int row = 0; |
|
2446 |
foreach (const QString &name, nodeMap.keys()) { |
|
2447 |
const Node *node = nodeMap[name]; |
|
2448 |
||
2449 |
if (node->status() == Node::Obsolete) |
|
2450 |
continue; |
|
2451 |
||
2452 |
if (++row % 2 == 1) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2453 |
out() << "<tr class=\"odd topAlign\">"; |
0 | 2454 |
else |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2455 |
out() << "<tr class=\"even topAlign\">"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2456 |
out() << "<td class=\"tblName\"><p>"; |
0 | 2457 |
generateFullName(node, relative, marker); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2458 |
out() << "</p></td>"; |
0 | 2459 |
|
2460 |
if (!(node->type() == Node::Fake)) { |
|
2461 |
Text brief = node->doc().trimmedBriefText(name); |
|
2462 |
if (!brief.isEmpty()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2463 |
out() << "<td class=\"tblDescr\"><p>"; |
0 | 2464 |
generateText(brief, node, marker); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2465 |
out() << "</p></td>"; |
0 | 2466 |
} |
2467 |
} |
|
2468 |
else { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2469 |
out() << "<td class=\"tblDescr\"><p>"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2470 |
out() << protectEnc(node->doc().briefText().toString()); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2471 |
out() << "</p></td>"; |
0 | 2472 |
} |
2473 |
out() << "</tr>\n"; |
|
2474 |
} |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2475 |
out() << "</table>\n"; |
0 | 2476 |
} |
2477 |
||
2478 |
/*! |
|
2479 |
This function finds the common prefix of the names of all |
|
2480 |
the classes in \a classMap and then generates a compact |
|
2481 |
list of the class names alphabetized on the part of the |
|
2482 |
name not including the common prefix. You can tell the |
|
2483 |
function to use \a comonPrefix as the common prefix, but |
|
2484 |
normally you let it figure it out itself by looking at |
|
2485 |
the name of the first and last classes in \a classMap. |
|
2486 |
*/ |
|
2487 |
void HtmlGenerator::generateCompactList(const Node *relative, |
|
2488 |
CodeMarker *marker, |
|
2489 |
const NodeMap &classMap, |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2490 |
bool includeAlphabet, |
0 | 2491 |
QString commonPrefix) |
2492 |
{ |
|
2493 |
const int NumParagraphs = 37; // '0' to '9', 'A' to 'Z', '_' |
|
2494 |
||
2495 |
if (classMap.isEmpty()) |
|
2496 |
return; |
|
2497 |
||
2498 |
/* |
|
2499 |
If commonPrefix is not empty, then the caller knows what |
|
2500 |
the common prefix is and has passed it in, so just use that |
|
2501 |
one. |
|
2502 |
*/ |
|
2503 |
int commonPrefixLen = commonPrefix.length(); |
|
2504 |
if (commonPrefixLen == 0) { |
|
2505 |
QString first; |
|
2506 |
QString last; |
|
2507 |
||
2508 |
/* |
|
2509 |
The caller didn't pass in a common prefix, so get the common |
|
2510 |
prefix by looking at the class names of the first and last |
|
2511 |
classes in the class map. Discard any namespace names and |
|
2512 |
just use the bare class names. For Qt, the prefix is "Q". |
|
2513 |
||
2514 |
Note that the algorithm used here to derive the common prefix |
|
2515 |
from the first and last classes in alphabetical order (QAccel |
|
2516 |
and QXtWidget in Qt 2.1), fails if either class name does not |
|
2517 |
begin with Q. |
|
2518 |
*/ |
|
2519 |
||
2520 |
NodeMap::const_iterator iter = classMap.begin(); |
|
2521 |
while (iter != classMap.end()) { |
|
2522 |
if (!iter.key().contains("::")) { |
|
2523 |
first = iter.key(); |
|
2524 |
break; |
|
2525 |
} |
|
2526 |
++iter; |
|
2527 |
} |
|
2528 |
||
2529 |
if (first.isEmpty()) |
|
2530 |
first = classMap.begin().key(); |
|
2531 |
||
2532 |
iter = classMap.end(); |
|
2533 |
while (iter != classMap.begin()) { |
|
2534 |
--iter; |
|
2535 |
if (!iter.key().contains("::")) { |
|
2536 |
last = iter.key(); |
|
2537 |
break; |
|
2538 |
} |
|
2539 |
} |
|
2540 |
||
2541 |
if (last.isEmpty()) |
|
2542 |
last = classMap.begin().key(); |
|
2543 |
||
2544 |
if (classMap.size() > 1) { |
|
2545 |
while (commonPrefixLen < first.length() + 1 && |
|
2546 |
commonPrefixLen < last.length() + 1 && |
|
2547 |
first[commonPrefixLen] == last[commonPrefixLen]) |
|
2548 |
++commonPrefixLen; |
|
2549 |
} |
|
2550 |
||
2551 |
commonPrefix = first.left(commonPrefixLen); |
|
2552 |
} |
|
2553 |
||
2554 |
/* |
|
2555 |
Divide the data into 37 paragraphs: 0, ..., 9, A, ..., Z, |
|
2556 |
underscore (_). QAccel will fall in paragraph 10 (A) and |
|
2557 |
QXtWidget in paragraph 33 (X). This is the only place where we |
|
2558 |
assume that NumParagraphs is 37. Each paragraph is a NodeMap. |
|
2559 |
*/ |
|
2560 |
NodeMap paragraph[NumParagraphs+1]; |
|
2561 |
QString paragraphName[NumParagraphs+1]; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2562 |
QSet<char> usedParagraphNames; |
0 | 2563 |
|
2564 |
NodeMap::ConstIterator c = classMap.begin(); |
|
2565 |
while (c != classMap.end()) { |
|
2566 |
QStringList pieces = c.key().split("::"); |
|
2567 |
QString key; |
|
2568 |
int idx = commonPrefixLen; |
|
2569 |
if (!pieces.last().startsWith(commonPrefix)) |
|
2570 |
idx = 0; |
|
2571 |
if (pieces.size() == 1) |
|
2572 |
key = pieces.last().mid(idx).toLower(); |
|
2573 |
else |
|
2574 |
key = pieces.last().toLower(); |
|
2575 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2576 |
int paragraphNr = NumParagraphs - 1; |
0 | 2577 |
|
2578 |
if (key[0].digitValue() != -1) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2579 |
paragraphNr = key[0].digitValue(); |
0 | 2580 |
} |
2581 |
else if (key[0] >= QLatin1Char('a') && key[0] <= QLatin1Char('z')) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2582 |
paragraphNr = 10 + key[0].unicode() - 'a'; |
0 | 2583 |
} |
2584 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2585 |
paragraphName[paragraphNr] = key[0].toUpper(); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2586 |
usedParagraphNames.insert(key[0].toLower().cell()); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2587 |
paragraph[paragraphNr].insert(key, c.value()); |
0 | 2588 |
++c; |
2589 |
} |
|
2590 |
||
2591 |
/* |
|
2592 |
Each paragraph j has a size: paragraph[j].count(). In the |
|
2593 |
discussion, we will assume paragraphs 0 to 5 will have sizes |
|
2594 |
3, 1, 4, 1, 5, 9. |
|
2595 |
||
2596 |
We now want to compute the paragraph offset. Paragraphs 0 to 6 |
|
2597 |
start at offsets 0, 3, 4, 8, 9, 14, 23. |
|
2598 |
*/ |
|
2599 |
int paragraphOffset[NumParagraphs + 1]; // 37 + 1 |
|
2600 |
paragraphOffset[0] = 0; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2601 |
for (int i=0; i<NumParagraphs; i++) // i = 0..36 |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2602 |
paragraphOffset[i+1] = paragraphOffset[i] + paragraph[i].count(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2603 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2604 |
int curParNr = 0; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2605 |
int curParOffset = 0; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2606 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2607 |
/* |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2608 |
Output the alphabet as a row of links. |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2609 |
*/ |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2610 |
if (includeAlphabet) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2611 |
out() << "<p class=\"centerAlign functionIndex\"><b>"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2612 |
for (int i = 0; i < 26; i++) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2613 |
QChar ch('a' + i); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2614 |
if (usedParagraphNames.contains(char('a' + i))) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2615 |
out() << QString("<a href=\"#%1\">%2</a> ").arg(ch).arg(ch.toUpper()); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2616 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2617 |
out() << "</b></p>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2618 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2619 |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2620 |
/* |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2621 |
Output a <div> element to contain all the <dl> elements. |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2622 |
*/ |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2623 |
out() << "<div class=\"flowListDiv\">\n"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2624 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2625 |
for (int i=0; i<classMap.count()-1; i++) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2626 |
while ((curParNr < NumParagraphs) && |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2627 |
(curParOffset == paragraph[curParNr].count())) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2628 |
++curParNr; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2629 |
curParOffset = 0; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2630 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2631 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2632 |
/* |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2633 |
Starting a new paragraph means starting a new <dl>. |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2634 |
*/ |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2635 |
if (curParOffset == 0) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2636 |
if (i > 0) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2637 |
out() << "</dl>\n"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2638 |
if (++numTableRows % 2 == 1) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2639 |
out() << "<dl class=\"flowList odd\">"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2640 |
else |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2641 |
out() << "<dl class=\"flowList even\">"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2642 |
out() << "<dt class=\"alphaChar\">"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2643 |
if (includeAlphabet) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2644 |
QChar c = paragraphName[curParNr][0].toLower(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2645 |
out() << QString("<a name=\"%1\"></a>").arg(c); |
0 | 2646 |
} |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2647 |
out() << "<b>" |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2648 |
<< paragraphName[curParNr] |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2649 |
<< "</b>"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2650 |
out() << "</dt>\n"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2651 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2652 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2653 |
/* |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2654 |
Output a <dd> for the current offset in the current paragraph. |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2655 |
*/ |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2656 |
out() << "<dd>"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2657 |
if ((curParNr < NumParagraphs) && |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2658 |
!paragraphName[curParNr].isEmpty()) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2659 |
NodeMap::Iterator it; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2660 |
it = paragraph[curParNr].begin(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2661 |
for (int i=0; i<curParOffset; i++) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2662 |
++it; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2663 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2664 |
/* |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2665 |
Previously, we used generateFullName() for this, but we |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2666 |
require some special formatting. |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2667 |
*/ |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2668 |
out() << "<a href=\"" << linkForNode(it.value(), relative) << "\">"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2669 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2670 |
QStringList pieces; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2671 |
if (it.value()->subType() == Node::QmlClass) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2672 |
pieces << it.value()->name(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2673 |
else |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2674 |
pieces = fullName(it.value(), relative, marker).split("::"); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2675 |
out() << protectEnc(pieces.last()); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2676 |
out() << "</a>"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2677 |
if (pieces.size() > 1) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2678 |
out() << " ("; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2679 |
generateFullName(it.value()->parent(), relative, marker); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2680 |
out() << ")"; |
0 | 2681 |
} |
2682 |
} |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2683 |
out() << "</dd>\n"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2684 |
curParOffset++; |
0 | 2685 |
} |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2686 |
out() << "</dl>\n"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2687 |
out() << "</div>\n"; |
0 | 2688 |
} |
2689 |
||
2690 |
void HtmlGenerator::generateFunctionIndex(const Node *relative, |
|
2691 |
CodeMarker *marker) |
|
2692 |
{ |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2693 |
out() << "<p class=\"centerAlign functionIndex\"><b>"; |
0 | 2694 |
for (int i = 0; i < 26; i++) { |
2695 |
QChar ch('a' + i); |
|
2696 |
out() << QString("<a href=\"#%1\">%2</a> ").arg(ch).arg(ch.toUpper()); |
|
2697 |
} |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2698 |
out() << "</b></p>\n"; |
0 | 2699 |
|
2700 |
char nextLetter = 'a'; |
|
2701 |
char currentLetter; |
|
2702 |
||
2703 |
#if 1 |
|
2704 |
out() << "<ul>\n"; |
|
2705 |
#endif |
|
2706 |
QMap<QString, NodeMap >::ConstIterator f = funcIndex.begin(); |
|
2707 |
while (f != funcIndex.end()) { |
|
2708 |
#if 1 |
|
2709 |
out() << "<li>"; |
|
2710 |
#else |
|
2711 |
out() << "<p>"; |
|
2712 |
#endif |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2713 |
out() << protectEnc(f.key()) << ":"; |
0 | 2714 |
|
2715 |
currentLetter = f.key()[0].unicode(); |
|
2716 |
while (islower(currentLetter) && currentLetter >= nextLetter) { |
|
2717 |
out() << QString("<a name=\"%1\"></a>").arg(nextLetter); |
|
2718 |
nextLetter++; |
|
2719 |
} |
|
2720 |
||
2721 |
NodeMap::ConstIterator s = (*f).begin(); |
|
2722 |
while (s != (*f).end()) { |
|
2723 |
out() << " "; |
|
2724 |
generateFullName((*s)->parent(), relative, marker, *s); |
|
2725 |
++s; |
|
2726 |
} |
|
2727 |
#if 1 |
|
2728 |
out() << "</li>"; |
|
2729 |
#else |
|
2730 |
out() << "</p>"; |
|
2731 |
#endif |
|
2732 |
out() << "\n"; |
|
2733 |
++f; |
|
2734 |
} |
|
2735 |
#if 1 |
|
2736 |
out() << "</ul>\n"; |
|
2737 |
#endif |
|
2738 |
} |
|
2739 |
||
2740 |
void HtmlGenerator::generateLegaleseList(const Node *relative, |
|
2741 |
CodeMarker *marker) |
|
2742 |
{ |
|
2743 |
QMap<Text, const Node *>::ConstIterator it = legaleseTexts.begin(); |
|
2744 |
while (it != legaleseTexts.end()) { |
|
2745 |
Text text = it.key(); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2746 |
//out() << "<hr />\n"; |
0 | 2747 |
generateText(text, relative, marker); |
2748 |
out() << "<ul>\n"; |
|
2749 |
do { |
|
2750 |
out() << "<li>"; |
|
2751 |
generateFullName(it.value(), relative, marker); |
|
2752 |
out() << "</li>\n"; |
|
2753 |
++it; |
|
2754 |
} while (it != legaleseTexts.end() && it.key() == text); |
|
2755 |
out() << "</ul>\n"; |
|
2756 |
} |
|
2757 |
} |
|
2758 |
||
2759 |
#ifdef QDOC_QML |
|
2760 |
void HtmlGenerator::generateQmlItem(const Node *node, |
|
2761 |
const Node *relative, |
|
2762 |
CodeMarker *marker, |
|
2763 |
bool summary) |
|
2764 |
{ |
|
2765 |
QString marked = marker->markedUpQmlItem(node,summary); |
|
2766 |
QRegExp templateTag("(<[^@>]*>)"); |
|
2767 |
if (marked.indexOf(templateTag) != -1) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2768 |
QString contents = protectEnc(marked.mid(templateTag.pos(1), |
0 | 2769 |
templateTag.cap(1).length())); |
2770 |
marked.replace(templateTag.pos(1), templateTag.cap(1).length(), |
|
2771 |
contents); |
|
2772 |
} |
|
2773 |
marked.replace(QRegExp("<@param>([a-z]+)_([1-9n])</@param>"), |
|
2774 |
"<i>\\1<sub>\\2</sub></i>"); |
|
2775 |
marked.replace("<@param>", "<i>"); |
|
2776 |
marked.replace("</@param>", "</i>"); |
|
2777 |
||
2778 |
if (summary) |
|
2779 |
marked.replace("@name>", "b>"); |
|
2780 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2781 |
marked.replace("<@extra>", "<tt>"); |
0 | 2782 |
marked.replace("</@extra>", "</tt>"); |
2783 |
||
2784 |
if (summary) { |
|
2785 |
marked.replace("<@type>", ""); |
|
2786 |
marked.replace("</@type>", ""); |
|
2787 |
} |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2788 |
out() << highlightedCode(marked, marker, relative, false, node); |
0 | 2789 |
} |
2790 |
#endif |
|
2791 |
||
2792 |
void HtmlGenerator::generateOverviewList(const Node *relative, CodeMarker * /* marker */) |
|
2793 |
{ |
|
2794 |
QMap<const FakeNode *, QMap<QString, FakeNode *> > fakeNodeMap; |
|
2795 |
QMap<QString, const FakeNode *> groupTitlesMap; |
|
2796 |
QMap<QString, FakeNode *> uncategorizedNodeMap; |
|
2797 |
QRegExp singleDigit("\\b([0-9])\\b"); |
|
2798 |
||
2799 |
const NodeList children = myTree->root()->childNodes(); |
|
2800 |
foreach (Node *child, children) { |
|
2801 |
if (child->type() == Node::Fake && child != relative) { |
|
2802 |
FakeNode *fakeNode = static_cast<FakeNode *>(child); |
|
2803 |
||
2804 |
// Check whether the page is part of a group or is the group |
|
2805 |
// definition page. |
|
2806 |
QString group; |
|
2807 |
bool isGroupPage = false; |
|
2808 |
if (fakeNode->doc().metaCommandsUsed().contains("group")) { |
|
2809 |
group = fakeNode->doc().metaCommandArgs("group")[0]; |
|
2810 |
isGroupPage = true; |
|
2811 |
} |
|
2812 |
||
2813 |
// there are too many examples; they would clutter the list |
|
2814 |
if (fakeNode->subType() == Node::Example) |
|
2815 |
continue; |
|
2816 |
||
2817 |
// not interested either in individual (Qt Designer etc.) manual chapters |
|
2818 |
if (fakeNode->links().contains(Node::ContentsLink)) |
|
2819 |
continue; |
|
2820 |
||
2821 |
// Discard external nodes. |
|
2822 |
if (fakeNode->subType() == Node::ExternalPage) |
|
2823 |
continue; |
|
2824 |
||
2825 |
QString sortKey = fakeNode->fullTitle().toLower(); |
|
2826 |
if (sortKey.startsWith("the ")) |
|
2827 |
sortKey.remove(0, 4); |
|
2828 |
sortKey.replace(singleDigit, "0\\1"); |
|
2829 |
||
2830 |
if (!group.isEmpty()) { |
|
2831 |
if (isGroupPage) { |
|
2832 |
// If we encounter a group definition page, we add all |
|
2833 |
// the pages in that group to the list for that group. |
|
2834 |
foreach (Node *member, fakeNode->groupMembers()) { |
|
2835 |
if (member->type() != Node::Fake) |
|
2836 |
continue; |
|
2837 |
FakeNode *page = static_cast<FakeNode *>(member); |
|
2838 |
if (page) { |
|
2839 |
QString sortKey = page->fullTitle().toLower(); |
|
2840 |
if (sortKey.startsWith("the ")) |
|
2841 |
sortKey.remove(0, 4); |
|
2842 |
sortKey.replace(singleDigit, "0\\1"); |
|
2843 |
fakeNodeMap[const_cast<const FakeNode *>(fakeNode)].insert(sortKey, page); |
|
2844 |
groupTitlesMap[fakeNode->fullTitle()] = const_cast<const FakeNode *>(fakeNode); |
|
2845 |
} |
|
2846 |
} |
|
2847 |
} |
|
2848 |
else if (!isGroupPage) { |
|
2849 |
// If we encounter a page that belongs to a group then |
|
2850 |
// we add that page to the list for that group. |
|
2851 |
const FakeNode *groupNode = static_cast<const FakeNode *>(myTree->root()->findNode(group, Node::Fake)); |
|
2852 |
if (groupNode) |
|
2853 |
fakeNodeMap[groupNode].insert(sortKey, fakeNode); |
|
2854 |
//else |
|
2855 |
// uncategorizedNodeMap.insert(sortKey, fakeNode); |
|
2856 |
}// else |
|
2857 |
// uncategorizedNodeMap.insert(sortKey, fakeNode); |
|
2858 |
}// else |
|
2859 |
// uncategorizedNodeMap.insert(sortKey, fakeNode); |
|
2860 |
} |
|
2861 |
} |
|
2862 |
||
2863 |
// We now list all the pages found that belong to groups. |
|
2864 |
// If only certain pages were found for a group, but the definition page |
|
2865 |
// for that group wasn't listed, the list of pages will be intentionally |
|
2866 |
// incomplete. However, if the group definition page was listed, all the |
|
2867 |
// pages in that group are listed for completeness. |
|
2868 |
||
2869 |
if (!fakeNodeMap.isEmpty()) { |
|
2870 |
foreach (const QString &groupTitle, groupTitlesMap.keys()) { |
|
2871 |
const FakeNode *groupNode = groupTitlesMap[groupTitle]; |
|
2872 |
out() << QString("<h3><a href=\"%1\">%2</a></h3>\n").arg( |
|
2873 |
linkForNode(groupNode, relative)).arg( |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2874 |
protectEnc(groupNode->fullTitle())); |
0 | 2875 |
|
2876 |
if (fakeNodeMap[groupNode].count() == 0) |
|
2877 |
continue; |
|
2878 |
||
2879 |
out() << "<ul>\n"; |
|
2880 |
||
2881 |
foreach (const FakeNode *fakeNode, fakeNodeMap[groupNode]) { |
|
2882 |
QString title = fakeNode->fullTitle(); |
|
2883 |
if (title.startsWith("The ")) |
|
2884 |
title.remove(0, 4); |
|
2885 |
out() << "<li><a href=\"" << linkForNode(fakeNode, relative) << "\">" |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2886 |
<< protectEnc(title) << "</a></li>\n"; |
0 | 2887 |
} |
2888 |
out() << "</ul>\n"; |
|
2889 |
} |
|
2890 |
} |
|
2891 |
||
2892 |
if (!uncategorizedNodeMap.isEmpty()) { |
|
2893 |
out() << QString("<h3>Miscellaneous</h3>\n"); |
|
2894 |
out() << "<ul>\n"; |
|
2895 |
foreach (const FakeNode *fakeNode, uncategorizedNodeMap) { |
|
2896 |
QString title = fakeNode->fullTitle(); |
|
2897 |
if (title.startsWith("The ")) |
|
2898 |
title.remove(0, 4); |
|
2899 |
out() << "<li><a href=\"" << linkForNode(fakeNode, relative) << "\">" |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2900 |
<< protectEnc(title) << "</a></li>\n"; |
0 | 2901 |
} |
2902 |
out() << "</ul>\n"; |
|
2903 |
} |
|
2904 |
} |
|
2905 |
||
2906 |
void HtmlGenerator::generateSection(const NodeList& nl, |
|
2907 |
const Node *relative, |
|
2908 |
CodeMarker *marker, |
|
2909 |
CodeMarker::SynopsisStyle style) |
|
2910 |
{ |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2911 |
bool alignNames = true; |
0 | 2912 |
if (!nl.isEmpty()) { |
2913 |
bool twoColumn = false; |
|
2914 |
if (style == CodeMarker::SeparateList) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2915 |
alignNames = false; |
0 | 2916 |
twoColumn = (nl.count() >= 16); |
2917 |
} |
|
2918 |
else if (nl.first()->type() == Node::Property) { |
|
2919 |
twoColumn = (nl.count() >= 5); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2920 |
alignNames = false; |
0 | 2921 |
} |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2922 |
if (alignNames) { |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2923 |
out() << "<table class=\"alignedsummary\">\n"; |
0 | 2924 |
} |
2925 |
else { |
|
2926 |
if (twoColumn) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2927 |
out() << "<table class=\"propsummary\">\n" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2928 |
<< "<tr><td class=\"topAlign\">"; |
0 | 2929 |
out() << "<ul>\n"; |
2930 |
} |
|
2931 |
||
2932 |
int i = 0; |
|
2933 |
NodeList::ConstIterator m = nl.begin(); |
|
2934 |
while (m != nl.end()) { |
|
2935 |
if ((*m)->access() == Node::Private) { |
|
2936 |
++m; |
|
2937 |
continue; |
|
2938 |
} |
|
2939 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2940 |
if (alignNames) { |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2941 |
out() << "<tr><td class=\"memItemLeft rightAlign topAlign\"> "; |
0 | 2942 |
} |
2943 |
else { |
|
2944 |
if (twoColumn && i == (int) (nl.count() + 1) / 2) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2945 |
out() << "</ul></td><td class=\"topAlign\"><ul>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2946 |
out() << "<li class=\"fn\">"; |
0 | 2947 |
} |
2948 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2949 |
generateSynopsis(*m, relative, marker, style, alignNames); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2950 |
if (alignNames) |
0 | 2951 |
out() << "</td></tr>\n"; |
2952 |
else |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2953 |
out() << "</li>\n"; |
0 | 2954 |
i++; |
2955 |
++m; |
|
2956 |
} |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2957 |
if (alignNames) |
0 | 2958 |
out() << "</table>\n"; |
2959 |
else { |
|
2960 |
out() << "</ul>\n"; |
|
2961 |
if (twoColumn) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2962 |
out() << "</td></tr>\n</table>\n"; |
0 | 2963 |
} |
2964 |
} |
|
2965 |
} |
|
2966 |
||
2967 |
void HtmlGenerator::generateSectionList(const Section& section, |
|
2968 |
const Node *relative, |
|
2969 |
CodeMarker *marker, |
|
2970 |
CodeMarker::SynopsisStyle style) |
|
2971 |
{ |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2972 |
bool alignNames = true; |
0 | 2973 |
if (!section.members.isEmpty()) { |
2974 |
bool twoColumn = false; |
|
2975 |
if (style == CodeMarker::SeparateList) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2976 |
alignNames = false; |
0 | 2977 |
twoColumn = (section.members.count() >= 16); |
2978 |
} |
|
2979 |
else if (section.members.first()->type() == Node::Property) { |
|
2980 |
twoColumn = (section.members.count() >= 5); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2981 |
alignNames = false; |
0 | 2982 |
} |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
2983 |
if (alignNames) { |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2984 |
out() << "<table class=\"alignedsummary\">\n"; |
0 | 2985 |
} |
2986 |
else { |
|
2987 |
if (twoColumn) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2988 |
out() << "<table class=\"propsummary\">\n" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
2989 |
<< "<tr><td class=\"topAlign\">"; |
0 | 2990 |
out() << "<ul>\n"; |
2991 |
} |
|
2992 |
||
2993 |
int i = 0; |
|
2994 |
NodeList::ConstIterator m = section.members.begin(); |
|
2995 |
while (m != section.members.end()) { |
|
2996 |
if ((*m)->access() == Node::Private) { |
|
2997 |
++m; |
|
2998 |
continue; |
|
2999 |
} |
|
3000 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3001 |
if (alignNames) { |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3002 |
out() << "<tr><td class=\"memItemLeft topAlign rightAlign\"> "; |
0 | 3003 |
} |
3004 |
else { |
|
3005 |
if (twoColumn && i == (int) (section.members.count() + 1) / 2) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3006 |
out() << "</ul></td><td class=\"topAlign\"><ul>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3007 |
out() << "<li class=\"fn\">"; |
0 | 3008 |
} |
3009 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3010 |
generateSynopsis(*m, relative, marker, style, alignNames); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3011 |
if (alignNames) |
0 | 3012 |
out() << "</td></tr>\n"; |
3013 |
else |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3014 |
out() << "</li>\n"; |
0 | 3015 |
i++; |
3016 |
++m; |
|
3017 |
} |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3018 |
if (alignNames) |
0 | 3019 |
out() << "</table>\n"; |
3020 |
else { |
|
3021 |
out() << "</ul>\n"; |
|
3022 |
if (twoColumn) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3023 |
out() << "</td></tr>\n</table>\n"; |
0 | 3024 |
} |
3025 |
} |
|
3026 |
||
3027 |
if (style == CodeMarker::Summary && !section.inherited.isEmpty()) { |
|
3028 |
out() << "<ul>\n"; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3029 |
generateSectionInheritedList(section, relative, marker); |
0 | 3030 |
out() << "</ul>\n"; |
3031 |
} |
|
3032 |
} |
|
3033 |
||
3034 |
void HtmlGenerator::generateSectionInheritedList(const Section& section, |
|
3035 |
const Node *relative, |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3036 |
CodeMarker *marker) |
0 | 3037 |
{ |
3038 |
QList<QPair<ClassNode *, int> >::ConstIterator p = section.inherited.begin(); |
|
3039 |
while (p != section.inherited.end()) { |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3040 |
out() << "<li class=\"fn\">"; |
0 | 3041 |
out() << (*p).second << " "; |
3042 |
if ((*p).second == 1) { |
|
3043 |
out() << section.singularMember; |
|
3044 |
} |
|
3045 |
else { |
|
3046 |
out() << section.pluralMember; |
|
3047 |
} |
|
3048 |
out() << " inherited from <a href=\"" << fileName((*p).first) |
|
3049 |
<< "#" << HtmlGenerator::cleanRef(section.name.toLower()) << "\">" |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3050 |
<< protectEnc(marker->plainFullName((*p).first, relative)) |
0 | 3051 |
<< "</a></li>\n"; |
3052 |
++p; |
|
3053 |
} |
|
3054 |
} |
|
3055 |
||
3056 |
void HtmlGenerator::generateSynopsis(const Node *node, |
|
3057 |
const Node *relative, |
|
3058 |
CodeMarker *marker, |
|
3059 |
CodeMarker::SynopsisStyle style, |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3060 |
bool alignNames) |
0 | 3061 |
{ |
3062 |
QString marked = marker->markedUpSynopsis(node, relative, style); |
|
3063 |
QRegExp templateTag("(<[^@>]*>)"); |
|
3064 |
if (marked.indexOf(templateTag) != -1) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3065 |
QString contents = protectEnc(marked.mid(templateTag.pos(1), |
0 | 3066 |
templateTag.cap(1).length())); |
3067 |
marked.replace(templateTag.pos(1), templateTag.cap(1).length(), |
|
3068 |
contents); |
|
3069 |
} |
|
3070 |
marked.replace(QRegExp("<@param>([a-z]+)_([1-9n])</@param>"), |
|
3071 |
"<i>\\1<sub>\\2</sub></i>"); |
|
3072 |
marked.replace("<@param>", "<i>"); |
|
3073 |
marked.replace("</@param>", "</i>"); |
|
3074 |
||
3075 |
if (style == CodeMarker::Summary) { |
|
3076 |
marked.replace("<@name>", ""); // was "<b>" |
|
3077 |
marked.replace("</@name>", ""); // was "</b>" |
|
3078 |
} |
|
3079 |
||
3080 |
if (style == CodeMarker::SeparateList) { |
|
3081 |
QRegExp extraRegExp("<@extra>.*</@extra>"); |
|
3082 |
extraRegExp.setMinimal(true); |
|
3083 |
marked.replace(extraRegExp, ""); |
|
3084 |
} else { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3085 |
marked.replace("<@extra>", "<tt>"); |
0 | 3086 |
marked.replace("</@extra>", "</tt>"); |
3087 |
} |
|
3088 |
||
3089 |
if (style != CodeMarker::Detailed) { |
|
3090 |
marked.replace("<@type>", ""); |
|
3091 |
marked.replace("</@type>", ""); |
|
3092 |
} |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3093 |
out() << highlightedCode(marked, marker, relative, alignNames); |
0 | 3094 |
} |
3095 |
||
3096 |
QString HtmlGenerator::highlightedCode(const QString& markedCode, |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3097 |
CodeMarker* marker, |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3098 |
const Node* relative, |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3099 |
bool alignNames, |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3100 |
const Node* self) |
0 | 3101 |
{ |
3102 |
QString src = markedCode; |
|
3103 |
QString html; |
|
3104 |
QStringRef arg; |
|
3105 |
QStringRef par1; |
|
3106 |
||
3107 |
const QChar charLangle = '<'; |
|
3108 |
const QChar charAt = '@'; |
|
3109 |
||
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3110 |
static const QString typeTag("type"); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3111 |
static const QString headerTag("headerfile"); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3112 |
static const QString funcTag("func"); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3113 |
static const QString linkTag("link"); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3114 |
|
0 | 3115 |
// replace all <@link> tags: "(<@link node=\"([^\"]+)\">).*(</@link>)" |
3116 |
bool done = false; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3117 |
for (int i = 0, srcSize = src.size(); i < srcSize;) { |
0 | 3118 |
if (src.at(i) == charLangle && src.at(i + 1).unicode() == '@') { |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3119 |
if (alignNames && !done) {// && (i != 0)) Why was this here? |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3120 |
html += "</td><td class=\"memItemRight bottomAlign\">"; |
0 | 3121 |
done = true; |
3122 |
} |
|
3123 |
i += 2; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3124 |
if (parseArg(src, linkTag, &i, srcSize, &arg, &par1)) { |
0 | 3125 |
html += "<b>"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3126 |
const Node* n = CodeMarker::nodeForString(par1.toString()); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3127 |
QString link = linkForNode(n, relative); |
0 | 3128 |
addLink(link, arg, &html); |
3129 |
html += "</b>"; |
|
3130 |
} |
|
3131 |
else { |
|
3132 |
html += charLangle; |
|
3133 |
html += charAt; |
|
3134 |
} |
|
3135 |
} |
|
3136 |
else { |
|
3137 |
html += src.at(i++); |
|
3138 |
} |
|
3139 |
} |
|
3140 |
||
3141 |
||
3142 |
if (slow) { |
|
3143 |
// is this block ever used at all? |
|
3144 |
// replace all <@func> tags: "(<@func target=\"([^\"]*)\">)(.*)(</@func>)" |
|
3145 |
src = html; |
|
3146 |
html = QString(); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3147 |
for (int i = 0, srcSize = src.size(); i < srcSize;) { |
0 | 3148 |
if (src.at(i) == charLangle && src.at(i + 1) == charAt) { |
3149 |
i += 2; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3150 |
if (parseArg(src, funcTag, &i, srcSize, &arg, &par1)) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3151 |
const Node* n = marker->resolveTarget(par1.toString(), |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3152 |
myTree, |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3153 |
relative); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3154 |
QString link = linkForNode(n, relative); |
0 | 3155 |
addLink(link, arg, &html); |
3156 |
par1 = QStringRef(); |
|
3157 |
} |
|
3158 |
else { |
|
3159 |
html += charLangle; |
|
3160 |
html += charAt; |
|
3161 |
} |
|
3162 |
} |
|
3163 |
else { |
|
3164 |
html += src.at(i++); |
|
3165 |
} |
|
3166 |
} |
|
3167 |
} |
|
3168 |
||
3169 |
// replace all "(<@(type|headerfile|func)(?: +[^>]*)?>)(.*)(</@\\2>)" tags |
|
3170 |
src = html; |
|
3171 |
html = QString(); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3172 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3173 |
for (int i=0, srcSize=src.size(); i<srcSize;) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3174 |
if (src.at(i) == charLangle && src.at(i+1) == charAt) { |
0 | 3175 |
i += 2; |
3176 |
bool handled = false; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3177 |
if (parseArg(src, typeTag, &i, srcSize, &arg, &par1)) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3178 |
par1 = QStringRef(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3179 |
const Node* n = marker->resolveTarget(arg.toString(), myTree, relative, self); |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3180 |
if (n && n->subType() == Node::QmlBasicType) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3181 |
if (relative && relative->subType() == Node::QmlClass) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3182 |
addLink(linkForNode(n,relative), arg, &html); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3183 |
else |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3184 |
html += arg.toString(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3185 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3186 |
else |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3187 |
addLink(linkForNode(n,relative), arg, &html); |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3188 |
handled = true; |
0 | 3189 |
} |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3190 |
else if (parseArg(src, headerTag, &i, srcSize, &arg, &par1)) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3191 |
par1 = QStringRef(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3192 |
const Node* n = marker->resolveTarget(arg.toString(), myTree, relative); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3193 |
addLink(linkForNode(n,relative), arg, &html); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3194 |
handled = true; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3195 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3196 |
else if (parseArg(src, funcTag, &i, srcSize, &arg, &par1)) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3197 |
par1 = QStringRef(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3198 |
const Node* n = marker->resolveTarget(arg.toString(), myTree, relative); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3199 |
addLink(linkForNode(n,relative), arg, &html); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3200 |
handled = true; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3201 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3202 |
|
0 | 3203 |
if (!handled) { |
3204 |
html += charLangle; |
|
3205 |
html += charAt; |
|
3206 |
} |
|
3207 |
} |
|
3208 |
else { |
|
3209 |
html += src.at(i++); |
|
3210 |
} |
|
3211 |
} |
|
3212 |
||
3213 |
// replace all |
|
3214 |
// "<@comment>" -> "<span class=\"comment\">"; |
|
3215 |
// "<@preprocessor>" -> "<span class=\"preprocessor\">"; |
|
3216 |
// "<@string>" -> "<span class=\"string\">"; |
|
3217 |
// "<@char>" -> "<span class=\"char\">"; |
|
3218 |
// "</@(?:comment|preprocessor|string|char)>" -> "</span>" |
|
3219 |
src = html; |
|
3220 |
html = QString(); |
|
3221 |
static const QString spanTags[] = { |
|
3222 |
"<@comment>", "<span class=\"comment\">", |
|
3223 |
"<@preprocessor>", "<span class=\"preprocessor\">", |
|
3224 |
"<@string>", "<span class=\"string\">", |
|
3225 |
"<@char>", "<span class=\"char\">", |
|
3226 |
"</@comment>", "</span>", |
|
3227 |
"</@preprocessor>","</span>", |
|
3228 |
"</@string>", "</span>", |
|
3229 |
"</@char>", "</span>" |
|
3230 |
}; |
|
3231 |
for (int i = 0, n = src.size(); i < n;) { |
|
3232 |
if (src.at(i) == charLangle) { |
|
3233 |
bool handled = false; |
|
3234 |
for (int k = 0; k != 8; ++k) { |
|
3235 |
const QString & tag = spanTags[2 * k]; |
|
3236 |
if (tag == QStringRef(&src, i, tag.length())) { |
|
3237 |
html += spanTags[2 * k + 1]; |
|
3238 |
i += tag.length(); |
|
3239 |
handled = true; |
|
3240 |
break; |
|
3241 |
} |
|
3242 |
} |
|
3243 |
if (!handled) { |
|
3244 |
++i; |
|
3245 |
if (src.at(i) == charAt || |
|
3246 |
(src.at(i) == QLatin1Char('/') && src.at(i + 1) == charAt)) { |
|
3247 |
// drop 'our' unknown tags (the ones still containing '@') |
|
3248 |
while (i < n && src.at(i) != QLatin1Char('>')) |
|
3249 |
++i; |
|
3250 |
++i; |
|
3251 |
} |
|
3252 |
else { |
|
3253 |
// retain all others |
|
3254 |
html += charLangle; |
|
3255 |
} |
|
3256 |
} |
|
3257 |
} |
|
3258 |
else { |
|
3259 |
html += src.at(i); |
|
3260 |
++i; |
|
3261 |
} |
|
3262 |
} |
|
3263 |
||
3264 |
return html; |
|
3265 |
} |
|
3266 |
||
3267 |
void HtmlGenerator::generateLink(const Atom* atom, |
|
3268 |
const Node* /* relative */, |
|
3269 |
CodeMarker* marker) |
|
3270 |
{ |
|
3271 |
static QRegExp camelCase("[A-Z][A-Z][a-z]|[a-z][A-Z0-9]|_"); |
|
3272 |
||
3273 |
if (funcLeftParen.indexIn(atom->string()) != -1 && marker->recognizeLanguage("Cpp")) { |
|
3274 |
// hack for C++: move () outside of link |
|
3275 |
int k = funcLeftParen.pos(1); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3276 |
out() << protectEnc(atom->string().left(k)); |
0 | 3277 |
if (link.isEmpty()) { |
3278 |
if (showBrokenLinks) |
|
3279 |
out() << "</i>"; |
|
3280 |
} else { |
|
3281 |
out() << "</a>"; |
|
3282 |
} |
|
3283 |
inLink = false; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3284 |
out() << protectEnc(atom->string().mid(k)); |
0 | 3285 |
} else if (marker->recognizeLanguage("Java")) { |
3286 |
// hack for Java: remove () and use <tt> when appropriate |
|
3287 |
bool func = atom->string().endsWith("()"); |
|
3288 |
bool tt = (func || atom->string().contains(camelCase)); |
|
3289 |
if (tt) |
|
3290 |
out() << "<tt>"; |
|
3291 |
if (func) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3292 |
out() << protectEnc(atom->string().left(atom->string().length() - 2)); |
0 | 3293 |
} else { |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3294 |
out() << protectEnc(atom->string()); |
0 | 3295 |
} |
3296 |
out() << "</tt>"; |
|
3297 |
} else { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3298 |
out() << protectEnc(atom->string()); |
0 | 3299 |
} |
3300 |
} |
|
3301 |
||
3302 |
QString HtmlGenerator::cleanRef(const QString& ref) |
|
3303 |
{ |
|
3304 |
QString clean; |
|
3305 |
||
3306 |
if (ref.isEmpty()) |
|
3307 |
return clean; |
|
3308 |
||
3309 |
clean.reserve(ref.size() + 20); |
|
3310 |
const QChar c = ref[0]; |
|
3311 |
const uint u = c.unicode(); |
|
3312 |
||
3313 |
if ((u >= 'a' && u <= 'z') || |
|
3314 |
(u >= 'A' && u <= 'Z') || |
|
3315 |
(u >= '0' && u <= '9')) { |
|
3316 |
clean += c; |
|
3317 |
} else if (u == '~') { |
|
3318 |
clean += "dtor."; |
|
3319 |
} else if (u == '_') { |
|
3320 |
clean += "underscore."; |
|
3321 |
} else { |
|
3322 |
clean += "A"; |
|
3323 |
} |
|
3324 |
||
3325 |
for (int i = 1; i < (int) ref.length(); i++) { |
|
3326 |
const QChar c = ref[i]; |
|
3327 |
const uint u = c.unicode(); |
|
3328 |
if ((u >= 'a' && u <= 'z') || |
|
3329 |
(u >= 'A' && u <= 'Z') || |
|
3330 |
(u >= '0' && u <= '9') || u == '-' || |
|
3331 |
u == '_' || u == ':' || u == '.') { |
|
3332 |
clean += c; |
|
3333 |
} else if (c.isSpace()) { |
|
3334 |
clean += "-"; |
|
3335 |
} else if (u == '!') { |
|
3336 |
clean += "-not"; |
|
3337 |
} else if (u == '&') { |
|
3338 |
clean += "-and"; |
|
3339 |
} else if (u == '<') { |
|
3340 |
clean += "-lt"; |
|
3341 |
} else if (u == '=') { |
|
3342 |
clean += "-eq"; |
|
3343 |
} else if (u == '>') { |
|
3344 |
clean += "-gt"; |
|
3345 |
} else if (u == '#') { |
|
3346 |
clean += "#"; |
|
3347 |
} else { |
|
3348 |
clean += "-"; |
|
3349 |
clean += QString::number((int)u, 16); |
|
3350 |
} |
|
3351 |
} |
|
3352 |
return clean; |
|
3353 |
} |
|
3354 |
||
3355 |
QString HtmlGenerator::registerRef(const QString& ref) |
|
3356 |
{ |
|
3357 |
QString clean = HtmlGenerator::cleanRef(ref); |
|
3358 |
||
3359 |
for (;;) { |
|
3360 |
QString& prevRef = refMap[clean.toLower()]; |
|
3361 |
if (prevRef.isEmpty()) { |
|
3362 |
prevRef = ref; |
|
3363 |
break; |
|
3364 |
} else if (prevRef == ref) { |
|
3365 |
break; |
|
3366 |
} |
|
3367 |
clean += "x"; |
|
3368 |
} |
|
3369 |
return clean; |
|
3370 |
} |
|
3371 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3372 |
QString HtmlGenerator::protectEnc(const QString &string) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3373 |
{ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3374 |
return protect(string, outputEncoding); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3375 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3376 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3377 |
QString HtmlGenerator::protect(const QString &string, const QString &outputEncoding) |
0 | 3378 |
{ |
3379 |
#define APPEND(x) \ |
|
3380 |
if (html.isEmpty()) { \ |
|
3381 |
html = string; \ |
|
3382 |
html.truncate(i); \ |
|
3383 |
} \ |
|
3384 |
html += (x); |
|
3385 |
||
3386 |
QString html; |
|
3387 |
int n = string.length(); |
|
3388 |
||
3389 |
for (int i = 0; i < n; ++i) { |
|
3390 |
QChar ch = string.at(i); |
|
3391 |
||
3392 |
if (ch == QLatin1Char('&')) { |
|
3393 |
APPEND("&"); |
|
3394 |
} else if (ch == QLatin1Char('<')) { |
|
3395 |
APPEND("<"); |
|
3396 |
} else if (ch == QLatin1Char('>')) { |
|
3397 |
APPEND(">"); |
|
3398 |
} else if (ch == QLatin1Char('"')) { |
|
3399 |
APPEND("""); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3400 |
} else if ((outputEncoding == "ISO-8859-1" && ch.unicode() > 0x007F) |
0 | 3401 |
|| (ch == QLatin1Char('*') && i + 1 < n && string.at(i) == QLatin1Char('/')) |
3402 |
|| (ch == QLatin1Char('.') && i > 2 && string.at(i - 2) == QLatin1Char('.'))) { |
|
3403 |
// we escape '*/' and the last dot in 'e.g.' and 'i.e.' for the Javadoc generator |
|
3404 |
APPEND("&#x"); |
|
3405 |
html += QString::number(ch.unicode(), 16); |
|
3406 |
html += QLatin1Char(';'); |
|
3407 |
} else { |
|
3408 |
if (!html.isEmpty()) |
|
3409 |
html += ch; |
|
3410 |
} |
|
3411 |
} |
|
3412 |
||
3413 |
if (!html.isEmpty()) |
|
3414 |
return html; |
|
3415 |
return string; |
|
3416 |
||
3417 |
#undef APPEND |
|
3418 |
} |
|
3419 |
||
3420 |
QString HtmlGenerator::fileBase(const Node *node) |
|
3421 |
{ |
|
3422 |
QString result; |
|
3423 |
||
3424 |
result = PageGenerator::fileBase(node); |
|
3425 |
||
3426 |
if (!node->isInnerNode()) { |
|
3427 |
switch (node->status()) { |
|
3428 |
case Node::Compat: |
|
3429 |
result += "-qt3"; |
|
3430 |
break; |
|
3431 |
case Node::Obsolete: |
|
3432 |
result += "-obsolete"; |
|
3433 |
break; |
|
3434 |
default: |
|
3435 |
; |
|
3436 |
} |
|
3437 |
} |
|
3438 |
return result; |
|
3439 |
} |
|
3440 |
||
3441 |
#if 0 |
|
3442 |
QString HtmlGenerator::fileBase(const Node *node, |
|
3443 |
const SectionIterator& section) |
|
3444 |
{ |
|
3445 |
QStringList::ConstIterator s = section.sectionNumber().end(); |
|
3446 |
QStringList::ConstIterator b = section.baseNameStack().end(); |
|
3447 |
||
3448 |
QString suffix; |
|
3449 |
QString base = fileBase(node); |
|
3450 |
||
3451 |
while (s != section.sectionNumber().begin()) { |
|
3452 |
--s; |
|
3453 |
--b; |
|
3454 |
if (!(*b).isEmpty()) { |
|
3455 |
base = *b; |
|
3456 |
break; |
|
3457 |
} |
|
3458 |
suffix.prepend("-" + *s); |
|
3459 |
} |
|
3460 |
return base + suffix; |
|
3461 |
} |
|
3462 |
#endif |
|
3463 |
||
3464 |
QString HtmlGenerator::fileName(const Node *node) |
|
3465 |
{ |
|
3466 |
if (node->type() == Node::Fake) { |
|
3467 |
if (static_cast<const FakeNode *>(node)->subType() == Node::ExternalPage) |
|
3468 |
return node->name(); |
|
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3469 |
if (static_cast<const FakeNode *>(node)->subType() == Node::Image) |
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3470 |
return node->name(); |
0 | 3471 |
} |
3472 |
return PageGenerator::fileName(node); |
|
3473 |
} |
|
3474 |
||
3475 |
QString HtmlGenerator::refForNode(const Node *node) |
|
3476 |
{ |
|
3477 |
const FunctionNode *func; |
|
3478 |
const TypedefNode *typedeffe; |
|
3479 |
QString ref; |
|
3480 |
||
3481 |
switch (node->type()) { |
|
3482 |
case Node::Namespace: |
|
3483 |
case Node::Class: |
|
3484 |
default: |
|
3485 |
break; |
|
3486 |
case Node::Enum: |
|
3487 |
ref = node->name() + "-enum"; |
|
3488 |
break; |
|
3489 |
case Node::Typedef: |
|
3490 |
typedeffe = static_cast<const TypedefNode *>(node); |
|
3491 |
if (typedeffe->associatedEnum()) { |
|
3492 |
return refForNode(typedeffe->associatedEnum()); |
|
3493 |
} |
|
3494 |
else { |
|
3495 |
ref = node->name() + "-typedef"; |
|
3496 |
} |
|
3497 |
break; |
|
3498 |
case Node::Function: |
|
3499 |
func = static_cast<const FunctionNode *>(node); |
|
3500 |
if (func->associatedProperty()) { |
|
3501 |
return refForNode(func->associatedProperty()); |
|
3502 |
} |
|
3503 |
else { |
|
3504 |
ref = func->name(); |
|
3505 |
if (func->overloadNumber() != 1) |
|
3506 |
ref += "-" + QString::number(func->overloadNumber()); |
|
3507 |
} |
|
3508 |
break; |
|
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3509 |
#ifdef QDOC_QML |
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3510 |
case Node::Fake: |
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3511 |
if (node->subType() != Node::QmlPropertyGroup) |
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3512 |
break; |
0 | 3513 |
case Node::QmlProperty: |
3514 |
#endif |
|
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3515 |
case Node::Property: |
0 | 3516 |
ref = node->name() + "-prop"; |
3517 |
break; |
|
3518 |
#ifdef QDOC_QML |
|
3519 |
case Node::QmlSignal: |
|
3520 |
ref = node->name() + "-signal"; |
|
3521 |
break; |
|
3522 |
case Node::QmlMethod: |
|
3523 |
ref = node->name() + "-method"; |
|
3524 |
break; |
|
3525 |
#endif |
|
3526 |
case Node::Variable: |
|
3527 |
ref = node->name() + "-var"; |
|
3528 |
break; |
|
3529 |
case Node::Target: |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3530 |
return protectEnc(node->name()); |
0 | 3531 |
} |
3532 |
return registerRef(ref); |
|
3533 |
} |
|
3534 |
||
3535 |
QString HtmlGenerator::linkForNode(const Node *node, const Node *relative) |
|
3536 |
{ |
|
3537 |
QString link; |
|
3538 |
QString fn; |
|
3539 |
QString ref; |
|
3540 |
||
3541 |
if (node == 0 || node == relative) |
|
3542 |
return QString(); |
|
3543 |
if (!node->url().isEmpty()) |
|
3544 |
return node->url(); |
|
3545 |
if (fileBase(node).isEmpty()) |
|
3546 |
return QString(); |
|
3547 |
if (node->access() == Node::Private) |
|
3548 |
return QString(); |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3549 |
|
0 | 3550 |
fn = fileName(node); |
3551 |
/* if (!node->url().isEmpty()) |
|
3552 |
return fn;*/ |
|
3553 |
#if 0 |
|
3554 |
// ### reintroduce this test, without breaking .dcf files |
|
3555 |
if (fn != outFileName()) |
|
3556 |
#endif |
|
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3557 |
link += fn; |
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3558 |
|
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
3559 |
if (!node->isInnerNode() || node->subType() == Node::QmlPropertyGroup) { |
0 | 3560 |
ref = refForNode(node); |
3561 |
if (relative && fn == fileName(relative) && ref == refForNode(relative)) |
|
3562 |
return QString(); |
|
3563 |
||
3564 |
link += "#"; |
|
3565 |
link += ref; |
|
3566 |
} |
|
3567 |
return link; |
|
3568 |
} |
|
3569 |
||
3570 |
QString HtmlGenerator::refForAtom(Atom *atom, const Node * /* node */) |
|
3571 |
{ |
|
3572 |
if (atom->type() == Atom::SectionLeft) { |
|
3573 |
return Doc::canonicalTitle(Text::sectionHeading(atom).toString()); |
|
3574 |
} |
|
3575 |
else if (atom->type() == Atom::Target) { |
|
3576 |
return Doc::canonicalTitle(atom->string()); |
|
3577 |
} |
|
3578 |
else { |
|
3579 |
return QString(); |
|
3580 |
} |
|
3581 |
} |
|
3582 |
||
3583 |
void HtmlGenerator::generateFullName(const Node *apparentNode, |
|
3584 |
const Node *relative, |
|
3585 |
CodeMarker *marker, |
|
3586 |
const Node *actualNode) |
|
3587 |
{ |
|
3588 |
if (actualNode == 0) |
|
3589 |
actualNode = apparentNode; |
|
3590 |
out() << "<a href=\"" << linkForNode(actualNode, relative); |
|
3591 |
if (true || relative == 0 || relative->status() != actualNode->status()) { |
|
3592 |
switch (actualNode->status()) { |
|
3593 |
case Node::Obsolete: |
|
3594 |
out() << "\" class=\"obsolete"; |
|
3595 |
break; |
|
3596 |
case Node::Compat: |
|
3597 |
out() << "\" class=\"compat"; |
|
3598 |
break; |
|
3599 |
default: |
|
3600 |
; |
|
3601 |
} |
|
3602 |
} |
|
3603 |
out() << "\">"; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3604 |
out() << protectEnc(fullName(apparentNode, relative, marker)); |
0 | 3605 |
out() << "</a>"; |
3606 |
} |
|
3607 |
||
3608 |
void HtmlGenerator::generateDetailedMember(const Node *node, |
|
3609 |
const InnerNode *relative, |
|
3610 |
CodeMarker *marker) |
|
3611 |
{ |
|
3612 |
const EnumNode *enume; |
|
3613 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3614 |
#ifdef GENERATE_MAC_REFS |
0 | 3615 |
generateMacRef(node, marker); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3616 |
#endif |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3617 |
generateExtractionMark(node, MemberMark); |
0 | 3618 |
if (node->type() == Node::Enum |
3619 |
&& (enume = static_cast<const EnumNode *>(node))->flagsType()) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3620 |
#ifdef GENERATE_MAC_REFS |
0 | 3621 |
generateMacRef(enume->flagsType(), marker); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3622 |
#endif |
0 | 3623 |
out() << "<h3 class=\"flags\">"; |
3624 |
out() << "<a name=\"" + refForNode(node) + "\"></a>"; |
|
3625 |
generateSynopsis(enume, relative, marker, CodeMarker::Detailed); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3626 |
out() << "<br/>"; |
0 | 3627 |
generateSynopsis(enume->flagsType(), |
3628 |
relative, |
|
3629 |
marker, |
|
3630 |
CodeMarker::Detailed); |
|
3631 |
out() << "</h3>\n"; |
|
3632 |
} |
|
3633 |
else { |
|
3634 |
out() << "<h3 class=\"fn\">"; |
|
3635 |
out() << "<a name=\"" + refForNode(node) + "\"></a>"; |
|
3636 |
generateSynopsis(node, relative, marker, CodeMarker::Detailed); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3637 |
out() << "</h3>" << divNavTop << "\n"; |
0 | 3638 |
} |
3639 |
||
3640 |
generateStatus(node, marker); |
|
3641 |
generateBody(node, marker); |
|
3642 |
generateThreadSafeness(node, marker); |
|
3643 |
generateSince(node, marker); |
|
3644 |
||
3645 |
if (node->type() == Node::Property) { |
|
3646 |
const PropertyNode *property = static_cast<const PropertyNode *>(node); |
|
3647 |
Section section; |
|
3648 |
||
3649 |
section.members += property->getters(); |
|
3650 |
section.members += property->setters(); |
|
3651 |
section.members += property->resetters(); |
|
3652 |
||
3653 |
if (!section.members.isEmpty()) { |
|
3654 |
out() << "<p><b>Access functions:</b></p>\n"; |
|
3655 |
generateSectionList(section, node, marker, CodeMarker::Accessors); |
|
3656 |
} |
|
3657 |
||
3658 |
Section notifiers; |
|
3659 |
notifiers.members += property->notifiers(); |
|
3660 |
||
3661 |
if (!notifiers.members.isEmpty()) { |
|
3662 |
out() << "<p><b>Notifier signal:</b></p>\n"; |
|
3663 |
//out() << "<p>This signal is emitted when the property value is changed.</p>\n"; |
|
3664 |
generateSectionList(notifiers, node, marker, CodeMarker::Accessors); |
|
3665 |
} |
|
3666 |
} |
|
3667 |
else if (node->type() == Node::Enum) { |
|
3668 |
const EnumNode *enume = static_cast<const EnumNode *>(node); |
|
3669 |
if (enume->flagsType()) { |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3670 |
out() << "<p>The " << protectEnc(enume->flagsType()->name()) |
0 | 3671 |
<< " type is a typedef for " |
3672 |
<< "<a href=\"qflags.html\">QFlags</a><" |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3673 |
<< protectEnc(enume->name()) |
0 | 3674 |
<< ">. It stores an OR combination of " |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3675 |
<< protectEnc(enume->name()) |
0 | 3676 |
<< " values.</p>\n"; |
3677 |
} |
|
3678 |
} |
|
3679 |
generateAlsoList(node, marker); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3680 |
generateExtractionMark(node, EndMark); |
0 | 3681 |
} |
3682 |
||
3683 |
void HtmlGenerator::findAllClasses(const InnerNode *node) |
|
3684 |
{ |
|
3685 |
NodeList::const_iterator c = node->childNodes().constBegin(); |
|
3686 |
while (c != node->childNodes().constEnd()) { |
|
3687 |
if ((*c)->access() != Node::Private && (*c)->url().isEmpty()) { |
|
3688 |
if ((*c)->type() == Node::Class && !(*c)->doc().isEmpty()) { |
|
3689 |
QString className = (*c)->name(); |
|
3690 |
if ((*c)->parent() && |
|
3691 |
(*c)->parent()->type() == Node::Namespace && |
|
3692 |
!(*c)->parent()->name().isEmpty()) |
|
3693 |
className = (*c)->parent()->name()+"::"+className; |
|
3694 |
||
3695 |
if (!(static_cast<const ClassNode *>(*c))->hideFromMainList()) { |
|
3696 |
if ((*c)->status() == Node::Compat) { |
|
3697 |
compatClasses.insert(className, *c); |
|
3698 |
} |
|
3699 |
else if ((*c)->status() == Node::Obsolete) { |
|
3700 |
obsoleteClasses.insert(className, *c); |
|
3701 |
} |
|
3702 |
else { |
|
3703 |
nonCompatClasses.insert(className, *c); |
|
3704 |
if ((*c)->status() == Node::Main) |
|
3705 |
mainClasses.insert(className, *c); |
|
3706 |
} |
|
3707 |
} |
|
3708 |
||
3709 |
QString moduleName = (*c)->moduleName(); |
|
3710 |
if (moduleName == "Qt3SupportLight") { |
|
3711 |
moduleClassMap[moduleName].insert((*c)->name(), *c); |
|
3712 |
moduleName = "Qt3Support"; |
|
3713 |
} |
|
3714 |
if (!moduleName.isEmpty()) |
|
3715 |
moduleClassMap[moduleName].insert((*c)->name(), *c); |
|
3716 |
||
3717 |
QString serviceName = |
|
3718 |
(static_cast<const ClassNode *>(*c))->serviceName(); |
|
3719 |
if (!serviceName.isEmpty()) |
|
3720 |
serviceClasses.insert(serviceName, *c); |
|
3721 |
} |
|
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3722 |
else if ((*c)->type() == Node::Fake && |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3723 |
(*c)->subType() == Node::QmlClass && |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3724 |
!(*c)->doc().isEmpty()) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3725 |
QString qmlClassName = (*c)->name(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3726 |
qmlClasses.insert(qmlClassName,*c); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
3727 |
} |
0 | 3728 |
else if ((*c)->isInnerNode()) { |
3729 |
findAllClasses(static_cast<InnerNode *>(*c)); |
|
3730 |
} |
|
3731 |
} |
|
3732 |
++c; |
|
3733 |
} |
|
3734 |
} |
|
3735 |
||
3736 |
/*! |
|
3737 |
For generating the "New Classes... in 4.6" section on the |
|
3738 |
What's New in 4.6" page. |
|
3739 |
*/ |
|
3740 |
void HtmlGenerator::findAllSince(const InnerNode *node) |
|
3741 |
{ |
|
3742 |
NodeList::const_iterator child = node->childNodes().constBegin(); |
|
3743 |
while (child != node->childNodes().constEnd()) { |
|
3744 |
QString sinceVersion = (*child)->since(); |
|
3745 |
if (((*child)->access() != Node::Private) && !sinceVersion.isEmpty()) { |
|
3746 |
NewSinceMaps::iterator nsmap = newSinceMaps.find(sinceVersion); |
|
3747 |
if (nsmap == newSinceMaps.end()) |
|
3748 |
nsmap = newSinceMaps.insert(sinceVersion,NodeMultiMap()); |
|
3749 |
NewClassMaps::iterator ncmap = newClassMaps.find(sinceVersion); |
|
3750 |
if (ncmap == newClassMaps.end()) |
|
3751 |
ncmap = newClassMaps.insert(sinceVersion,NodeMap()); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3752 |
NewClassMaps::iterator nqcmap = newQmlClassMaps.find(sinceVersion); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3753 |
if (nqcmap == newQmlClassMaps.end()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3754 |
nqcmap = newQmlClassMaps.insert(sinceVersion,NodeMap()); |
0 | 3755 |
|
3756 |
if ((*child)->type() == Node::Function) { |
|
3757 |
FunctionNode *func = static_cast<FunctionNode *>(*child); |
|
3758 |
if ((func->status() > Node::Obsolete) && |
|
3759 |
(func->metaness() != FunctionNode::Ctor) && |
|
3760 |
(func->metaness() != FunctionNode::Dtor)) { |
|
3761 |
nsmap.value().insert(func->name(),(*child)); |
|
3762 |
} |
|
3763 |
} |
|
3764 |
else if ((*child)->url().isEmpty()) { |
|
3765 |
if ((*child)->type() == Node::Class && !(*child)->doc().isEmpty()) { |
|
3766 |
QString className = (*child)->name(); |
|
3767 |
if ((*child)->parent() && |
|
3768 |
(*child)->parent()->type() == Node::Namespace && |
|
3769 |
!(*child)->parent()->name().isEmpty()) |
|
3770 |
className = (*child)->parent()->name()+"::"+className; |
|
3771 |
nsmap.value().insert(className,(*child)); |
|
3772 |
ncmap.value().insert(className,(*child)); |
|
3773 |
} |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3774 |
else if ((*child)->subType() == Node::QmlClass) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3775 |
QString className = (*child)->name(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3776 |
if ((*child)->parent() && |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3777 |
(*child)->parent()->type() == Node::Namespace && |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3778 |
!(*child)->parent()->name().isEmpty()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3779 |
className = (*child)->parent()->name()+"::"+className; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3780 |
nsmap.value().insert(className,(*child)); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3781 |
nqcmap.value().insert(className,(*child)); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3782 |
} |
0 | 3783 |
} |
3784 |
else { |
|
3785 |
QString name = (*child)->name(); |
|
3786 |
if ((*child)->parent() && |
|
3787 |
(*child)->parent()->type() == Node::Namespace && |
|
3788 |
!(*child)->parent()->name().isEmpty()) |
|
3789 |
name = (*child)->parent()->name()+"::"+name; |
|
3790 |
nsmap.value().insert(name,(*child)); |
|
3791 |
} |
|
3792 |
if ((*child)->isInnerNode()) { |
|
3793 |
findAllSince(static_cast<InnerNode *>(*child)); |
|
3794 |
} |
|
3795 |
} |
|
3796 |
++child; |
|
3797 |
} |
|
3798 |
} |
|
3799 |
||
3800 |
void HtmlGenerator::findAllFunctions(const InnerNode *node) |
|
3801 |
{ |
|
3802 |
NodeList::ConstIterator c = node->childNodes().begin(); |
|
3803 |
while (c != node->childNodes().end()) { |
|
3804 |
if ((*c)->access() != Node::Private) { |
|
3805 |
if ((*c)->isInnerNode() && (*c)->url().isEmpty()) { |
|
3806 |
findAllFunctions(static_cast<const InnerNode *>(*c)); |
|
3807 |
} |
|
3808 |
else if ((*c)->type() == Node::Function) { |
|
3809 |
const FunctionNode *func = static_cast<const FunctionNode *>(*c); |
|
3810 |
if ((func->status() > Node::Obsolete) && |
|
3811 |
(func->metaness() != FunctionNode::Ctor) && |
|
3812 |
(func->metaness() != FunctionNode::Dtor)) { |
|
3813 |
funcIndex[(*c)->name()].insert(myTree->fullDocumentName((*c)->parent()), *c); |
|
3814 |
} |
|
3815 |
} |
|
3816 |
} |
|
3817 |
++c; |
|
3818 |
} |
|
3819 |
} |
|
3820 |
||
3821 |
void HtmlGenerator::findAllLegaleseTexts(const InnerNode *node) |
|
3822 |
{ |
|
3823 |
NodeList::ConstIterator c = node->childNodes().begin(); |
|
3824 |
while (c != node->childNodes().end()) { |
|
3825 |
if ((*c)->access() != Node::Private) { |
|
3826 |
if (!(*c)->doc().legaleseText().isEmpty()) |
|
3827 |
legaleseTexts.insertMulti((*c)->doc().legaleseText(), *c); |
|
3828 |
if ((*c)->isInnerNode()) |
|
3829 |
findAllLegaleseTexts(static_cast<const InnerNode *>(*c)); |
|
3830 |
} |
|
3831 |
++c; |
|
3832 |
} |
|
3833 |
} |
|
3834 |
||
3835 |
void HtmlGenerator::findAllNamespaces(const InnerNode *node) |
|
3836 |
{ |
|
3837 |
NodeList::ConstIterator c = node->childNodes().begin(); |
|
3838 |
while (c != node->childNodes().end()) { |
|
3839 |
if ((*c)->access() != Node::Private) { |
|
3840 |
if ((*c)->isInnerNode() && (*c)->url().isEmpty()) { |
|
3841 |
findAllNamespaces(static_cast<const InnerNode *>(*c)); |
|
3842 |
if ((*c)->type() == Node::Namespace) { |
|
3843 |
const NamespaceNode *nspace = static_cast<const NamespaceNode *>(*c); |
|
3844 |
// Ensure that the namespace's name is not empty (the root |
|
3845 |
// namespace has no name). |
|
3846 |
if (!nspace->name().isEmpty()) { |
|
3847 |
namespaceIndex.insert(nspace->name(), *c); |
|
3848 |
QString moduleName = (*c)->moduleName(); |
|
3849 |
if (moduleName == "Qt3SupportLight") { |
|
3850 |
moduleNamespaceMap[moduleName].insert((*c)->name(), *c); |
|
3851 |
moduleName = "Qt3Support"; |
|
3852 |
} |
|
3853 |
if (!moduleName.isEmpty()) |
|
3854 |
moduleNamespaceMap[moduleName].insert((*c)->name(), *c); |
|
3855 |
} |
|
3856 |
} |
|
3857 |
} |
|
3858 |
} |
|
3859 |
++c; |
|
3860 |
} |
|
3861 |
} |
|
3862 |
||
3863 |
int HtmlGenerator::hOffset(const Node *node) |
|
3864 |
{ |
|
3865 |
switch (node->type()) { |
|
3866 |
case Node::Namespace: |
|
3867 |
case Node::Class: |
|
3868 |
return 2; |
|
3869 |
case Node::Fake: |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
3870 |
return 1; |
0 | 3871 |
case Node::Enum: |
3872 |
case Node::Typedef: |
|
3873 |
case Node::Function: |
|
3874 |
case Node::Property: |
|
3875 |
default: |
|
3876 |
return 3; |
|
3877 |
} |
|
3878 |
} |
|
3879 |
||
3880 |
bool HtmlGenerator::isThreeColumnEnumValueTable(const Atom *atom) |
|
3881 |
{ |
|
3882 |
while (atom != 0 && !(atom->type() == Atom::ListRight && atom->string() == ATOM_LIST_VALUE)) { |
|
3883 |
if (atom->type() == Atom::ListItemLeft && !matchAhead(atom, Atom::ListItemRight)) |
|
3884 |
return true; |
|
3885 |
atom = atom->next(); |
|
3886 |
} |
|
3887 |
return false; |
|
3888 |
} |
|
3889 |
||
3890 |
const Node *HtmlGenerator::findNodeForTarget(const QString &target, |
|
3891 |
const Node *relative, |
|
3892 |
CodeMarker *marker, |
|
3893 |
const Atom *atom) |
|
3894 |
{ |
|
3895 |
const Node *node = 0; |
|
3896 |
||
3897 |
if (target.isEmpty()) { |
|
3898 |
node = relative; |
|
3899 |
} |
|
3900 |
else if (target.endsWith(".html")) { |
|
3901 |
node = myTree->root()->findNode(target, Node::Fake); |
|
3902 |
} |
|
3903 |
else if (marker) { |
|
3904 |
node = marker->resolveTarget(target, myTree, relative); |
|
3905 |
if (!node) |
|
3906 |
node = myTree->findFakeNodeByTitle(target); |
|
3907 |
if (!node && atom) { |
|
3908 |
node = myTree->findUnambiguousTarget(target, |
|
3909 |
*const_cast<Atom**>(&atom)); |
|
3910 |
} |
|
3911 |
} |
|
3912 |
||
3913 |
if (!node) |
|
3914 |
relative->doc().location().warning(tr("Cannot link to '%1'").arg(target)); |
|
3915 |
||
3916 |
return node; |
|
3917 |
} |
|
3918 |
||
3919 |
const QPair<QString,QString> HtmlGenerator::anchorForNode(const Node *node) |
|
3920 |
{ |
|
3921 |
QPair<QString,QString> anchorPair; |
|
3922 |
||
3923 |
anchorPair.first = PageGenerator::fileName(node); |
|
3924 |
if (node->type() == Node::Fake) { |
|
3925 |
const FakeNode *fakeNode = static_cast<const FakeNode*>(node); |
|
3926 |
anchorPair.second = fakeNode->title(); |
|
3927 |
} |
|
3928 |
||
3929 |
return anchorPair; |
|
3930 |
} |
|
3931 |
||
3932 |
QString HtmlGenerator::getLink(const Atom *atom, |
|
3933 |
const Node *relative, |
|
3934 |
CodeMarker *marker, |
|
3935 |
const Node** node) |
|
3936 |
{ |
|
3937 |
QString link; |
|
3938 |
*node = 0; |
|
3939 |
inObsoleteLink = false; |
|
3940 |
||
3941 |
if (atom->string().contains(":") && |
|
3942 |
(atom->string().startsWith("file:") |
|
3943 |
|| atom->string().startsWith("http:") |
|
3944 |
|| atom->string().startsWith("https:") |
|
3945 |
|| atom->string().startsWith("ftp:") |
|
3946 |
|| atom->string().startsWith("mailto:"))) { |
|
3947 |
||
3948 |
link = atom->string(); |
|
3949 |
} |
|
3950 |
else { |
|
3951 |
QStringList path; |
|
3952 |
if (atom->string().contains('#')) { |
|
3953 |
path = atom->string().split('#'); |
|
3954 |
} |
|
3955 |
else { |
|
3956 |
path.append(atom->string()); |
|
3957 |
} |
|
3958 |
||
3959 |
Atom *targetAtom = 0; |
|
3960 |
||
3961 |
QString first = path.first().trimmed(); |
|
3962 |
if (first.isEmpty()) { |
|
3963 |
*node = relative; |
|
3964 |
} |
|
3965 |
else if (first.endsWith(".html")) { |
|
3966 |
*node = myTree->root()->findNode(first, Node::Fake); |
|
3967 |
} |
|
3968 |
else { |
|
3969 |
*node = marker->resolveTarget(first, myTree, relative); |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3970 |
if (!*node) { |
0 | 3971 |
*node = myTree->findFakeNodeByTitle(first); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3972 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3973 |
if (!*node) { |
0 | 3974 |
*node = myTree->findUnambiguousTarget(first, targetAtom); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
3975 |
} |
0 | 3976 |
} |
3977 |
||
3978 |
if (*node) { |
|
3979 |
if (!(*node)->url().isEmpty()) |
|
3980 |
return (*node)->url(); |
|
3981 |
else |
|
3982 |
path.removeFirst(); |
|
3983 |
} |
|
3984 |
else { |
|
3985 |
*node = relative; |
|
3986 |
} |
|
3987 |
||
3988 |
if (*node) { |
|
3989 |
if ((*node)->status() == Node::Obsolete) { |
|
3990 |
if (relative) { |
|
3991 |
if (relative->parent() != *node) { |
|
3992 |
if (relative->status() != Node::Obsolete) { |
|
3993 |
bool porting = false; |
|
3994 |
if (relative->type() == Node::Fake) { |
|
3995 |
const FakeNode* fake = static_cast<const FakeNode*>(relative); |
|
3996 |
if (fake->title().startsWith("Porting")) |
|
3997 |
porting = true; |
|
3998 |
} |
|
3999 |
QString name = marker->plainFullName(relative); |
|
4000 |
if (!porting && !name.startsWith("Q3")) { |
|
4001 |
if (obsoleteLinks) { |
|
4002 |
relative->doc().location().warning(tr("Link to obsolete item '%1' in %2") |
|
4003 |
.arg(atom->string()) |
|
4004 |
.arg(name)); |
|
4005 |
} |
|
4006 |
inObsoleteLink = true; |
|
4007 |
} |
|
4008 |
} |
|
4009 |
} |
|
4010 |
} |
|
4011 |
else { |
|
4012 |
qDebug() << "Link to Obsolete entity" |
|
4013 |
<< (*node)->name() << "no relative"; |
|
4014 |
} |
|
4015 |
} |
|
4016 |
#if 0 |
|
4017 |
else if ((*node)->status() == Node::Deprecated) { |
|
4018 |
qDebug() << "Link to Deprecated entity"; |
|
4019 |
} |
|
4020 |
else if ((*node)->status() == Node::Internal) { |
|
4021 |
qDebug() << "Link to Internal entity"; |
|
4022 |
} |
|
4023 |
#endif |
|
4024 |
} |
|
4025 |
||
4026 |
while (!path.isEmpty()) { |
|
4027 |
targetAtom = myTree->findTarget(path.first(), *node); |
|
4028 |
if (targetAtom == 0) |
|
4029 |
break; |
|
4030 |
path.removeFirst(); |
|
4031 |
} |
|
4032 |
||
4033 |
if (path.isEmpty()) { |
|
4034 |
link = linkForNode(*node, relative); |
|
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4035 |
if (*node && (*node)->subType() == Node::Image) |
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4036 |
link = "images/used-in-examples/" + link; |
0 | 4037 |
if (targetAtom) |
4038 |
link += "#" + refForAtom(targetAtom, *node); |
|
4039 |
} |
|
4040 |
} |
|
4041 |
return link; |
|
4042 |
} |
|
4043 |
||
4044 |
void HtmlGenerator::generateDcf(const QString &fileBase, |
|
4045 |
const QString &startPage, |
|
4046 |
const QString &title, |
|
4047 |
DcfSection &dcfRoot) |
|
4048 |
{ |
|
4049 |
dcfRoot.ref = startPage; |
|
4050 |
dcfRoot.title = title; |
|
4051 |
generateDcfSections(dcfRoot, outputDir() + "/" + fileBase + ".dcf", fileBase + "/reference"); |
|
4052 |
} |
|
4053 |
||
4054 |
void HtmlGenerator::generateIndex(const QString &fileBase, |
|
4055 |
const QString &url, |
|
4056 |
const QString &title) |
|
4057 |
{ |
|
4058 |
myTree->generateIndex(outputDir() + "/" + fileBase + ".index", url, title); |
|
4059 |
} |
|
4060 |
||
4061 |
void HtmlGenerator::generateStatus(const Node *node, CodeMarker *marker) |
|
4062 |
{ |
|
4063 |
Text text; |
|
4064 |
||
4065 |
switch (node->status()) { |
|
4066 |
case Node::Obsolete: |
|
4067 |
if (node->isInnerNode()) |
|
4068 |
Generator::generateStatus(node, marker); |
|
4069 |
break; |
|
4070 |
case Node::Compat: |
|
4071 |
if (node->isInnerNode()) { |
|
4072 |
text << Atom::ParaLeft |
|
4073 |
<< Atom(Atom::FormattingLeft,ATOM_FORMATTING_BOLD) |
|
4074 |
<< "This " |
|
4075 |
<< typeString(node) |
|
4076 |
<< " is part of the Qt 3 support library." |
|
4077 |
<< Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD) |
|
4078 |
<< " It is provided to keep old source code working. " |
|
4079 |
<< "We strongly advise against " |
|
4080 |
<< "using it in new code. See "; |
|
4081 |
||
4082 |
const FakeNode *fakeNode = myTree->findFakeNodeByTitle("Porting To Qt 4"); |
|
4083 |
Atom *targetAtom = 0; |
|
4084 |
if (fakeNode && node->type() == Node::Class) { |
|
4085 |
QString oldName(node->name()); |
|
4086 |
targetAtom = myTree->findTarget(oldName.replace("3", ""), |
|
4087 |
fakeNode); |
|
4088 |
} |
|
4089 |
||
4090 |
if (targetAtom) { |
|
4091 |
text << Atom(Atom::Link, linkForNode(fakeNode, node) + "#" + |
|
4092 |
refForAtom(targetAtom, fakeNode)); |
|
4093 |
} |
|
4094 |
else |
|
4095 |
text << Atom(Atom::Link, "Porting to Qt 4"); |
|
4096 |
||
4097 |
text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) |
|
4098 |
<< Atom(Atom::String, "Porting to Qt 4") |
|
4099 |
<< Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) |
|
4100 |
<< " for more information." |
|
4101 |
<< Atom::ParaRight; |
|
4102 |
} |
|
4103 |
generateText(text, node, marker); |
|
4104 |
break; |
|
4105 |
default: |
|
4106 |
Generator::generateStatus(node, marker); |
|
4107 |
} |
|
4108 |
} |
|
4109 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4110 |
#ifdef GENERATE_MAC_REFS |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4111 |
/* |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4112 |
No longer valid. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4113 |
*/ |
0 | 4114 |
void HtmlGenerator::generateMacRef(const Node *node, CodeMarker *marker) |
4115 |
{ |
|
4116 |
if (!pleaseGenerateMacRef || marker == 0) |
|
4117 |
return; |
|
4118 |
||
4119 |
QStringList macRefs = marker->macRefsForNode(node); |
|
4120 |
foreach (const QString &macRef, macRefs) |
|
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4121 |
out() << "<a name=\"" << "//apple_ref/" << macRef << "\"></a>\n"; |
0 | 4122 |
} |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4123 |
#endif |
0 | 4124 |
|
4125 |
void HtmlGenerator::beginLink(const QString &link, |
|
4126 |
const Node *node, |
|
4127 |
const Node *relative, |
|
4128 |
CodeMarker *marker) |
|
4129 |
{ |
|
4130 |
Q_UNUSED(marker) |
|
4131 |
Q_UNUSED(relative) |
|
4132 |
||
4133 |
this->link = link; |
|
4134 |
if (link.isEmpty()) { |
|
4135 |
if (showBrokenLinks) |
|
4136 |
out() << "<i>"; |
|
4137 |
} |
|
4138 |
else if (node == 0 || (relative != 0 && |
|
4139 |
node->status() == relative->status())) { |
|
4140 |
out() << "<a href=\"" << link << "\">"; |
|
4141 |
} |
|
4142 |
else { |
|
4143 |
switch (node->status()) { |
|
4144 |
case Node::Obsolete: |
|
4145 |
out() << "<a href=\"" << link << "\" class=\"obsolete\">"; |
|
4146 |
break; |
|
4147 |
case Node::Compat: |
|
4148 |
out() << "<a href=\"" << link << "\" class=\"compat\">"; |
|
4149 |
break; |
|
4150 |
default: |
|
4151 |
out() << "<a href=\"" << link << "\">"; |
|
4152 |
} |
|
4153 |
} |
|
4154 |
inLink = true; |
|
4155 |
} |
|
4156 |
||
4157 |
void HtmlGenerator::endLink() |
|
4158 |
{ |
|
4159 |
if (inLink) { |
|
4160 |
if (link.isEmpty()) { |
|
4161 |
if (showBrokenLinks) |
|
4162 |
out() << "</i>"; |
|
4163 |
} |
|
4164 |
else { |
|
4165 |
if (inObsoleteLink) { |
|
4166 |
out() << "<sup>(obsolete)</sup>"; |
|
4167 |
} |
|
4168 |
out() << "</a>"; |
|
4169 |
} |
|
4170 |
} |
|
4171 |
inLink = false; |
|
4172 |
inObsoleteLink = false; |
|
4173 |
} |
|
4174 |
||
4175 |
#ifdef QDOC_QML |
|
4176 |
||
4177 |
/*! |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4178 |
Generates the summary for the \a section. Only used for |
0 | 4179 |
sections of QML element documentation. |
4180 |
||
4181 |
Currently handles only the QML property group. |
|
4182 |
*/ |
|
4183 |
void HtmlGenerator::generateQmlSummary(const Section& section, |
|
4184 |
const Node *relative, |
|
4185 |
CodeMarker *marker) |
|
4186 |
{ |
|
4187 |
if (!section.members.isEmpty()) { |
|
4188 |
NodeList::ConstIterator m; |
|
4189 |
int count = section.members.size(); |
|
4190 |
bool twoColumn = false; |
|
4191 |
if (section.members.first()->type() == Node::QmlProperty) { |
|
4192 |
twoColumn = (count >= 5); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4193 |
twoColumn = false; |
0 | 4194 |
} |
4195 |
if (twoColumn) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4196 |
out() << "<table class=\"qmlsummary\">\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4197 |
if (++numTableRows % 2 == 1) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4198 |
out() << "<tr class=\"odd topAlign\">"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4199 |
else |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4200 |
out() << "<tr class=\"even topAlign\">"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4201 |
// << "<tr><td class=\"topAlign\">"; |
0 | 4202 |
out() << "<ul>\n"; |
4203 |
||
4204 |
int row = 0; |
|
4205 |
m = section.members.begin(); |
|
4206 |
while (m != section.members.end()) { |
|
4207 |
if (twoColumn && row == (int) (count + 1) / 2) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4208 |
out() << "</ul></td><td class=\"topAlign\"><ul>\n"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4209 |
out() << "<li class=\"fn\">"; |
0 | 4210 |
generateQmlItem(*m,relative,marker,true); |
4211 |
out() << "</li>\n"; |
|
4212 |
row++; |
|
4213 |
++m; |
|
4214 |
} |
|
4215 |
out() << "</ul>\n"; |
|
4216 |
if (twoColumn) |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4217 |
out() << "</td></tr>\n</table>\n"; |
0 | 4218 |
} |
4219 |
} |
|
4220 |
||
4221 |
/*! |
|
4222 |
Outputs the html detailed documentation for a section |
|
4223 |
on a QML element reference page. |
|
4224 |
*/ |
|
4225 |
void HtmlGenerator::generateDetailedQmlMember(const Node *node, |
|
4226 |
const InnerNode *relative, |
|
4227 |
CodeMarker *marker) |
|
4228 |
{ |
|
4229 |
const QmlPropertyNode* qpn = 0; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4230 |
#ifdef GENERATE_MAC_REFS |
0 | 4231 |
generateMacRef(node, marker); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4232 |
#endif |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4233 |
generateExtractionMark(node, MemberMark); |
0 | 4234 |
out() << "<div class=\"qmlitem\">"; |
4235 |
if (node->subType() == Node::QmlPropertyGroup) { |
|
4236 |
const QmlPropGroupNode* qpgn = static_cast<const QmlPropGroupNode*>(node); |
|
4237 |
NodeList::ConstIterator p = qpgn->childNodes().begin(); |
|
4238 |
out() << "<div class=\"qmlproto\">"; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4239 |
out() << "<table class=\"qmlname\">"; |
0 | 4240 |
|
4241 |
while (p != qpgn->childNodes().end()) { |
|
4242 |
if ((*p)->type() == Node::QmlProperty) { |
|
4243 |
qpn = static_cast<const QmlPropertyNode*>(*p); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4244 |
if (++numTableRows % 2 == 1) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4245 |
out() << "<tr class=\"odd\">"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4246 |
else |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4247 |
out() << "<tr class=\"even\">"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4248 |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4249 |
out() << "<td class=\"tblQmlPropNode\"><p>"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4250 |
|
0 | 4251 |
out() << "<a name=\"" + refForNode(qpn) + "\"></a>"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4252 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4253 |
if (!qpn->isWritable(myTree)) { |
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4254 |
out() << "<span class=\"qmlreadonly\">read-only</span>"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4255 |
} |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4256 |
if (qpgn->isDefault()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4257 |
out() << "<span class=\"qmldefault\">default</span>"; |
0 | 4258 |
generateQmlItem(qpn, relative, marker, false); |
4259 |
out() << "</td></tr>"; |
|
4260 |
} |
|
4261 |
++p; |
|
4262 |
} |
|
4263 |
out() << "</table>"; |
|
4264 |
out() << "</div>"; |
|
4265 |
} |
|
4266 |
else if (node->type() == Node::QmlSignal) { |
|
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4267 |
const FunctionNode* qsn = static_cast<const FunctionNode*>(node); |
0 | 4268 |
out() << "<div class=\"qmlproto\">"; |
4269 |
out() << "<table class=\"qmlname\">"; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4270 |
//out() << "<tr>"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4271 |
if (++numTableRows % 2 == 1) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4272 |
out() << "<tr class=\"odd\">"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4273 |
else |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4274 |
out() << "<tr class=\"even\">"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4275 |
out() << "<td class=\"tblQmlFuncNode\"><p>"; |
0 | 4276 |
out() << "<a name=\"" + refForNode(qsn) + "\"></a>"; |
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4277 |
generateSynopsis(qsn,relative,marker,CodeMarker::Detailed,false); |
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4278 |
//generateQmlItem(qsn,relative,marker,false); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4279 |
out() << "</p></td></tr>"; |
0 | 4280 |
out() << "</table>"; |
4281 |
out() << "</div>"; |
|
4282 |
} |
|
4283 |
else if (node->type() == Node::QmlMethod) { |
|
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4284 |
const FunctionNode* qmn = static_cast<const FunctionNode*>(node); |
0 | 4285 |
out() << "<div class=\"qmlproto\">"; |
4286 |
out() << "<table class=\"qmlname\">"; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4287 |
//out() << "<tr>"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4288 |
if (++numTableRows % 2 == 1) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4289 |
out() << "<tr class=\"odd\">"; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4290 |
else |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4291 |
out() << "<tr class=\"even\">"; |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4292 |
out() << "<td class=\"tblQmlFuncNode\"><p>"; |
0 | 4293 |
out() << "<a name=\"" + refForNode(qmn) + "\"></a>"; |
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4294 |
generateSynopsis(qmn,relative,marker,CodeMarker::Detailed,false); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4295 |
out() << "</p></td></tr>"; |
0 | 4296 |
out() << "</table>"; |
4297 |
out() << "</div>"; |
|
4298 |
} |
|
4299 |
out() << "<div class=\"qmldoc\">"; |
|
4300 |
generateStatus(node, marker); |
|
4301 |
generateBody(node, marker); |
|
4302 |
generateThreadSafeness(node, marker); |
|
4303 |
generateSince(node, marker); |
|
4304 |
generateAlsoList(node, marker); |
|
4305 |
out() << "</div>"; |
|
4306 |
out() << "</div>"; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4307 |
generateExtractionMark(node, EndMark); |
0 | 4308 |
} |
4309 |
||
4310 |
/*! |
|
4311 |
Output the "Inherits" line for the QML element, |
|
4312 |
if there should be one. |
|
4313 |
*/ |
|
4314 |
void HtmlGenerator::generateQmlInherits(const QmlClassNode* cn, |
|
4315 |
CodeMarker* marker) |
|
4316 |
{ |
|
4317 |
if (cn && !cn->links().empty()) { |
|
4318 |
if (cn->links().contains(Node::InheritsLink)) { |
|
4319 |
QPair<QString,QString> linkPair; |
|
4320 |
linkPair = cn->links()[Node::InheritsLink]; |
|
4321 |
QStringList strList(linkPair.first); |
|
4322 |
const Node* n = myTree->findNode(strList,Node::Fake); |
|
4323 |
if (n && n->subType() == Node::QmlClass) { |
|
4324 |
const QmlClassNode* qcn = static_cast<const QmlClassNode*>(n); |
|
4325 |
Text text; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4326 |
text << Atom::ParaLeft << "Inherits "; |
0 | 4327 |
text << Atom(Atom::LinkNode,CodeMarker::stringForNode(qcn)); |
4328 |
text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); |
|
4329 |
text << Atom(Atom::String, linkPair.second); |
|
4330 |
text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4331 |
text << Atom::ParaRight; |
0 | 4332 |
generateText(text, cn, marker); |
4333 |
} |
|
4334 |
} |
|
4335 |
} |
|
4336 |
} |
|
4337 |
||
4338 |
/*! |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4339 |
Output the "Inherit by" list for the QML element, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4340 |
if it is inherited by any other elements. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4341 |
*/ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4342 |
void HtmlGenerator::generateQmlInheritedBy(const QmlClassNode* cn, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4343 |
CodeMarker* marker) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4344 |
{ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4345 |
if (cn) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4346 |
NodeList subs; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4347 |
QmlClassNode::subclasses(cn->name(),subs); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4348 |
if (!subs.isEmpty()) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4349 |
Text text; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4350 |
text << Atom::ParaLeft << "Inherited by "; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4351 |
appendSortedQmlNames(text,cn,subs,marker); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4352 |
text << Atom::ParaRight; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4353 |
generateText(text, cn, marker); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4354 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4355 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4356 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4357 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4358 |
/*! |
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4359 |
Output the "[Xxx instantiates the C++ class QmlGraphicsXxx]" |
0 | 4360 |
line for the QML element, if there should be one. |
4361 |
||
4362 |
If there is no class node, or if the class node status |
|
4363 |
is set to Node::Internal, do nothing. |
|
4364 |
*/ |
|
4365 |
void HtmlGenerator::generateQmlInstantiates(const QmlClassNode* qcn, |
|
4366 |
CodeMarker* marker) |
|
4367 |
{ |
|
4368 |
const ClassNode* cn = qcn->classNode(); |
|
4369 |
if (cn && (cn->status() != Node::Internal)) { |
|
4370 |
Text text; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4371 |
text << Atom::ParaLeft; |
0 | 4372 |
text << Atom(Atom::LinkNode,CodeMarker::stringForNode(qcn)); |
4373 |
text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4374 |
QString name = qcn->name(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4375 |
if (name.startsWith(QLatin1String("QML:"))) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4376 |
name = name.mid(4); // remove the "QML:" prefix |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4377 |
text << Atom(Atom::String, name); |
0 | 4378 |
text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); |
4379 |
text << " instantiates the C++ class "; |
|
4380 |
text << Atom(Atom::LinkNode,CodeMarker::stringForNode(cn)); |
|
4381 |
text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); |
|
4382 |
text << Atom(Atom::String, cn->name()); |
|
4383 |
text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4384 |
text << Atom::ParaRight; |
0 | 4385 |
generateText(text, qcn, marker); |
4386 |
} |
|
4387 |
} |
|
4388 |
||
4389 |
/*! |
|
3
41300fa6a67c
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
4390 |
Output the "[QmlGraphicsXxx is instantiated by QML element Xxx]" |
0 | 4391 |
line for the class, if there should be one. |
4392 |
||
4393 |
If there is no QML element, or if the class node status |
|
4394 |
is set to Node::Internal, do nothing. |
|
4395 |
*/ |
|
4396 |
void HtmlGenerator::generateInstantiatedBy(const ClassNode* cn, |
|
4397 |
CodeMarker* marker) |
|
4398 |
{ |
|
4399 |
if (cn && cn->status() != Node::Internal && !cn->qmlElement().isEmpty()) { |
|
4400 |
const Node* n = myTree->root()->findNode(cn->qmlElement(),Node::Fake); |
|
4401 |
if (n && n->subType() == Node::QmlClass) { |
|
4402 |
Text text; |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4403 |
text << Atom::ParaLeft; |
0 | 4404 |
text << Atom(Atom::LinkNode,CodeMarker::stringForNode(cn)); |
4405 |
text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); |
|
4406 |
text << Atom(Atom::String, cn->name()); |
|
4407 |
text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); |
|
4408 |
text << " is instantiated by QML element "; |
|
4409 |
text << Atom(Atom::LinkNode,CodeMarker::stringForNode(n)); |
|
4410 |
text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); |
|
4411 |
text << Atom(Atom::String, n->name()); |
|
4412 |
text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4413 |
text << Atom::ParaRight; |
0 | 4414 |
generateText(text, cn, marker); |
4415 |
} |
|
4416 |
} |
|
4417 |
} |
|
4418 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4419 |
/*! |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4420 |
Generate the <page> element for the given \a node using the \a writer. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4421 |
Return true if a <page> element was written; otherwise return false. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4422 |
*/ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4423 |
bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4424 |
const Node* node, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4425 |
CodeMarker* marker) const |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4426 |
{ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4427 |
if (node->pageType() == Node::NoPageType) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4428 |
return false; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4429 |
if (node->name().isEmpty()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4430 |
return true; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4431 |
if (node->access() == Node::Private) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4432 |
return false; |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4433 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4434 |
QString guid = QUuid::createUuid().toString(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4435 |
QString url = PageGenerator::fileName(node); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4436 |
QString title; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4437 |
QString rawTitle; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4438 |
QString fullTitle; |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4439 |
QStringList pageWords; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4440 |
QXmlStreamAttributes attributes; |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4441 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4442 |
writer.writeStartElement("page"); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4443 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4444 |
if (node->isInnerNode()) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4445 |
const InnerNode* inner = static_cast<const InnerNode*>(node); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4446 |
if (!inner->pageKeywords().isEmpty()) |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4447 |
pageWords << inner->pageKeywords(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4448 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4449 |
switch (node->type()) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4450 |
case Node::Fake: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4451 |
{ |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4452 |
const FakeNode* fake = static_cast<const FakeNode*>(node); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4453 |
title = fake->fullTitle(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4454 |
pageWords << title; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4455 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4456 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4457 |
case Node::Class: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4458 |
{ |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4459 |
title = node->name() + " Class Reference"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4460 |
pageWords << node->name() << "class" << "reference"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4461 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4462 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4463 |
case Node::Namespace: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4464 |
{ |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4465 |
rawTitle = marker->plainName(inner); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4466 |
fullTitle = marker->plainFullName(inner); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4467 |
title = rawTitle + " Namespace Reference"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4468 |
pageWords << rawTitle << "namespace" << "reference"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4469 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4470 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4471 |
default: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4472 |
title = node->name(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4473 |
pageWords << title; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4474 |
break; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4475 |
} |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4476 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4477 |
else { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4478 |
switch (node->type()) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4479 |
case Node::Enum: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4480 |
{ |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4481 |
title = node->name() + " Enum Reference"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4482 |
pageWords << node->name() << "enum" << "type"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4483 |
url += "#" + node->name() + "-enum"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4484 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4485 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4486 |
case Node::Function: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4487 |
{ |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4488 |
title = node->name() + " Function Reference"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4489 |
pageWords << node->name() << "function"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4490 |
url += "#" + node->name(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4491 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4492 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4493 |
case Node::Property: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4494 |
{ |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4495 |
title = node->name() + " Property Reference"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4496 |
pageWords << node->name() << "property"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4497 |
url += "#" + node->name() + "-prop"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4498 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4499 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4500 |
case Node::Typedef: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4501 |
{ |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4502 |
title = node->name() + " Type Reference"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4503 |
pageWords << node->name() << "typedef" << "type"; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4504 |
url += "#" + node->name(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4505 |
break; |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4506 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4507 |
default: |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4508 |
title = node->name(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4509 |
pageWords << title; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4510 |
break; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4511 |
} |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4512 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4513 |
Node* parent = node->parent(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4514 |
if (parent && ((parent->type() == Node::Class) || |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4515 |
(parent->type() == Node::Namespace))) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4516 |
pageWords << parent->name(); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4517 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4518 |
} |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4519 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4520 |
writer.writeAttribute("id",guid); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4521 |
writer.writeStartElement("pageWords"); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4522 |
writer.writeCharacters(pageWords.join(" ")); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4523 |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4524 |
writer.writeEndElement(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4525 |
writer.writeStartElement("pageTitle"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4526 |
writer.writeCharacters(title); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4527 |
writer.writeEndElement(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4528 |
writer.writeStartElement("pageUrl"); |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4529 |
writer.writeCharacters(url); |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4530 |
writer.writeEndElement(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4531 |
writer.writeStartElement("pageType"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4532 |
switch (node->pageType()) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4533 |
case Node::ApiPage: |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4534 |
writer.writeCharacters("APIPage"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4535 |
break; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4536 |
case Node::ArticlePage: |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4537 |
writer.writeCharacters("Article"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4538 |
break; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4539 |
case Node::ExamplePage: |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4540 |
writer.writeCharacters("Example"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4541 |
break; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4542 |
default: |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4543 |
break; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4544 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4545 |
writer.writeEndElement(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4546 |
writer.writeEndElement(); |
37
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4547 |
|
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4548 |
if (node->type() == Node::Fake && node->doc().hasTableOfContents()) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4549 |
QList<Atom*> toc = node->doc().tableOfContents(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4550 |
if (!toc.isEmpty()) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4551 |
for (int i = 0; i < toc.size(); ++i) { |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4552 |
Text headingText = Text::sectionHeading(toc.at(i)); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4553 |
QString s = headingText.toString(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4554 |
writer.writeStartElement("page"); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4555 |
guid = QUuid::createUuid().toString(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4556 |
QString internalUrl = url + "#" + Doc::canonicalTitle(s); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4557 |
writer.writeAttribute("id",guid); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4558 |
writer.writeStartElement("pageWords"); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4559 |
writer.writeCharacters(pageWords.join(" ")); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4560 |
writer.writeCharacters(" "); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4561 |
writer.writeCharacters(s); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4562 |
writer.writeEndElement(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4563 |
writer.writeStartElement("pageTitle"); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4564 |
writer.writeCharacters(s); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4565 |
writer.writeEndElement(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4566 |
writer.writeStartElement("pageUrl"); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4567 |
writer.writeCharacters(internalUrl); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4568 |
writer.writeEndElement(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4569 |
writer.writeStartElement("pageType"); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4570 |
writer.writeCharacters("Article"); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4571 |
writer.writeEndElement(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4572 |
writer.writeEndElement(); |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4573 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4574 |
} |
758a864f9613
Revision: 201037
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
4575 |
} |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4576 |
return true; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4577 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4578 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4579 |
/*! |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4580 |
Traverse the tree recursively and generate the <keyword> |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4581 |
elements. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4582 |
*/ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4583 |
void HtmlGenerator::generatePageElements(QXmlStreamWriter& writer, const Node* node, CodeMarker* marker) const |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4584 |
{ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4585 |
if (generatePageElement(writer, node, marker)) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4586 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4587 |
if (node->isInnerNode()) { |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4588 |
const InnerNode *inner = static_cast<const InnerNode *>(node); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4589 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4590 |
// Recurse to write an element for this child node and all its children. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4591 |
foreach (const Node *child, inner->childNodes()) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4592 |
generatePageElements(writer, child, marker); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4593 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4594 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4595 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4596 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4597 |
/*! |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4598 |
Outputs the file containing the index used for searching the html docs. |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4599 |
*/ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4600 |
void HtmlGenerator::generatePageIndex(const QString& fileName, CodeMarker* marker) const |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4601 |
{ |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4602 |
QFile file(fileName); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4603 |
if (!file.open(QFile::WriteOnly | QFile::Text)) |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4604 |
return ; |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4605 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4606 |
QXmlStreamWriter writer(&file); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4607 |
writer.setAutoFormatting(true); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4608 |
writer.writeStartDocument(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4609 |
writer.writeStartElement("qtPageIndex"); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4610 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4611 |
generatePageElements(writer, myTree->root(), marker); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4612 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4613 |
writer.writeEndElement(); // qtPageIndex |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4614 |
writer.writeEndDocument(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4615 |
file.close(); |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4616 |
} |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4617 |
|
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4618 |
void HtmlGenerator::generateExtractionMark(const Node *node, ExtractionMarkType markType) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4619 |
{ |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4620 |
if (markType != EndMark) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4621 |
out() << "<!-- $$$" + node->name(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4622 |
if (markType == MemberMark) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4623 |
if (node->type() == Node::Function) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4624 |
const FunctionNode *func = static_cast<const FunctionNode *>(node); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4625 |
if (!func->associatedProperty()) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4626 |
if (func->overloadNumber() == 1) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4627 |
out() << "[overload1]"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4628 |
out() << "$$$" + func->name() + func->rawParameters().remove(' '); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4629 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4630 |
} else if (node->type() == Node::Property) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4631 |
out() << "-prop"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4632 |
const PropertyNode *prop = static_cast<const PropertyNode *>(node); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4633 |
const NodeList &list = prop->functions(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4634 |
foreach (const Node *propFuncNode, list) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4635 |
if (propFuncNode->type() == Node::Function) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4636 |
const FunctionNode *func = static_cast<const FunctionNode *>(propFuncNode); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4637 |
out() << "$$$" + func->name() + func->rawParameters().remove(' '); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4638 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4639 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4640 |
} else if (node->type() == Node::Enum) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4641 |
const EnumNode *enumNode = static_cast<const EnumNode *>(node); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4642 |
foreach (const EnumItem &item, enumNode->items()) |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4643 |
out() << "$$$" + item.name(); |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4644 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4645 |
} else if (markType == BriefMark) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4646 |
out() << "-brief"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4647 |
} else if (markType == DetailedDescriptionMark) { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4648 |
out() << "-description"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4649 |
} |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4650 |
out() << " -->\n"; |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4651 |
} else { |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4652 |
out() << "<!-- @@@" + node->name() + " -->\n"; |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4653 |
} |
33
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4654 |
} |
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4655 |
|
3e2da88830cd
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
30
diff
changeset
|
4656 |
#endif |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4657 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
18
diff
changeset
|
4658 |
QT_END_NAMESPACE |