diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-07-10 07:00:04 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-07-10 07:00:04 (GMT) |
commit | 89052de56c660baccaeae3ed83615a1dbd0494f5 (patch) | |
tree | a6718a096bedc6b9c86e1c780b7b6f3d89ef9c85 /src/declarative/qml/qdeclarativeimport.cpp | |
parent | 4cf3730c65b28f3e895a1a4c8f7db509e11c71c0 (diff) | |
parent | 6f6c25b61f6d83e86e93c5f82e2d699619d00d5e (diff) | |
download | Qt-89052de56c660baccaeae3ed83615a1dbd0494f5.zip Qt-89052de56c660baccaeae3ed83615a1dbd0494f5.tar.gz Qt-89052de56c660baccaeae3ed83615a1dbd0494f5.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (65 commits)
Fix QTextDocument::markContentsDirty()
Replace 4.6 in all .qdocconf files
Resetting bindings through debugger interface
Fix crash with invalid role indexes
Make test pass and fix docs following removal of SpringFollow
Remove autotests of depracted element SmoothedFollow
doc improvements
Clean up at the end of each test.
Improve test reliability.
Fix crash
Follow -> Behavior
Added some documentation to spring animation
Fix spring animation
Update QtDeclarative def files
Fix exponential behavior of QTextCursor::removeSelectedText
Optimization: change signal/slot to function call
Don't show warning for attempts to load pixmaps asynchronously
Remove Image::pixmap property. QML applications should use
Update QmlChanges.txt
Don't double delete cancelled pixmap cache requests
...
Diffstat (limited to 'src/declarative/qml/qdeclarativeimport.cpp')
-rw-r--r-- | src/declarative/qml/qdeclarativeimport.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp index a2e3831..8d81b34 100644 --- a/src/declarative/qml/qdeclarativeimport.cpp +++ b/src/declarative/qml/qdeclarativeimport.cpp @@ -409,7 +409,8 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp QString localFileOrQrc = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl); if (!localFileOrQrc.isEmpty()) { QString dir = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(base.resolved(QUrl(uri))); - if (dir.isEmpty() || !QDir().exists(dir)) { + QFileInfo dirinfo(dir); + if (dir.isEmpty() || !dirinfo.exists() || !dirinfo.isDir()) { if (errorString) *errorString = QDeclarativeImportDatabase::tr("\"%1\": no such directory").arg(uri_arg); return false; // local import dirs must exist @@ -425,7 +426,8 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp if (prefix.isEmpty()) { // directory must at least exist for valid import QString localFileOrQrc = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(base.resolved(QUrl(uri))); - if (localFileOrQrc.isEmpty() || !QDir().exists(localFileOrQrc)) { + QFileInfo dirinfo(localFileOrQrc); + if (localFileOrQrc.isEmpty() || !dirinfo.exists() || !dirinfo.isDir()) { if (errorString) { if (localFileOrQrc.isEmpty()) *errorString = QDeclarativeImportDatabase::tr("import \"%1\" has no qmldir and no namespace").arg(uri); @@ -445,11 +447,23 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp if (vmaj > -1 && vmin > -1 && !qmldircomponents.isEmpty()) { QList<QDeclarativeDirParser::Component>::ConstIterator it = qmldircomponents.begin(); + int lowest_maj = INT_MAX; + int lowest_min = INT_MAX; + int highest_maj = INT_MIN; + int highest_min = INT_MIN; for (; it != qmldircomponents.end(); ++it) { - if (it->majorVersion > vmaj || (it->majorVersion == vmaj && it->minorVersion >= vmin)) - break; + if (it->majorVersion > highest_maj || (it->majorVersion == highest_maj && it->minorVersion > highest_min)) { + highest_maj = it->majorVersion; + highest_min = it->minorVersion; + } + if (it->majorVersion < lowest_maj || (it->majorVersion == lowest_maj && it->minorVersion < lowest_min)) { + lowest_maj = it->majorVersion; + lowest_min = it->minorVersion; + } } - if (it == qmldircomponents.end()) { + if (lowest_maj > vmaj || (lowest_maj == vmaj && lowest_min > vmin) + || highest_maj < vmaj || (highest_maj == vmaj && highest_min < vmin)) + { *errorString = QDeclarativeImportDatabase::tr("module \"%1\" version %2.%3 is not installed").arg(uri_arg).arg(vmaj).arg(vmin); return false; } |