65 using DomPropertyList =
QList<DomProperty*>;
66 using DomPropertyMap =
QHash<QString, DomProperty*>;
101 void acceptLayoutDefault(DomLayoutDefault *node)
override { m_LayoutDefaultHandler.acceptLayoutDefault(node); }
102 void acceptLayoutFunction(DomLayoutFunction *node)
override { m_LayoutDefaultHandler.acceptLayoutFunction(node); }
117 static QString domColor2QString(
const DomColor *c);
119 QString iconCall(
const DomProperty *prop);
120 QString pixCall(
const DomProperty *prop)
const;
121 QString pixCall(QLatin1StringView type,
const QString &text)
const;
122 QString trCall(
const QString &str,
const QString &comment = QString(),
const QString &id = QString())
const;
123 QString trCall(DomString *str,
const QString &defaultString = QString())
const;
124 QString noTrCall(DomString *str,
const QString &defaultString = QString())
const;
125 QString autoTrCall(DomString *str,
const QString &defaultString = QString())
const;
126 inline QTextStream &autoTrOutput(
const DomProperty *str);
127 QTextStream &autoTrOutput(
const DomString *str,
const QString &defaultString = QString());
129 void writePropertyList(
const QString &varName,
const QString &setFunction,
const QString &value,
const QString &defaultValue);
131 enum { WritePropertyIgnoreMargin = 1, WritePropertyIgnoreSpacing = 2, WritePropertyIgnoreObjectName = 4 };
132 QString writeStringListProperty(
const DomStringList *list)
const;
133 void writeProperties(
const QString &varName,
const QString &className,
const DomPropertyList &lst,
unsigned flags = 0);
134 void writeColorGroup(DomColorGroup *colorGroup,
const QString &group,
const QString &paletteName);
135 void writeBrush(
const DomBrush *brush,
const QString &brushName);
141 Q_DISABLE_COPY_MOVE(Item)
143 Item(
const QString &itemClassName,
const QString &indent, QTextStream &setupUiStream, QTextStream &retranslateUiStream, Driver *driver);
145 enum EmptyItemPolicy {
148 ConstructItemAndVariable
150 QString writeSetupUi(
const QString &parent, EmptyItemPolicy emptyItemPolicy = ConstructItemOnly);
151 void writeRetranslateUi(
const QString &parentPath);
152 void addSetter(
const QString &setter,
const QString &directive = QString(),
bool translatable =
false);
153 void addChild(Item *child);
167 QList<Item *> m_children;
168 Item *m_parent =
nullptr;
170 const QString m_itemClassName;
171 const QString m_indent;
172 QTextStream &m_setupUiStream;
173 QTextStream &m_retranslateUiStream;
176 using Items =
QList<Item *>;
178 static void addInitializer(Item *item,
const QString &name,
int column,
179 const QString &value,
const QString &directive = QString(),
bool translatable =
false);
180 static void addQtFlagsInitializer(Item *item,
const DomPropertyMap &properties,
181 const QString &name,
int column = -1);
182 void addQtEnumInitializer(Item *item,
183 const DomPropertyMap &properties,
const QString &name,
int column = -1)
const;
184 void addBrushInitializer(Item *item,
185 const DomPropertyMap &properties,
const QString &name,
int column = -1);
186 void addStringInitializer(Item *item,
187 const DomPropertyMap &properties,
const QString &name,
int column = -1,
const QString &directive = QString())
const;
188 void addCommonInitializers(Item *item,
189 const DomPropertyMap &properties,
int column = -1);
191 void initializeMenu(DomWidget *w,
const QString &parentWidget);
192 void initializeComboBox(DomWidget *w);
193 void initializeListWidget(DomWidget *w);
194 void initializeTreeWidget(DomWidget *w);
195 Items initializeTreeWidgetItems(
const QList<DomItem *> &domItems);
196 void initializeTableWidget(DomWidget *w);
198 QString disableSorting(DomWidget *w,
const QString &varName);
199 void enableSorting(DomWidget *w,
const QString &varName,
const QString &tempName);
207 Declaration findDeclaration(
const QString &name);
209 QString writeFontProperties(
const DomFont *f);
210 QString writeIconProperties(
const DomResourceIcon *i);
211 void writeThemeIconCheckAssignment(
const QString &themeValue,
const QString &iconName,
212 const DomResourceIcon *i);
213 void writePixmapFunctionIcon(QTextStream &output,
const QString &iconName,
214 const QString &indent,
const DomResourceIcon *i)
const;
215 QString writeSizePolicy(
const DomSizePolicy *sp);
216 QString writeBrushInitialization(
const DomBrush *brush);
217 void addButtonGroup(
const DomWidget *node,
const QString &varName);
218 void addWizardPage(
const QString &pageVarName,
const DomWidget *page,
const QString &parentWidget);
219 bool isCustomWidget(
const QString &className)
const;
225 QTextStream &m_output;
229 bool m_stdsetdef =
true;
233 QString labelVarName;
234 QString buddyAttributeName;
236 friend class QTypeInfo<
Buddy>;
238 QStack<DomWidget*> m_widgetChain;
239 QStack<DomLayout*> m_layoutChain;
240 QStack<DomActionGroup*> m_actionGroupChain;
241 QList<Buddy> m_buddies;
244 using ColorBrushHash =
QHash<uint, QString>;
245 ColorBrushHash m_colorBrushHash;
251 FontPropertiesNameMap m_fontPropertiesNameMap;
252 IconPropertiesNameMap m_iconPropertiesNameMap;
253 SizePolicyNameMap m_sizePolicyNameMap;
255 class LayoutDefaultHandler {
257 LayoutDefaultHandler();
258 void acceptLayoutDefault(DomLayoutDefault *node);
259 void acceptLayoutFunction(DomLayoutFunction *node);
262 void writeProperties(
const QString &indent,
const QString &varName,
263 const DomPropertyMap &pm,
int marginType,
264 bool suppressMarginDefault, QTextStream &str)
const;
266 void writeProperty(
int p,
const QString &indent,
const QString &objectName,
const DomPropertyMap &pm,
267 const QString &propertyName,
const QString &setter,
int defaultStyleValue,
268 bool suppressDefault, QTextStream &str)
const;
270 enum Properties { Margin, Spacing, NumProperties };
271 enum StateFlags { HasDefaultValue = 1, HasDefaultFunction = 2};
272 unsigned m_state[NumProperties];
273 int m_defaultValues[NumProperties];
274 QString m_functions[NumProperties];
278 LayoutDefaultHandler m_LayoutDefaultHandler;
281 QString m_generatedClass;
282 QString m_mainFormVarName;
283 QStringList m_customSlots;
284 QStringList m_customSignals;
285 bool m_mainFormUsedInRetranslateUi =
false;
287 QString m_delayedInitialization;
288 QTextStream m_delayedOut;
290 QString m_refreshInitialization;
291 QTextStream m_refreshOut;
293 QString m_delayedActionInitialization;
294 QTextStream m_actionOut;
296 bool m_layoutWidget =
false;
297 bool m_firstThemeIcon =
true;
298 bool m_connectSlotsByName =
true;