63 |
63 |
64 void uiLibWarning(const QString &message) { |
64 void uiLibWarning(const QString &message) { |
65 qWarning("Designer: %s", qPrintable(message)); |
65 qWarning("Designer: %s", qPrintable(message)); |
66 } |
66 } |
67 |
67 |
|
68 |
|
69 QFormBuilderExtra::CustomWidgetData::CustomWidgetData() : |
|
70 isContainer(false) |
|
71 { |
|
72 } |
|
73 |
|
74 QFormBuilderExtra::CustomWidgetData::CustomWidgetData(const DomCustomWidget *dcw) : |
|
75 addPageMethod(dcw->elementAddPageMethod()), |
|
76 baseClass(dcw->elementExtends()), |
|
77 isContainer(dcw->hasElementContainer() && dcw->elementContainer() != 0) |
|
78 { |
|
79 #ifndef QT_FORMBUILDER_NO_SCRIPT |
|
80 if (const DomScript *domScript = dcw->elementScript()) |
|
81 script = domScript->text(); |
|
82 #endif |
|
83 } |
|
84 |
68 QFormBuilderExtra::QFormBuilderExtra() : |
85 QFormBuilderExtra::QFormBuilderExtra() : |
69 m_layoutWidget(false), |
86 m_layoutWidget(false), |
70 m_resourceBuilder(0), |
87 m_resourceBuilder(0), |
71 m_textBuilder(0) |
88 m_textBuilder(0) |
72 { |
89 { |
83 m_buddies.clear(); |
100 m_buddies.clear(); |
84 m_parentWidget = 0; |
101 m_parentWidget = 0; |
85 m_parentWidgetIsSet = false; |
102 m_parentWidgetIsSet = false; |
86 #ifndef QT_FORMBUILDER_NO_SCRIPT |
103 #ifndef QT_FORMBUILDER_NO_SCRIPT |
87 m_FormScriptRunner.clearErrors(); |
104 m_FormScriptRunner.clearErrors(); |
88 m_customWidgetScriptHash.clear(); |
|
89 #endif |
105 #endif |
|
106 m_customWidgetDataHash.clear(); |
90 m_buttonGroups.clear(); |
107 m_buttonGroups.clear(); |
91 } |
108 } |
92 |
109 |
93 |
110 |
94 bool QFormBuilderExtra::applyPropertyInternally(QObject *o, const QString &propertyName, const QVariant &value) |
111 bool QFormBuilderExtra::applyPropertyInternally(QObject *o, const QString &propertyName, const QVariant &value) |
158 QFormScriptRunner &QFormBuilderExtra::formScriptRunner() |
175 QFormScriptRunner &QFormBuilderExtra::formScriptRunner() |
159 { |
176 { |
160 return m_FormScriptRunner; |
177 return m_FormScriptRunner; |
161 } |
178 } |
162 |
179 |
163 void QFormBuilderExtra::storeCustomWidgetScript(const QString &className, const QString &script) |
|
164 { |
|
165 m_customWidgetScriptHash.insert(className, script); |
|
166 } |
|
167 |
|
168 QString QFormBuilderExtra::customWidgetScript(const QString &className) const |
180 QString QFormBuilderExtra::customWidgetScript(const QString &className) const |
169 { |
181 { |
170 const CustomWidgetScriptHash::const_iterator it = m_customWidgetScriptHash.constFind(className); |
182 const QHash<QString, CustomWidgetData>::const_iterator it = m_customWidgetDataHash.constFind(className); |
171 if ( it == m_customWidgetScriptHash.constEnd()) |
183 if (it != m_customWidgetDataHash.constEnd()) |
172 return QString(); |
184 return it.value().script; |
173 return it.value(); |
185 return QString(); |
174 } |
186 } |
175 |
187 |
176 #endif |
188 #endif |
177 |
189 |
178 void QFormBuilderExtra::storeCustomWidgetBaseClass(const QString &className, const QString &baseClassName) |
190 void QFormBuilderExtra::storeCustomWidgetData(const QString &className, const DomCustomWidget *d) |
179 { |
191 { |
180 m_customWidgetBaseClassHash.insert(className, baseClassName); |
192 if (d) |
|
193 m_customWidgetDataHash.insert(className, CustomWidgetData(d)); |
181 } |
194 } |
182 |
195 |
183 QString QFormBuilderExtra::customWidgetBaseClass(const QString &className) const |
196 QString QFormBuilderExtra::customWidgetBaseClass(const QString &className) const |
184 { |
197 { |
185 const QHash<QString, QString>::const_iterator it = m_customWidgetBaseClassHash.constFind(className); |
198 const QHash<QString, CustomWidgetData>::const_iterator it = m_customWidgetDataHash.constFind(className); |
186 if (it == m_customWidgetBaseClassHash.constEnd()) |
199 if (it != m_customWidgetDataHash.constEnd()) |
187 return QString(); |
200 return it.value().baseClass; |
188 return it.value(); |
201 return QString(); |
189 } |
|
190 |
|
191 void QFormBuilderExtra::storeCustomWidgetAddPageMethod(const QString &className, const QString &ct) |
|
192 { |
|
193 m_customWidgetAddPageMethodHash.insert(className, ct); |
|
194 } |
202 } |
195 |
203 |
196 QString QFormBuilderExtra::customWidgetAddPageMethod(const QString &className) const |
204 QString QFormBuilderExtra::customWidgetAddPageMethod(const QString &className) const |
197 { |
205 { |
198 const QHash<QString, QString>::const_iterator it = m_customWidgetAddPageMethodHash.constFind(className); |
206 const QHash<QString, CustomWidgetData>::const_iterator it = m_customWidgetDataHash.constFind(className); |
199 if (it == m_customWidgetAddPageMethodHash.constEnd()) |
207 if (it != m_customWidgetDataHash.constEnd()) |
200 return QString(); |
208 return it.value().addPageMethod; |
201 return it.value(); |
209 return QString(); |
|
210 } |
|
211 |
|
212 bool QFormBuilderExtra::isCustomWidgetContainer(const QString &className) const |
|
213 { |
|
214 const QHash<QString, CustomWidgetData>::const_iterator it = m_customWidgetDataHash.constFind(className); |
|
215 if (it != m_customWidgetDataHash.constEnd()) |
|
216 return it.value().isContainer; |
|
217 return false; |
202 } |
218 } |
203 |
219 |
204 namespace { |
220 namespace { |
205 typedef QHash<const QAbstractFormBuilder *, QFormBuilderExtra *> FormBuilderPrivateHash; |
221 typedef QHash<const QAbstractFormBuilder *, QFormBuilderExtra *> FormBuilderPrivateHash; |
206 } |
222 } |