102 void acceptLayoutDefault(DomLayoutDefault *node)
override { m_LayoutDefaultHandler.acceptLayoutDefault(node); }
103 void acceptLayoutFunction(DomLayoutFunction *node)
override { m_LayoutDefaultHandler.acceptLayoutFunction(node); }
118 static QString domColor2QString(
const DomColor *c);
120 QString iconCall(
const DomProperty *prop);
121 QString pixCall(
const DomProperty *prop)
const;
122 QString pixCall(QLatin1StringView type,
const QString &text)
const;
123 QString trCall(
const QString &str,
const QString &comment = QString(),
const QString &id = QString())
const;
124 QString trCall(DomString *str,
const QString &defaultString = QString())
const;
125 QString noTrCall(DomString *str,
const QString &defaultString = QString())
const;
126 QString autoTrCall(DomString *str,
const QString &defaultString = QString())
const;
127 inline QTextStream &autoTrOutput(
const DomProperty *str);
128 QTextStream &autoTrOutput(
const DomString *str,
const QString &defaultString = QString());
130 void writePropertyList(
const QString &varName,
const QString &setFunction,
const QString &value,
const QString &defaultValue);
132 enum { WritePropertyIgnoreMargin = 1, WritePropertyIgnoreSpacing = 2, WritePropertyIgnoreObjectName = 4 };
133 QString writeStringListProperty(
const DomStringList *list)
const;
134 void writeProperties(
const QString &varName,
const QString &className,
const DomPropertyList &lst,
unsigned flags = 0);
135 void writeColorGroup(DomColorGroup *colorGroup,
const QString &group,
const QString &paletteName);
136 void writeBrush(
const DomBrush *brush,
const QString &brushName);
142 Q_DISABLE_COPY_MOVE(Item)
144 Item(
const QString &itemClassName,
const QString &indent, QTextStream &setupUiStream, QTextStream &retranslateUiStream, Driver *driver);
146 enum EmptyItemPolicy {
149 ConstructItemAndVariable
151 QString writeSetupUi(
const QString &parent, EmptyItemPolicy emptyItemPolicy = ConstructItemOnly);
152 void writeRetranslateUi(
const QString &parentPath);
153 void addSetter(
const QString &setter,
const QString &directive = QString(),
bool translatable =
false);
154 void addChild(Item *child);
168 QList<Item *> m_children;
169 Item *m_parent =
nullptr;
171 const QString m_itemClassName;
172 const QString m_indent;
173 QTextStream &m_setupUiStream;
174 QTextStream &m_retranslateUiStream;
177 using Items =
QList<Item *>;
179 static void addInitializer(Item *item,
const QString &name,
int column,
180 const QString &value,
const QString &directive = QString(),
bool translatable =
false);
181 static void addQtFlagsInitializer(Item *item,
const DomPropertyMap &properties,
182 const QString &name,
int column = -1);
183 void addQtEnumInitializer(Item *item,
184 const DomPropertyMap &properties,
const QString &name,
int column = -1)
const;
185 void addBrushInitializer(Item *item,
186 const DomPropertyMap &properties,
const QString &name,
int column = -1);
187 void addStringInitializer(Item *item,
188 const DomPropertyMap &properties,
const QString &name,
int column = -1,
const QString &directive = QString())
const;
189 void addCommonInitializers(Item *item,
192 void initializeMenu(DomWidget *w,
const QString &parentWidget);
193 void initializeComboBox(DomWidget *w);
194 void initializeListWidget(DomWidget *w);
195 void initializeTreeWidget(DomWidget *w);
196 Items initializeTreeWidgetItems(
const QList<DomItem *> &domItems);
197 void initializeTableWidget(DomWidget *w);
199 QString disableSorting(DomWidget *w,
const QString &varName);
200 void enableSorting(DomWidget *w,
const QString &varName,
const QString &tempName);
208 Declaration findDeclaration(
const QString &name);
210 QString writeFontProperties(
const DomFont *f);
211 QString writeIconProperties(
const DomResourceIcon *i);
212 void writeThemeIconCheckAssignment(
const QString &themeValue,
const QString &iconName,
213 const DomResourceIcon *i);
214 void writePixmapFunctionIcon(QTextStream &output,
const QString &iconName,
215 const QString &indent,
const DomResourceIcon *i)
const;
216 QString writeSizePolicy(
const DomSizePolicy *sp);
217 QString writeBrushInitialization(
const DomBrush *brush);
218 void addButtonGroup(
const DomWidget *node,
const QString &varName);
219 void addWizardPage(
const QString &pageVarName,
const DomWidget *page,
const QString &parentWidget);
220 bool isCustomWidget(
const QString &className)
const;
226 QTextStream &m_output;
230 bool m_stdsetdef =
true;
234 QString labelVarName;
235 QString buddyAttributeName;
237 friend class QTypeInfo<
Buddy>;
239 QStack<DomWidget*> m_widgetChain;
240 QStack<DomLayout*> m_layoutChain;
241 QStack<DomActionGroup*> m_actionGroupChain;
242 QList<Buddy> m_buddies;
245 using ColorBrushHash =
QHash<uint, QString>;
246 ColorBrushHash m_colorBrushHash;
252 FontPropertiesNameMap m_fontPropertiesNameMap;
253 IconPropertiesNameMap m_iconPropertiesNameMap;
254 SizePolicyNameMap m_sizePolicyNameMap;
256 class LayoutDefaultHandler {
258 LayoutDefaultHandler();
259 void acceptLayoutDefault(DomLayoutDefault *node);
260 void acceptLayoutFunction(DomLayoutFunction *node);
263 void writeProperties(
const QString &indent,
const QString &varName,
265 bool suppressMarginDefault, QTextStream &str)
const;
267 void writeProperty(
int p,
const QString &indent,
const QString &objectName,
const DomPropertyMap &pm,
268 const QString &propertyName,
const QString &setter,
int defaultStyleValue,
269 bool suppressDefault, QTextStream &str)
const;
271 enum Properties { Margin, Spacing, NumProperties };
272 enum StateFlags { HasDefaultValue = 1, HasDefaultFunction = 2};
273 unsigned m_state[NumProperties];
274 int m_defaultValues[NumProperties];
275 QString m_functions[NumProperties];
279 LayoutDefaultHandler m_LayoutDefaultHandler;
282 QString m_generatedClass;
283 QString m_mainFormVarName;
284 QStringList m_customSlots;
285 QStringList m_customSignals;
286 bool m_mainFormUsedInRetranslateUi =
false;
288 QString m_delayedInitialization;
289 QTextStream m_delayedOut;
291 QString m_refreshInitialization;
292 QTextStream m_refreshOut;
294 QString m_delayedActionInitialization;
295 QTextStream m_actionOut;
297 bool m_layoutWidget =
false;
298 bool m_firstThemeIcon =
true;
299 bool m_connectSlotsByName =
true;