Mercurial > projects > qtd
comparison tools/duic/d/dwriteincludes.h @ 1:e78566595089
initial import
author | mandel |
---|---|
date | Mon, 11 May 2009 16:01:50 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:36fb74dc547d | 1:e78566595089 |
---|---|
1 /**************************************************************************** | |
2 ** | |
3 ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies). | |
4 ** Contact: Qt Software Information (qt-info@nokia.com) | |
5 ** | |
6 ** This file is part of the tools applications of the Qt Toolkit. | |
7 ** | |
8 ** Commercial Usage | |
9 ** Licensees holding valid Qt Commercial licenses may use this file in | |
10 ** accordance with the Qt Commercial License Agreement provided with the | |
11 ** Software or, alternatively, in accordance with the terms contained in | |
12 ** a written agreement between you and Nokia. | |
13 ** | |
14 ** | |
15 ** GNU General Public License Usage | |
16 ** Alternatively, this file may be used under the terms of the GNU | |
17 ** General Public License versions 2.0 or 3.0 as published by the Free | |
18 ** Software Foundation and appearing in the file LICENSE.GPL included in | |
19 ** the packaging of this file. Please review the following information | |
20 ** to ensure GNU General Public Licensing requirements will be met: | |
21 ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and | |
22 ** http://www.gnu.org/copyleft/gpl.html. In addition, as a special | |
23 ** exception, Nokia gives you certain additional rights. These rights | |
24 ** are described in the Nokia Qt GPL Exception version 1.3, included in | |
25 ** the file GPL_EXCEPTION.txt in this package. | |
26 ** | |
27 ** Qt for Windows(R) Licensees | |
28 ** As a special exception, Nokia, as the sole copyright holder for Qt | |
29 ** Designer, grants users of the Qt/Eclipse Integration plug-in the | |
30 ** right for the Qt/Eclipse Integration to link to functionality | |
31 ** provided by Qt Designer and its related libraries. | |
32 ** | |
33 ** If you are unsure which license is appropriate for your use, please | |
34 ** contact the sales department at qt-sales@nokia.com. | |
35 ** | |
36 ****************************************************************************/ | |
37 | |
38 #ifndef DWRITEINCLUDES_H | |
39 #define DWRITEINCLUDES_H | |
40 | |
41 #include "treewalker.h" | |
42 | |
43 #include <QtCore/QHash> | |
44 #include <QtCore/QMap> | |
45 #include <QtCore/QSet> | |
46 #include <QtCore/QString> | |
47 | |
48 QT_BEGIN_NAMESPACE | |
49 | |
50 class QTextStream; | |
51 class Driver; | |
52 class Uic; | |
53 | |
54 namespace D { | |
55 | |
56 struct WriteIncludes : public TreeWalker | |
57 { | |
58 WriteIncludes(Uic *uic); | |
59 | |
60 void acceptUI(DomUI *node); | |
61 void acceptWidget(DomWidget *node); | |
62 void acceptLayout(DomLayout *node); | |
63 void acceptSpacer(DomSpacer *node); | |
64 void acceptProperty(DomProperty *node); | |
65 void acceptWidgetScripts(const DomScripts &, DomWidget *, const DomWidgets &); | |
66 | |
67 // | |
68 // custom widgets | |
69 // | |
70 void acceptCustomWidgets(DomCustomWidgets *node); | |
71 void acceptCustomWidget(DomCustomWidget *node); | |
72 | |
73 // | |
74 // include hints | |
75 // | |
76 void acceptIncludes(DomIncludes *node); | |
77 void acceptInclude(DomInclude *node); | |
78 | |
79 bool scriptsActivated() const { return m_scriptsActivated; } | |
80 | |
81 private: | |
82 void add(const QString &className, bool determineHeader = true, const QString &header = QString(), bool global = false); | |
83 | |
84 private: | |
85 typedef QMap<QString, bool> OrderedSet; | |
86 void insertIncludeForClass(const QString &className, QString header = QString(), bool global = false); | |
87 void insertInclude(const QString &header, bool global); | |
88 void writeHeaders(const OrderedSet &headers, bool global); | |
89 QString headerForClassName(const QString &className) const; | |
90 void activateScripts(); | |
91 | |
92 const Uic *m_uic; | |
93 QTextStream &m_output; | |
94 | |
95 OrderedSet m_localIncludes; | |
96 OrderedSet m_globalIncludes; | |
97 QSet<QString> m_includeBaseNames; | |
98 | |
99 QSet<QString> m_knownClasses; | |
100 | |
101 typedef QHash<QString, QString> StringMap; | |
102 StringMap m_classToHeader; | |
103 StringMap m_oldHeaderToNewHeader; | |
104 bool m_scriptsActivated; | |
105 }; | |
106 | |
107 } // namespace D | |
108 | |
109 QT_END_NAMESPACE | |
110 | |
111 #endif // DWRITEINCLUDES_H |