summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@nokia.com>2011-04-26 13:11:23 +0200
committercon <qtc-committer@nokia.com>2011-04-26 13:44:32 +0200
commit5b97322a19321893eeb3c8b4cb27b0b121d96d9a (patch)
treec20ebf3d640433365f7d6703893d0218565ab54b
parent0f9334329de6db7511802e515d61223c1dacc955 (diff)
downloadqt-creator-5b97322a19321893eeb3c8b4cb27b0b121d96d9a.tar.gz
QmlDesigner.qmlPuppet: fixes a bug when dragging in a WebView on KDE
WebView object contains a QIcon property ("reload.icon"), which fails to be streamed from the puppet (client) to Qt Creator (server). The QIcon is created by a 'KIconEngine' in the KDE case. which isn't found on the QtCreator side. This leads operator>> in qicon.cpp to not read anything from the buffer at all ... leading to all following properties being invalid, since read from the wrong bytes in the stream. Solution: Since QIcon leads to problems and we have no current use case for a QIcon property in Bauhaus we just ignore properties of type QIcon. Reviewed-by: Marco Bubke Task-number: QTCREATORBUG-4596
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
index 43849c096d..3d256b697a 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
@@ -865,6 +865,11 @@ InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand
return InformationChangedCommand(informationVector);
}
+static bool supportedVariantType(QVariant::Type type)
+{
+ return type < QVariant::UserType && type != QVariant::Icon;
+}
+
ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QList<ServerNodeInstance> &instanceList) const
{
QVector<PropertyValueContainer> valueVector;
@@ -872,7 +877,7 @@ ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QList<
foreach(const ServerNodeInstance &instance, instanceList) {
foreach(const QString &propertyName, instance.propertyNames()) {
QVariant propertyValue = instance.property(propertyName);
- if (propertyValue.type() < QVariant::UserType)
+ if (supportedVariantType(propertyValue.type()))
valueVector.append(PropertyValueContainer(instance.instanceId(), propertyName, propertyValue, QString()));
}
}
@@ -901,7 +906,7 @@ ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QVecto
if( instance.isValid()) {
QVariant propertyValue = instance.property(propertyName);
- if (propertyValue.type() < QVariant::UserType)
+ if (supportedVariantType(propertyValue.type()))
valueVector.append(PropertyValueContainer(instance.instanceId(), propertyName, propertyValue, QString()));
}
}