qmljs: improve handling of default values for AnyLanguage

Change-Id: I97ae24c386a6316b32b8213ab5fc5cb5c6800c65
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
This commit is contained in:
Fawzi Mohamed
2014-07-01 19:58:23 +02:00
parent def9695e42
commit 52cb3d5a7a

View File

@@ -1285,8 +1285,11 @@ ViewerContext ModelManagerInterface::completeVContext(const ViewerContext &vCtx,
{ {
ViewerContext res = vCtx; ViewerContext res = vCtx;
if (vCtx.language == Language::Qml && !doc.isNull() && if (!doc.isNull()
(doc->language() == Language::QmlQtQuick1 || doc->language() == Language::QmlQtQuick2)) && ((vCtx.language == Language::AnyLanguage && doc->language() != Language::NoLanguage)
|| (vCtx.language == Language::Qml
&& (doc->language() == Language::QmlQtQuick1
|| doc->language() == Language::QmlQtQuick2))))
res.language = doc->language(); res.language = doc->language();
ProjectInfo info; ProjectInfo info;
if (!doc.isNull()) if (!doc.isNull())
@@ -1364,7 +1367,7 @@ ViewerContext ModelManagerInterface::defaultVContext(Language::Enum language,
bool autoComplete) const bool autoComplete) const
{ {
if (!doc.isNull()) { if (!doc.isNull()) {
if (language == Language::AnyLanguage) if (language == Language::AnyLanguage && doc->language() != Language::NoLanguage)
language = doc->language(); language = doc->language();
else if (language == Language::Qml && else if (language == Language::Qml &&
(doc->language() == Language::QmlQtQuick1 || doc->language() == Language::QmlQtQuick2)) (doc->language() == Language::QmlQtQuick1 || doc->language() == Language::QmlQtQuick2))
@@ -1375,6 +1378,7 @@ ViewerContext ModelManagerInterface::defaultVContext(Language::Enum language,
QMutexLocker locker(&m_mutex); QMutexLocker locker(&m_mutex);
defaultCtx = m_defaultVContexts.value(language); defaultCtx = m_defaultVContexts.value(language);
} }
defaultCtx.language = language;
if (autoComplete) if (autoComplete)
return completeVContext(defaultCtx, doc); return completeVContext(defaultCtx, doc);
else else