- for (SConstIterator cit = qmldirscripts.constBegin();
- cit != qmldirscripts.constEnd(); ++cit) {
- if (cit->majorVersion == vmaj) {
- lowest_min = qMin(lowest_min, cit->minorVersion);
- highest_min = qMax(highest_min, cit->minorVersion);
+ SConstIterator send = qmldirscripts.constEnd();
+ for (SConstIterator sit = qmldirscripts.constBegin(); sit != send; ++sit) {
+ for (SConstIterator sit2 = qmldirscripts.constBegin(); sit2 != sit; ++sit2) {
+ if ((sit2->nameSpace == sit->nameSpace) &&
+ (sit2->majorVersion == sit->majorVersion) &&
+ (sit2->minorVersion == sit->minorVersion)) {
+ // This is entry clashes with a predecessor
+ QQmlError error;
+ error.setDescription(tr("\"%1\" version %2.%3 is already defined in module \"%4\"")
+ .arg(sit->nameSpace).arg(sit->majorVersion).arg(sit->minorVersion).arg(importedUri));
+ errors->prepend(error);
+ return false;
+ }
+ }
+
+ if (sit->majorVersion == vmaj) {
+ lowest_min = qMin(lowest_min, sit->minorVersion);
+ highest_min = qMax(highest_min, sit->minorVersion);