diff --git a/src/plugins/qmldesigner/designercore/include/model.h b/src/plugins/qmldesigner/designercore/include/model.h index bba0e69a3a5..e5ce969dbed 100644 --- a/src/plugins/qmldesigner/designercore/include/model.h +++ b/src/plugins/qmldesigner/designercore/include/model.h @@ -104,6 +104,7 @@ public: // Imports: QList imports() const; void changeImports(const QList &importsToBeAdded, const QList &importsToBeRemoved); + bool hasImport(const Import &import, bool ignoreAlias = true); RewriterView *rewriterView() const; diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp index c0e1aa63c4e..e0f957afb28 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -1723,6 +1723,24 @@ void Model::changeImports(const QList &importsToBeAdded, const QListchangeImports(importsToBeAdded, importsToBeRemoved); } +bool Model::hasImport(const Import &import, bool ignoreAlias) +{ + if (imports().contains(import)) + return true; + if (!ignoreAlias) + return false; + + foreach (const Import &existingImport, imports()) { + if (existingImport.isFileImport() && import.isFileImport()) + if (existingImport.file() == import.file() && existingImport.version() == import.version()) + return true; + if (existingImport.isLibraryImport() && import.isLibraryImport()) + if (existingImport.url() == import.url() && existingImport.version() == import.version()) + return true; + } + return false; +} + RewriterView *Model::rewriterView() const { return m_d->rewriterView();