diff --git a/src/plugins/qmldesigner/designercore/designercore.pri b/src/plugins/qmldesigner/designercore/designercore.pri index 6c480b8d17266896bef8294db841edaa7efbb0a7..a3f18853d80e3cf14ca32297e9d3dc18bbc5e281 100644 --- a/src/plugins/qmldesigner/designercore/designercore.pri +++ b/src/plugins/qmldesigner/designercore/designercore.pri @@ -117,7 +117,8 @@ SOURCES += $$PWD/model/abstractview.cpp \ $$PWD/instances/informationcontainer.cpp \ $$PWD/instances/changestatecommand.cpp \ $$PWD/instances/nodeinstanceserverproxy.cpp \ - $$PWD/instances/nodeinstanceclientproxy.cpp + $$PWD/instances/nodeinstanceclientproxy.cpp \ + $$PWD/instances/addimportcommand.cpp HEADERS += $$PWD/include/corelib_global.h \ $$PWD/include/abstractview.h \ $$PWD/include/nodeinstanceview.h \ @@ -233,7 +234,8 @@ HEADERS += $$PWD/include/corelib_global.h \ $$PWD/include/commondefines.h \ $$PWD/instances/changestatecommand.h \ $$PWD/instances/nodeinstanceserverproxy.h \ - $$PWD/instances/nodeinstanceclientproxy.h + $$PWD/instances/nodeinstanceclientproxy.h \ + $$PWD/instances/addimportcommand.h contains(CONFIG, plugin) { # If core.pri has been included in the qmldesigner plugin diff --git a/src/plugins/qmldesigner/designercore/include/import.h b/src/plugins/qmldesigner/designercore/include/import.h index ca5b6f79eec0a8205545f4571a27700987222058..40854beea3b5fe4a3420a1090955390e07970471 100644 --- a/src/plugins/qmldesigner/designercore/include/import.h +++ b/src/plugins/qmldesigner/designercore/include/import.h @@ -31,6 +31,7 @@ #define IMPORT_H #include <QtCore/QString> +#include <QStringList> #include "corelib_global.h" @@ -39,8 +40,8 @@ namespace QmlDesigner { class CORESHARED_EXPORT Import { public: - static Import createLibraryImport(const QString &url, const QString &version = QString(), const QString &alias = QString()); - static Import createFileImport(const QString &file, const QString &version = QString(), const QString &alias = QString()); + static Import createLibraryImport(const QString &url, const QString &version = QString(), const QString &alias = QString(), const QStringList &importPaths = QStringList()); + static Import createFileImport(const QString &file, const QString &version = QString(), const QString &alias = QString(), const QStringList &importPaths = QStringList()); static Import empty(); bool isEmpty() const { return m_url.isEmpty() && m_file.isEmpty(); } @@ -53,19 +54,21 @@ public: QString file() const { return m_file; } QString version() const { return m_version; } QString alias() const { return m_alias; } + QStringList importPaths() const { return m_importPathList; } QString toString(bool addSemicolon = false) const; bool operator==(const Import &other) const; private: - Import(const QString &url, const QString &file, const QString &version, const QString &alias); + Import(const QString &url, const QString &file, const QString &version, const QString &alias, const QStringList &importPaths); private: QString m_url; QString m_file; QString m_version; QString m_alias; + QStringList m_importPathList; }; CORESHARED_EXPORT uint qHash(const Import &import); diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceserverinterface.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceserverinterface.h index c9d8951999a71f596fefdd45a0232f1225122bc1..dee249415836ac1e1ca82fea4b7f20de5bb77bc1 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstanceserverinterface.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceserverinterface.h @@ -20,6 +20,7 @@ class ChangeIdsCommand; class RemoveInstancesCommand; class RemovePropertiesCommand; class ChangeStateCommand; +class AddImportCommand; class NodeInstanceServerInterface : public QObject { @@ -38,6 +39,7 @@ public: virtual void reparentInstances(const ReparentInstancesCommand &command) = 0; virtual void changeIds(const ChangeIdsCommand &command) = 0; virtual void changeState(const ChangeStateCommand &command) = 0; + virtual void addImport(const AddImportCommand &command) = 0; virtual void setBlockUpdates(bool block) {} diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h index 1c844b381afbdfa026784f7c7cf7212046d30fcc..4c06ecbed57768fcad7a3b29ca414078fcef88cc 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h @@ -62,6 +62,7 @@ class ChangeBindingsCommand; class ChangeIdsCommand; class RemoveInstancesCommand; class RemovePropertiesCommand; +class AddImportCommand; class CORESHARED_EXPORT NodeInstanceView : public AbstractView, public NodeInstanceClientInterface { @@ -92,7 +93,7 @@ public: void selectedNodesChanged(const QList<ModelNode> &selectedNodeList, const QList<ModelNode> &lastSelectedNodeList); void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList); void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList); - + void importAdded(const Import &import); QList<NodeInstance> instances() const; NodeInstance instanceForNode(const ModelNode &node) const ; @@ -149,6 +150,7 @@ private: // functions RemoveInstancesCommand createRemoveInstancesCommand(const QList<ModelNode> &nodeList) const; RemoveInstancesCommand createRemoveInstancesCommand(const ModelNode &node) const; RemovePropertiesCommand createRemovePropertiesCommand(const QList<AbstractProperty> &propertyList) const; + AddImportCommand createImportCommand(const Import &import); qint32 generateInstanceId(); diff --git a/src/plugins/qmldesigner/designercore/instances/addimportcommand.cpp b/src/plugins/qmldesigner/designercore/instances/addimportcommand.cpp new file mode 100644 index 0000000000000000000000000000000000000000..bb132896d05cd92b7dec961eacb2fc353bc05c61 --- /dev/null +++ b/src/plugins/qmldesigner/designercore/instances/addimportcommand.cpp @@ -0,0 +1,65 @@ +#include "addimportcommand.h" + +namespace QmlDesigner { + +AddImportCommand::AddImportCommand() +{ +} + +AddImportCommand::AddImportCommand(const QUrl &url, const QString &fileName, const QString &version, const QString &alias, const QStringList &importPathList) + : m_url(url), + m_fileName(fileName), + m_version(version), + m_alias(alias), + m_importPathList(importPathList) +{ +} + +QUrl AddImportCommand::url() const +{ + return m_url; +} + +QString AddImportCommand::fileName() const +{ + return m_fileName; +} + +QString AddImportCommand::version() const +{ + return m_version; +} + +QString AddImportCommand::alias() const +{ + return m_alias; +} + +QStringList AddImportCommand::importPaths() const +{ + return m_importPathList; +} + +QDataStream &operator<<(QDataStream &out, const AddImportCommand &command) +{ + out << command.url(); + out << command.fileName(); + out << command.version(); + out << command.alias(); + out << command.importPaths(); + + return out; +} + +QDataStream &operator>>(QDataStream &in, AddImportCommand &command) +{ + in >> command.m_url; + in >> command.m_fileName; + in >> command.m_version; + in >> command.m_alias; + in >> command.m_importPathList; + + return in; +} + +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/instances/addimportcommand.h b/src/plugins/qmldesigner/designercore/instances/addimportcommand.h new file mode 100644 index 0000000000000000000000000000000000000000..1576a2259734d65fc0bd9b324d9d108a52ab35b4 --- /dev/null +++ b/src/plugins/qmldesigner/designercore/instances/addimportcommand.h @@ -0,0 +1,39 @@ +#ifndef ADDIMPORTCOMMAND_H +#define ADDIMPORTCOMMAND_H + +#include <QMetaType> +#include <QUrl> +#include <QString> +#include <QStringList> + +namespace QmlDesigner { + +class AddImportCommand +{ + friend QDataStream &operator>>(QDataStream &in, AddImportCommand &command); +public: + AddImportCommand(); + AddImportCommand(const QUrl &url, const QString &fileName, const QString &version, const QString &alias, const QStringList &mportPathList); + + QUrl url() const; + QString fileName() const; + QString version() const; + QString alias() const; + QStringList importPaths() const; + +private: + QUrl m_url; + QString m_fileName; + QString m_version; + QString m_alias; + QStringList m_importPathList; +}; + +QDataStream &operator<<(QDataStream &out, const AddImportCommand &command); +QDataStream &operator>>(QDataStream &in, AddImportCommand &command); + +} // namespace QmlDesigner + +Q_DECLARE_METATYPE(QmlDesigner::AddImportCommand); + +#endif // ADDIMPORTCOMMAND_H diff --git a/src/plugins/qmldesigner/designercore/instances/instances.pri b/src/plugins/qmldesigner/designercore/instances/instances.pri index 0b51ea01e7fe851aaa2d0852fc381c2d260f5ecc..e1c10d67612f04d8387bd43ce5f906b02b669022 100644 --- a/src/plugins/qmldesigner/designercore/instances/instances.pri +++ b/src/plugins/qmldesigner/designercore/instances/instances.pri @@ -3,6 +3,7 @@ INCLUDEPATH += $$PWD/../include HEADERS += $$PWD/behaviornodeinstance.h +HEADERS += $$PWD/addimportcommand.h HEADERS += $$PWD/changebindingscommand.h HEADERS += $$PWD/changefileurlcommand.h HEADERS += $$PWD/changeidscommand.h @@ -41,6 +42,7 @@ HEADERS += $$PWD/../include/nodeinstanceserverinterface.h SOURCES += $$PWD/behaviornodeinstance.cpp +SOURCES += $$PWD/addimportcommand.cpp SOURCES += $$PWD/changebindingscommand.cpp SOURCES += $$PWD/changefileurlcommand.cpp SOURCES += $$PWD/changeidscommand.cpp diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.cpp index 76717f27b4d681ca7c0df2fe9a55a5dda98f89c2..60aefc5cd6642636ace7187b1c75168e4dddb811 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.cpp @@ -22,6 +22,7 @@ #include "reparentinstancescommand.h" #include "changeidscommand.h" #include "changestatecommand.h" +#include "addimportcommand.h" #include "informationchangedcommand.h" #include "pixmapchangedcommand.h" @@ -127,6 +128,7 @@ void NodeInstanceClientProxy::dispatchCommand(const QVariant &command) static const int reparentInstancesCommandType = QMetaType::type("ReparentInstancesCommand"); static const int changeIdsCommandType = QMetaType::type("ChangeIdsCommand"); static const int changeStateCommandType = QMetaType::type("ChangeStateCommand"); + static const int addImportCommandType = QMetaType::type("AddImportCommand"); if (command.userType() == createInstancesCommandType) nodeInstanceServer()->createInstances(command.value<CreateInstancesCommand>()); @@ -150,6 +152,8 @@ void NodeInstanceClientProxy::dispatchCommand(const QVariant &command) nodeInstanceServer()->changeIds(command.value<ChangeIdsCommand>()); else if (command.userType() == changeStateCommandType) nodeInstanceServer()->changeState(command.value<ChangeStateCommand>()); + else if (command.userType() == addImportCommandType) + nodeInstanceServer()->addImport(command.value<AddImportCommand>()); else Q_ASSERT(false); } diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp index 9fcdc2b565f91a350ebb65bdf89be4b830672dc2..c9347ae08d57b5a365d852ade25cdfa68fbd5b2f 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp @@ -10,6 +10,7 @@ #include <QSet> #include <QVariant> #include <QMetaType> +#include <QDeclarativeComponent> #include "servernodeinstance.h" #include "childrenchangeeventfilter.h" @@ -33,6 +34,7 @@ #include "commondefines.h" #include "childrenchangeeventfilter.h" #include "changestatecommand.h" +#include "addimportcommand.h" #include <iostream> #include <stdio.h> @@ -44,7 +46,8 @@ NodeInstanceServer::NodeInstanceServer(NodeInstanceClientInterface *nodeInstance NodeInstanceServerInterface(), m_childrenChangeEventFilter(new Internal::ChildrenChangeEventFilter(this)), m_nodeInstanceClient(nodeInstanceClient), - m_timer(0) + m_timer(0), + m_slowRenderTimer(false) { connect(m_childrenChangeEventFilter.data(), SIGNAL(childrenChanged(QObject*)), this, SLOT(emitParentChanged(QObject*))); } @@ -117,8 +120,24 @@ bool NodeInstanceServer::hasInstanceForObject(QObject *object) const void NodeInstanceServer::startRenderTimer() { + if (m_slowRenderTimer) + stopRenderTimer(); + if (m_timer == 0) m_timer = startTimer(16); + + m_slowRenderTimer = false; +} + +void NodeInstanceServer::slowDownRenderTimer() +{ + if (!m_slowRenderTimer) + stopRenderTimer(); + + if (m_timer == 0) + m_timer = startTimer(1000); + + m_slowRenderTimer = true; } void NodeInstanceServer::stopRenderTimer() @@ -135,7 +154,6 @@ void NodeInstanceServer::createScene(const CreateSceneCommand &/*command*/) m_declarativeView = new QDeclarativeView; m_declarativeView->setAttribute(Qt::WA_DontShowOnScreen, true); m_declarativeView->setViewportUpdateMode(QGraphicsView::NoViewportUpdate); - m_declarativeView->viewport()->setUpdatesEnabled(false); m_declarativeView->show(); if (!m_fileUrl.isEmpty()) @@ -201,6 +219,35 @@ void NodeInstanceServer::changeState(const ChangeStateCommand &command) startRenderTimer(); } +void NodeInstanceServer::addImport(const AddImportCommand &command) +{ + QString importStatement = QString("import "); + + if (!command.fileName().isEmpty()) + importStatement += '"' + command.fileName() + '"'; + else if (!command.url().isEmpty()) + importStatement += command.url().toString(); + + if (!command.version().isEmpty()) + importStatement += " " + command.version(); + + if (!command.alias().isEmpty()) + importStatement += " as " + command.alias(); + + QDeclarativeComponent importComponent(engine(), 0); + QString componentString = QString("import Qt 4.7\n%1\n Item{}\n").arg(importStatement); + + foreach(const QString &importPath, command.importPaths()) { + engine()->addImportPath(importPath); + engine()->addPluginPath(importPath); + } + + importComponent.setData(componentString.toLatin1(), QUrl()); + + if (!importComponent.errorString().isEmpty()) + qDebug() << "QmlDesigner.NodeInstances: import wrong: " << importComponent.errorString(); +} + void NodeInstanceServer::changeFileUrl(const ChangeFileUrlCommand &command) { m_fileUrl = command.fileUrl(); @@ -598,6 +645,7 @@ void NodeInstanceServer::removeInstanceRelationsip(qint32 instanceId) PixmapChangedCommand NodeInstanceServer::createPixmapChangedCommand(const ServerNodeInstance &instance) const { + qDebug() << __FUNCTION__ << instance.internalObject(); return PixmapChangedCommand(instance.instanceId(), instance.renderImage()); } @@ -653,8 +701,6 @@ void NodeInstanceServer::findItemChangesAndSendChangeCommands() if((d->dirty && d->notifyBoundingRectChanged)|| (d->dirty && !d->dirtySceneTransform) || nonInstanceChildIsDirty(graphicsObject)) dirtyInstanceSet.insert(instance); - - if (d->geometryChanged) { if (instance.isRootNodeInstance()) m_declarativeView->scene()->setSceneRect(item->boundingRect()); @@ -702,7 +748,7 @@ void NodeInstanceServer::findItemChangesAndSendChangeCommands() } } - stopRenderTimer(); + slowDownRenderTimer(); nodeInstanceClient()->flush(); } diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h index 3b03d8ec7d7a93f27ea71e072b16550a26e00a75..07ab44a2c1615879ffb633ce4b570f19b751f48d 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h @@ -46,7 +46,7 @@ public: void removeProperties(const RemovePropertiesCommand &command); void reparentInstances(const ReparentInstancesCommand &command); void changeState(const ChangeStateCommand &command); - + void addImport(const AddImportCommand &command); ServerNodeInstance instanceForId(qint32 id) const; bool hasInstanceForId(qint32 id) const; @@ -103,6 +103,7 @@ protected: void addChangedProperty(const InstancePropertyPair &property); void startRenderTimer(); + void slowDownRenderTimer(); void stopRenderTimer(); private: @@ -117,6 +118,7 @@ private: QUrl m_fileUrl; NodeInstanceClientInterface *m_nodeInstanceClient; int m_timer; + bool m_slowRenderTimer; QVector<InstancePropertyPair> m_changedPropertyList; }; diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverinterface.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverinterface.cpp index f3fcee3b6779df7f2c401a38a8cf21b3d821ed16..1e9a3f3d5a5b26ceeebd4f6e022c83519002ef13 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverinterface.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverinterface.cpp @@ -20,7 +20,7 @@ #include "informationchangedcommand.h" #include "pixmapchangedcommand.h" #include "valueschangedcommand.h" - +#include "addimportcommand.h" namespace QmlDesigner { @@ -101,6 +101,9 @@ void NodeInstanceServerInterface::registerCommands() qRegisterMetaType<IdContainer>("IdContainer"); qRegisterMetaTypeStreamOperators<IdContainer>("IdContainer"); + + qRegisterMetaType<AddImportCommand>("AddImportCommand"); + qRegisterMetaTypeStreamOperators<AddImportCommand>("AddImportCommand"); } } diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp index 7dda600535b6dbb09ded54e8281209ca1f1807b1..2d3ed83e0940d2e6edbafa0c44bda0ba1b13c83f 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp @@ -21,6 +21,7 @@ #include "reparentinstancescommand.h" #include "changeidscommand.h" #include "changestatecommand.h" +#include "addimportcommand.h" #include "informationchangedcommand.h" #include "pixmapchangedcommand.h" @@ -199,4 +200,8 @@ void NodeInstanceServerProxy::changeState(const ChangeStateCommand &command) writeCommand(QVariant::fromValue(command)); } +void NodeInstanceServerProxy::addImport(const AddImportCommand &command) +{ + writeCommand(QVariant::fromValue(command)); +} } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h index 6e3fc1cc9ddead90032606a33e7c7fe1f7857110..40a6baf68810306d96fcfde6a4369246071e58e2 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h @@ -36,6 +36,7 @@ public: void reparentInstances(const ReparentInstancesCommand &command); void changeIds(const ChangeIdsCommand &command); void changeState(const ChangeStateCommand &command); + void addImport(const AddImportCommand &command); void setBlockUpdates(bool block); diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index e9e58822d0bde5c0ab7d72d57f8b0f7ad86661ab..26e3eab7dab23bd5d4bc3f797021fc13dd31640e 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -70,6 +70,7 @@ #include "pixmapchangedcommand.h" #include "informationchangedcommand.h" #include "changestatecommand.h" +#include "addimportcommand.h" #include "nodeinstanceserverproxy.h" @@ -139,6 +140,8 @@ void NodeInstanceView::modelAttached(Model *model) nodeInstanceServer()->createScene(createCreateSceneCommand()); nodeInstanceServer()->changeFileUrl(createChangeFileUrlCommand(model->fileUrl())); + foreach(const Import &import, model->imports()) + nodeInstanceServer()->addImport(createImportCommand(import)); loadNodes(allModelNodes()); setBlockUpdates(false); @@ -422,6 +425,10 @@ void NodeInstanceView::instancePropertyChange(const QList<QPair<ModelNode, QStri } +void NodeInstanceView::importAdded(const Import &import) +{ + nodeInstanceServer()->addImport(createImportCommand(import)); +} //\} @@ -861,6 +868,11 @@ RemovePropertiesCommand NodeInstanceView::createRemovePropertiesCommand(const QL return RemovePropertiesCommand(containerList); } +AddImportCommand NodeInstanceView::createImportCommand(const Import &import) +{ + return AddImportCommand(import.url(), import.file(), import.version(), import.alias(), import.importPaths()); +} + void NodeInstanceView::valuesChanged(const ValuesChangedCommand &command) { foreach(const PropertyValueContainer &container, command.valueChanges()) { diff --git a/src/plugins/qmldesigner/designercore/model/import.cpp b/src/plugins/qmldesigner/designercore/model/import.cpp index 53e20bc496bd446ebaef23e116d131b5cb759227..204ed51678569801e74eb0791827ab42a6b9b7fa 100644 --- a/src/plugins/qmldesigner/designercore/model/import.cpp +++ b/src/plugins/qmldesigner/designercore/model/import.cpp @@ -33,26 +33,27 @@ namespace QmlDesigner { -Import Import::createLibraryImport(const QString &url, const QString &version, const QString &alias) +Import Import::createLibraryImport(const QString &url, const QString &version, const QString &alias, const QStringList &importPaths) { - return Import(url, QString(), version, alias); + return Import(url, QString(), version, alias, importPaths); } -Import Import::createFileImport(const QString &file, const QString &version, const QString &alias) +Import Import::createFileImport(const QString &file, const QString &version, const QString &alias, const QStringList &importPaths) { - return Import(QString(), file, version, alias); + return Import(QString(), file, version, alias, importPaths); } Import Import::empty() { - return Import(QString(), QString(), QString(), QString()); + return Import(QString(), QString(), QString(), QString(), QStringList()); } -Import::Import(const QString &url, const QString &file, const QString &version, const QString &alias): +Import::Import(const QString &url, const QString &file, const QString &version, const QString &alias, const QStringList &importPaths): m_url(url), m_file(file), m_version(version), - m_alias(alias) + m_alias(alias), + m_importPathList(importPaths) { } diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index e454e97bf5bd0545eda423faa4607ab110037d3a..1850ed7e261af24c48b849d86a49041123fb42a7 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -536,13 +536,13 @@ void TextToModelMerger::setupImports(const Document::Ptr &doc, if (import->fileName) { const QString strippedFileName = stripQuotes(import->fileName->asString()); const Import newImport = Import::createFileImport(strippedFileName, - version, as); + version, as, m_rewriterView->textModifier()->importPaths()); if (!existingImports.removeOne(newImport)) differenceHandler.modelMissesImport(newImport); } else { const Import newImport = - Import::createLibraryImport(flatten(import->importUri), version, as); + Import::createLibraryImport(flatten(import->importUri), version, as, m_rewriterView->textModifier()->importPaths()); if (!existingImports.removeOne(newImport)) differenceHandler.modelMissesImport(newImport);