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