From 334273be84c0b71c57a472075d337c705ad3f7cf Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 21 Jun 2016 14:01:41 +0200 Subject: [PATCH] QmlDesigner: Update qrc files This triggers an update on every qrc file. Change-Id: Id34873e3bd8190d79773fbc3a8a90699d4e49cb0 Reviewed-by: Tim Jenssen --- .../components/integration/designdocument.cpp | 19 +++++++++++++++++++ .../components/integration/designdocument.h | 2 ++ 2 files changed, 21 insertions(+) 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;