aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore/filemanager/changeimportsvisitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/designercore/filemanager/changeimportsvisitor.cpp')
-rw-r--r--src/plugins/qmldesigner/designercore/filemanager/changeimportsvisitor.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/designercore/filemanager/changeimportsvisitor.cpp b/src/plugins/qmldesigner/designercore/filemanager/changeimportsvisitor.cpp
index a35ff98ef4..cc82a5607e 100644
--- a/src/plugins/qmldesigner/designercore/filemanager/changeimportsvisitor.cpp
+++ b/src/plugins/qmldesigner/designercore/filemanager/changeimportsvisitor.cpp
@@ -85,10 +85,25 @@ bool ChangeImportsVisitor::remove(QmlJS::AST::UiProgram *ast, const Import &impo
bool ChangeImportsVisitor::equals(QmlJS::AST::UiImport *ast, const Import &import)
{
+ bool equal = false;
if (import.isLibraryImport())
- return toString(ast->importUri) == import.url();
+ equal = toString(ast->importUri) == import.url();
else if (import.isFileImport())
- return ast->fileName == import.file();
- else
- return false;
+ equal = ast->fileName == import.file();
+
+ if (equal) {
+ equal = (!ast->version || (ast->version->minorVersion == 0 && ast->version->majorVersion == 0))
+ && import.version().isEmpty();
+ if (!equal && ast->version) {
+ const QStringList versions = import.version().split('.');
+ if (versions.size() >= 1 && versions[0].toInt() == ast->version->majorVersion) {
+ if (versions.size() >= 2)
+ equal = versions[1].toInt() == ast->version->minorVersion;
+ else
+ equal = ast->version->minorVersion == 0;
+ }
+ }
+ }
+
+ return equal;
}