diff --git a/src/plugins/qmldesigner/components/integration/designdocument.cpp b/src/plugins/qmldesigner/components/integration/designdocument.cpp index e2ac7235f13..3c96494ba2a 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocument.cpp @@ -46,6 +46,8 @@ #include #include +#include + #include #include #include @@ -243,12 +245,17 @@ void DesignDocument::loadDocument(QPlainTextEdit *edit) this, SIGNAL(dirtyStateChanged(bool))); m_documentTextModifier.reset(new BaseTextEditModifier(dynamic_cast(plainTextEdit()))); + + connect(m_documentTextModifier.data(), &TextModifier::textChanged, this, &DesignDocument::updateQrcFiles); + m_documentModel->setTextModifier(m_documentTextModifier.data()); m_inFileComponentTextModifier.reset(); updateFileName(Utils::FileName(), fileName()); + updateQrcFiles(); + m_documentLoaded = true; } @@ -277,6 +284,18 @@ void DesignDocument::changeToInFileComponentModel(ComponentTextModifier *textMod viewManager().attachViewsExceptRewriterAndComponetView(); } +void DesignDocument::updateQrcFiles() +{ + ProjectExplorer::Project *currentProject = ProjectExplorer::SessionManager::projectForFile(fileName()); + + if (currentProject) { + foreach (const QString &fileName, currentProject->files(ProjectExplorer::Project::SourceFiles)) { + if (fileName.endsWith(".qrc")) + QmlJS::ModelManagerInterface::instance()->updateQrcFile(fileName); + } + } +} + void DesignDocument::changeToSubComponent(const ModelNode &componentNode) { if (QmlDesignerPlugin::instance()->currentDesignDocument() != this) diff --git a/src/plugins/qmldesigner/components/integration/designdocument.h b/src/plugins/qmldesigner/components/integration/designdocument.h index 8e8e18ecb4f..e7aff639533 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.h +++ b/src/plugins/qmldesigner/components/integration/designdocument.h @@ -124,6 +124,8 @@ private slots: private: // functions void changeToInFileComponentModel(ComponentTextModifier *textModifer); + void updateQrcFiles(); + QWidget *centralWidget() const; QString pathToQt() const;