summaryrefslogtreecommitdiffstats
path: root/src/designer/src/components/formeditor
diff options
context:
space:
mode:
Diffstat (limited to 'src/designer/src/components/formeditor')
-rw-r--r--src/designer/src/components/formeditor/qdesigner_resource.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/designer/src/components/formeditor/qdesigner_resource.cpp b/src/designer/src/components/formeditor/qdesigner_resource.cpp
index 0b4f2673a..462900a38 100644
--- a/src/designer/src/components/formeditor/qdesigner_resource.cpp
+++ b/src/designer/src/components/formeditor/qdesigner_resource.cpp
@@ -944,7 +944,8 @@ void QDesignerResource::applyProperties(QObject *o, const QList<DomProperty*> &p
if (!readDomEnumerationValue(p, sheet, index, v))
v = toVariant(o->metaObject(), *it);
- if (p->kind() == DomProperty::String) {
+ switch (p->kind()) {
+ case DomProperty::String:
if (index != -1 && sheet->property(index).userType() == qMetaTypeId<PropertySheetKeySequenceValue>()) {
const DomString *key = p->elementString();
PropertySheetKeySequenceValue keyVal(QKeySequence(key->text()));
@@ -956,6 +957,16 @@ void QDesignerResource::applyProperties(QObject *o, const QList<DomProperty*> &p
translationParametersFromDom(str, &strVal);
v = QVariant::fromValue(strVal);
}
+ break;
+ case DomProperty::StringList: {
+ const DomStringList *list = p->elementStringList();
+ PropertySheetStringListValue listValue(list->elementString());
+ translationParametersFromDom(list, &listValue);
+ v = QVariant::fromValue(listValue);
+ }
+ break;
+ default:
+ break;
}
d->applyPropertyInternally(o, propertyName, v);
@@ -974,6 +985,9 @@ void QDesignerResource::applyProperties(QObject *o, const QList<DomProperty*> &p
} else if (v.canConvert<PropertySheetStringValue>()) {
defaultValue = QVariant(QVariant::String);
isDefault = (qvariant_cast<PropertySheetStringValue>(v) == PropertySheetStringValue());
+ } else if (v.canConvert<PropertySheetStringListValue>()) {
+ defaultValue = QVariant(QVariant::StringList);
+ isDefault = (qvariant_cast<PropertySheetStringListValue>(v) == PropertySheetStringListValue());
} else if (v.canConvert<PropertySheetKeySequenceValue>()) {
defaultValue = QVariant(QVariant::KeySequence);
isDefault = (qvariant_cast<PropertySheetKeySequenceValue>(v) == PropertySheetKeySequenceValue());
@@ -2001,6 +2015,19 @@ DomProperty *QDesignerResource::createProperty(QObject *object, const QString &p
p->setAttributeName(propertyName);
return applyProperStdSetAttribute(object, propertyName, p);
+ } else if (value.canConvert<PropertySheetStringListValue>()) {
+ const PropertySheetStringListValue listValue = qvariant_cast<PropertySheetStringListValue>(value);
+ DomProperty *p = new DomProperty;
+ if (!hasSetter(core(), object, propertyName))
+ p->setAttributeStdset(0);
+
+ p->setAttributeName(propertyName);
+
+ DomStringList *domStringList = new DomStringList();
+ domStringList->setElementString(listValue.value());
+ translationParametersToDom(listValue, domStringList);
+ p->setElementStringList(domStringList);
+ return applyProperStdSetAttribute(object, propertyName, p);
} else if (value.canConvert<PropertySheetKeySequenceValue>()) {
const PropertySheetKeySequenceValue keyVal = qvariant_cast<PropertySheetKeySequenceValue>(value);
DomProperty *p = stringToDomProperty(keyVal.value().toString(), keyVal);