forked from qt-creator/qt-creator
QmlDesigner: Support .qrc files in the qml2puppet
The code model knows about .qrc files and has a mapping that we forward to the qml2puppet. Support for .qrc was broken when introducing the QmlPrivateGate. Change-Id: I22d1c1add65d0c9a914e471dbe51ef505f308494 Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
@@ -130,6 +130,7 @@ NodeInstanceServer::NodeInstanceServer(NodeInstanceClientInterface *nodeInstance
|
||||
connect(m_childrenChangeEventFilter.data(), &Internal::ChildrenChangeEventFilter::childrenChanged, this, &NodeInstanceServer::emitParentChanged);
|
||||
nodeInstanceServerInstance = this;
|
||||
Internal::QmlPrivateGate::registerNotifyPropertyChangeCallBack(notifyPropertyChangeCallBackPointer);
|
||||
Internal::QmlPrivateGate::registerFixResourcePathsForObjectCallBack();
|
||||
}
|
||||
|
||||
NodeInstanceServer::~NodeInstanceServer()
|
||||
|
@@ -790,6 +790,10 @@ ComponentCompleteDisabler::~ComponentCompleteDisabler()
|
||||
DesignerSupport::enableComponentComplete();
|
||||
}
|
||||
|
||||
void registerFixResourcePathsForObjectCallBack()
|
||||
{
|
||||
}
|
||||
|
||||
} // namespace QmlPrivateGate
|
||||
} // namespace Internal
|
||||
} // namespace QmlDesigner
|
||||
|
@@ -127,6 +127,8 @@ public:
|
||||
|
||||
void registerNotifyPropertyChangeCallBack(void (*callback)(QObject *, const PropertyName &));
|
||||
|
||||
void registerFixResourcePathsForObjectCallBack();
|
||||
|
||||
} // namespace QmlPrivateGate
|
||||
} // namespace Internal
|
||||
} // namespace QmlDesigner
|
||||
|
@@ -137,6 +137,25 @@ QVariant fixResourcePaths(const QVariant &value)
|
||||
}
|
||||
|
||||
|
||||
void fixResourcePathsForObject(QObject *object)
|
||||
{
|
||||
if (qgetenv("QMLDESIGNER_RC_PATHS").isEmpty())
|
||||
return;
|
||||
|
||||
PropertyNameList propertyNameList = propertyNameListForWritableProperties(object);
|
||||
|
||||
foreach (const PropertyName &propertyName, propertyNameList) {
|
||||
QQmlProperty property(object, QString::fromUtf8(propertyName), QQmlEngine::contextForObject(object));
|
||||
|
||||
const QVariant value = property.read();
|
||||
const QVariant fixedValue = fixResourcePaths(value);
|
||||
if (value != fixedValue) {
|
||||
property.write(fixedValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QObject *createComponent(const QUrl &componentUrl, QQmlContext *context)
|
||||
{
|
||||
return QQuickDesignerSupportItems::createComponent(componentUrl, context);
|
||||
@@ -396,6 +415,11 @@ ComponentCompleteDisabler::~ComponentCompleteDisabler()
|
||||
DesignerSupport::enableComponentComplete();
|
||||
}
|
||||
|
||||
void registerFixResourcePathsForObjectCallBack()
|
||||
{
|
||||
QQuickDesignerSupportItems::registerFixResourcePathsForObjectCallBack(&fixResourcePathsForObject);
|
||||
}
|
||||
|
||||
} // namespace QmlPrivateGate
|
||||
} // namespace Internal
|
||||
} // namespace QmlDesigner
|
||||
|
Reference in New Issue
Block a user