9#include <qstringview.h>
13using namespace Qt::StringLiterals;
21 switch (c.category()) {
22 case QChar::Letter_Uppercase:
23 case QChar::Letter_Lowercase:
24 case QChar::Letter_Titlecase:
25 case QChar::Letter_Modifier:
26 case QChar::Letter_Other:
27 case QChar::Number_Letter:
40 switch (c.category()) {
41 case QChar::Letter_Uppercase:
42 case QChar::Letter_Lowercase:
43 case QChar::Letter_Titlecase:
44 case QChar::Letter_Modifier:
45 case QChar::Letter_Other:
46 case QChar::Number_Letter:
47 case QChar::Mark_NonSpacing:
48 case QChar::Mark_SpacingCombining:
49 case QChar::Number_DecimalDigit:
50 case QChar::Punctuation_Connector:
61 return c == u':' || c == u'|' || c == u' ' || isIdContinuation(c);
66 return !name.isEmpty() && isIdStart(name.at(0))
67 && std::all_of(name.cbegin() + 1, name.cend(), isIdContinuation);
72 return !name.isEmpty() && isIdStart(name.at(0))
73 && std::all_of(name.cbegin() + 1, name.cend(), isEnumIdContinuation);
78 return c == u':' || c == u'.' || isIdContinuation(c);
83 return !name.isEmpty() && isIdStart(name.at(0))
84 && std::all_of(name.cbegin() + 1, name.cend(), isClassNameContinuation);
89 return "Invalid property value: \""_L1 + name +
"\": \""_L1 + value + u'"';
94 return "Invalid property name: \""_L1 + name + u'"';
99 return "Invalid class name: \""_L1 + name + u'"';
104 for (
const DomProperty *p : properties) {
105 const bool isDynamicProperty = p->hasAttributeStdset() && p->attributeStdset() == 0;
106 const QString &name = p->attributeName();
107 if (!isDynamicProperty && !checkPropertyName(name))
108 errors->append(msgInvalidPropertyName(name));
110 case DomProperty::Set:
111 if (!checkEnumValue(p->elementSet()))
112 errors->append(msgInvalidValue(name, p->elementSet()));
114 case DomProperty::Enum:
115 if (!checkEnumValue(p->elementEnum()))
116 errors->append(msgInvalidValue(name, p->elementEnum()));
132 if (!checkClassName(node->elementClass()))
133 m_errors.append(msgInvalidClassName(node->elementClass()));
140 checkProperties(node->elementProperty(), &m_errors);
142 if (!checkClassName(node->attributeClass()))
143 m_errors.append(msgInvalidClassName(node->attributeClass()));
159 checkProperties(node->elementProperty(), &m_errors);
168 checkProperties(node->elementProperty(), &m_errors);
177 checkProperties(node->elementProperty(), &m_errors);
QString findOrInsertWidget(const DomWidget *ui_widget)
QString findOrInsertActionGroup(const DomActionGroup *ui_group)
QString findOrInsertLayoutItem(const DomLayoutItem *ui_layoutItem)
QString findOrInsertAction(const DomAction *ui_action)
QString findOrInsertLayout(const DomLayout *ui_layout)
Combined button and popup list for selecting options.
virtual void acceptAction(DomAction *action)
virtual void acceptActionGroup(DomActionGroup *actionGroup)
virtual void acceptLayoutItem(DomLayoutItem *layoutItem)
virtual void acceptWidget(DomWidget *widget)
virtual void acceptUI(DomUI *ui)
virtual void acceptLayout(DomLayout *layout)
void acceptUI(DomUI *node) override
void acceptLayoutItem(DomLayoutItem *node) override
void acceptWidget(DomWidget *node) override
void acceptLayout(DomLayout *node) override
void acceptAction(DomAction *node) override
void acceptActionGroup(DomActionGroup *node) override