diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index 19837bee51f621441240017508eea2bc410a1cfb..5a20a85c73d9c5c0ab7e0ded0dea395ff07c74fa 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -277,6 +277,12 @@ void RewriterView::importAdded(const Import &import) if (textToModelMerger()->isActive()) return; + if (import.url() == "Qt") + foreach (const Import &import, model()->imports()) { + if (import.url() == "QtQuick") + return; //QtQuick magic we do not have to add an import for Qt + } + modelToTextMerger()->addImport(import); if (!isModificationGroupActive()) diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index 5b6765228958226f21de3d7ed9202a6d7e0fffcc..a92cf8312f64da7ac5d31d18eb43617d3437a2d0 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -77,7 +77,27 @@ static inline QString deEscape(const QString &value) return result; } + +static inline int fixUpMajorVersionForQtQuick(const QString &value, int i) +{ + if (i = 1 && value == "QtQuick") + return 4; + else return i; +} + +static inline int fixUpMinorVersionForQtQuick(const QString &value, int i) +{ + if (i = 0 && value == "QtQuick") + return 7; + else return i; +} +static inline QString fixUpPackeNameForQtQuick(const QString &value) +{ + if (value == "QtQuick") + return "Qt"; + return value; +} static inline bool isSignalPropertyName(const QString &signalName) { @@ -232,9 +252,11 @@ public: const Interpreter::QmlObjectValue * qmlValue = dynamic_cast<const Interpreter::QmlObjectValue *>(value); if (qmlValue) { - typeName = qmlValue->packageName() + QLatin1String("/") + qmlValue->className(); - majorVersion = qmlValue->version().major(); - minorVersion = qmlValue->version().minor(); + typeName = fixUpPackeNameForQtQuick(qmlValue->packageName()) + QLatin1String("/") + qmlValue->className(); + + //### todo this is just a hack to support QtQuick 1.0 + majorVersion = fixUpMajorVersionForQtQuick(qmlValue->packageName(), qmlValue->version().major()); + minorVersion = fixUpMinorVersionForQtQuick(qmlValue->packageName(), qmlValue->version().minor()); } else { for (UiQualifiedId *iter = astTypeNode; iter; iter = iter->next) if (!iter->next && iter->name) @@ -590,17 +612,6 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH setupImports(doc, differenceHandler); - foreach (const Import &import, m_rewriterView->model()->imports()) { - if (import.url() == "QtQuick") { - QList<RewriterView::Error> errors; - RewriterView::Error error(QCoreApplication::translate("QmlDesigner::TextToModelMerger", - "Unsupported import:\nimport QtQuick 1.0 use import Qt 4.7 instead")); - errors.append(error); - m_rewriterView->setErrors(errors); - return false; - } - } - UiObjectMember *astRootNode = 0; if (UiProgram *program = doc->qmlProgram()) if (program->members)