1 /****************************************************************************
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
7 ** This file is part of the tools applications of the Qt Toolkit.
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
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.
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.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
40 ****************************************************************************/
42 #ifndef HELPPROJECTWRITER_H
43 #define HELPPROJECTWRITER_H
46 #include <QXmlStreamReader>
47 #include <QXmlStreamWriter>
55 typedef QPair
<QString
, const Node
*> QStringNodePair
;
61 QHash
<Node::Type
, QSet
<FakeNode::SubType
> > selectors
;
63 QHash
<QString
, const Node
*> nodes
;
69 QString helpNamespace
;
70 QString virtualFolder
;
74 QList
<QStringList
> keywords
;
76 QSet
<QString
> extraFiles
;
77 QSet
<QString
> filterAttributes
;
78 QHash
<QString
, QSet
<QString
> > customFilters
;
79 QSet
<QString
> excluded
;
80 QMap
<QString
, SubProject
> subprojects
;
81 QHash
<const Node
*, QSet
<Node::Status
> > memberStatus
;
84 class HelpProjectWriter
87 HelpProjectWriter(const Config
&config
, const QString
&defaultFileName
);
88 void addExtraFile(const QString
&file
);
89 void addExtraFiles(const QSet
<QString
> &files
);
90 void generate(const Tree
*tre
);
93 void generateProject(HelpProject
&project
);
94 void generateSections(HelpProject
&project
, QXmlStreamWriter
&writer
,
96 bool generateSection(HelpProject
&project
, QXmlStreamWriter
&writer
,
98 QStringList
keywordDetails(const Node
*node
) const;
99 void writeNode(HelpProject
&project
, QXmlStreamWriter
&writer
, const Node
*node
);
100 void readSelectors(SubProject
&subproject
, const QStringList
&selectors
);
105 QList
<HelpProject
> projects
;