summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qmldesigner/designercore/include/componenttextmodifier.h2
-rw-r--r--src/plugins/qmldesigner/designercore/include/plaintexteditmodifier.h2
-rw-r--r--src/plugins/qmldesigner/designercore/include/rewriterview.h2
-rw-r--r--src/plugins/qmldesigner/designercore/include/textmodifier.h1
-rw-r--r--src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp3
-rw-r--r--src/plugins/qmldesigner/designercore/model/model.cpp9
-rw-r--r--src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp14
-rw-r--r--src/plugins/qmldesigner/designercore/model/rewriterview.cpp5
-rw-r--r--src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp13
-rw-r--r--src/plugins/qmldesigner/designercore/model/texttomodelmerger.h4
10 files changed, 22 insertions, 33 deletions
diff --git a/src/plugins/qmldesigner/designercore/include/componenttextmodifier.h b/src/plugins/qmldesigner/designercore/include/componenttextmodifier.h
index b31d6506a3..6314568fe4 100644
--- a/src/plugins/qmldesigner/designercore/include/componenttextmodifier.h
+++ b/src/plugins/qmldesigner/designercore/include/componenttextmodifier.h
@@ -58,8 +58,6 @@ public:
virtual void deactivateChangeSignals();
virtual void reactivateChangeSignals();
- virtual QStringList importPaths() const;
-
virtual bool renameId(const QString & /* oldId */, const QString & /* newId */) { return false; }
public slots:
diff --git a/src/plugins/qmldesigner/designercore/include/plaintexteditmodifier.h b/src/plugins/qmldesigner/designercore/include/plaintexteditmodifier.h
index 730722ea1e..d5b28558e8 100644
--- a/src/plugins/qmldesigner/designercore/include/plaintexteditmodifier.h
+++ b/src/plugins/qmldesigner/designercore/include/plaintexteditmodifier.h
@@ -73,8 +73,6 @@ public:
virtual void deactivateChangeSignals();
virtual void reactivateChangeSignals();
- virtual QStringList importPaths() const;
-
virtual bool renameId(const QString & /* oldId */, const QString & /* newId */) { return false; }
protected:
diff --git a/src/plugins/qmldesigner/designercore/include/rewriterview.h b/src/plugins/qmldesigner/designercore/include/rewriterview.h
index 9721792907..770b242464 100644
--- a/src/plugins/qmldesigner/designercore/include/rewriterview.h
+++ b/src/plugins/qmldesigner/designercore/include/rewriterview.h
@@ -203,6 +203,8 @@ public:
QString pathForImport(const Import &import);
+ QStringList importDirectories() const;
+
signals:
void errorsChanged(const QList<RewriterView::Error> &errors);
diff --git a/src/plugins/qmldesigner/designercore/include/textmodifier.h b/src/plugins/qmldesigner/designercore/include/textmodifier.h
index d95405e047..c9187baf98 100644
--- a/src/plugins/qmldesigner/designercore/include/textmodifier.h
+++ b/src/plugins/qmldesigner/designercore/include/textmodifier.h
@@ -84,7 +84,6 @@ public:
virtual void reactivateChangeSignals() = 0;
static QmlJS::Snapshot qmljsSnapshot();
- virtual QStringList importPaths() const = 0;
virtual bool renameId(const QString &oldId, const QString &newId) = 0;
diff --git a/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp b/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp
index d78a03e6f2..1d0b047598 100644
--- a/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp
+++ b/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp
@@ -128,6 +128,3 @@ void ComponentTextModifier::reactivateChangeSignals()
void ComponentTextModifier::contentsChange(int /*position*/, int /*charsRemoved*/, int /*charsAdded*/)
{
}
-
-QStringList ComponentTextModifier::importPaths() const
-{ return m_originalModifier->importPaths(); }
diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp
index 2fe40bd15e..94b19ee38a 100644
--- a/src/plugins/qmldesigner/designercore/model/model.cpp
+++ b/src/plugins/qmldesigner/designercore/model/model.cpp
@@ -61,6 +61,8 @@
#include "invalididexception.h"
#include "textmodifier.h"
+#include <qmljs/qmljsmodelmanagerinterface.h>
+
/*!
\defgroup CoreModel
*/
@@ -1823,6 +1825,9 @@ QString Model::pathForImport(const Import &import)
QStringList Model::importPaths() const
{
+ if (rewriterView())
+ return rewriterView()->importDirectories();
+
QStringList importPathList;
QString documentDirectoryPath = QFileInfo(fileUrl().toLocalFile()).absolutePath();
@@ -1830,10 +1835,6 @@ QStringList Model::importPaths() const
if (!documentDirectoryPath.isEmpty())
importPathList.append(documentDirectoryPath);
- if (textModifier()) {
- importPathList.append(textModifier()->importPaths());
- }
-
return importPathList;
}
diff --git a/src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp b/src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp
index 71c22c9d3d..62354bfe6e 100644
--- a/src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp
+++ b/src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp
@@ -196,17 +196,3 @@ void PlainTextEditModifier::reactivateChangeSignals()
emit textChanged();
}
}
-
-QStringList PlainTextEditModifier::importPaths() const
-{
- QmlJS::ModelManagerInterface *modelManager = QmlJS::ModelManagerInterface::instance();
- if (modelManager && textDocument()) {
- QString documentFilePath = textDocument()->baseUrl().toLocalFile();
- if (!documentFilePath.isEmpty()) {
- QmlJS::Document::Ptr qmljsDocument = modelManager->snapshot().document(documentFilePath);
- return modelManager->defaultVContext(QmlJS::Language::Qml, qmljsDocument, true).paths;
- }
- }
-
- return QStringList();
-}
diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
index 9711723f85..7498f0fb25 100644
--- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
@@ -745,6 +745,11 @@ QString RewriterView::pathForImport(const Import &import)
return QString();
}
+QStringList RewriterView::importDirectories() const
+{
+ return m_textToModelMerger->vContext().paths;
+}
+
void RewriterView::qmlTextChanged()
{
if (inErrorState())
diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
index b13e359c93..dc646979fc 100644
--- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
+++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
@@ -715,7 +715,7 @@ void TextToModelMerger::setupImports(const Document::Ptr &doc,
if (!import->fileName.isEmpty()) {
const QString strippedFileName = stripQuotes(import->fileName.toString());
const Import newImport = Import::createFileImport(strippedFileName,
- version, as, m_rewriterView->textModifier()->importPaths());
+ version, as, m_rewriterView->importDirectories());
if (!existingImports.removeOne(newImport))
differenceHandler.modelMissesImport(newImport);
@@ -727,7 +727,7 @@ void TextToModelMerger::setupImports(const Document::Ptr &doc,
}
const Import newImport =
- Import::createLibraryImport(importUri, version, as, m_rewriterView->textModifier()->importPaths());
+ Import::createLibraryImport(importUri, version, as, m_rewriterView->importDirectories());
if (!existingImports.removeOne(newImport))
differenceHandler.modelMissesImport(newImport);
@@ -833,9 +833,8 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
// qDebug() << "TextToModelMerger::load with data:" << data;
const QUrl url = m_rewriterView->model()->fileUrl();
- const QStringList importPaths = m_rewriterView->textModifier()->importPaths();
- setActive(true);
+ setActive(true);
try {
Snapshot snapshot = m_rewriterView->textModifier()->qmljsSnapshot();
@@ -853,8 +852,8 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
return false;
}
snapshot.insert(doc);
- QmlJS::ViewerContext vContext = QmlJS::ModelManagerInterface::instance()->defaultVContext(Language::Qml, doc, true);
- ReadingContext ctxt(snapshot, doc, vContext);
+ m_vContext = QmlJS::ModelManagerInterface::instance()->defaultVContext(Language::Qml, doc, true);
+ ReadingContext ctxt(snapshot, doc, m_vContext);
m_scopeChain = QSharedPointer<const ScopeChain>(
new ScopeChain(ctxt.scopeChain()));
m_document = doc;
@@ -867,7 +866,7 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
}
setupImports(doc, differenceHandler);
- setupPossibleImports(snapshot, vContext);
+ setupPossibleImports(snapshot, m_vContext);
if (m_rewriterView->model()->imports().isEmpty()) {
const QmlJS::DiagnosticMessage diagnosticMessage(QmlJS::Severity::Error, AST::SourceLocation(0, 0, 0, 0), QCoreApplication::translate("QmlDesigner::TextToModelMerger", "No import statements found"));
diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h
index 833cdc7cfb..0e98fade2c 100644
--- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h
+++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h
@@ -72,6 +72,9 @@ public:
const QmlJS::Document *document() const
{ return m_document.data(); }
+ const QmlJS::ViewerContext &vContext() const
+ { return m_vContext; }
+
protected:
void setActive(bool active);
@@ -145,6 +148,7 @@ private:
QTimer m_setupTimer;
QSet<ModelNode> m_setupComponentList;
QSet<ModelNode> m_setupCustomParserList;
+ QmlJS::ViewerContext m_vContext;
};
class DifferenceHandler