QmlJS: Fix palette support

Fixes false positive warnings of having no members
and allows to auto-complete its members.

Fixes: QTCREATORBUG-23659
Change-Id: I4da43b9d3f005f9c6cc759ec424bf67062beff78
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
Christian Stenger
2020-04-22 16:06:07 +02:00
parent 63db0f271f
commit 20b095c6b4
3 changed files with 31 additions and 0 deletions

View File

@@ -395,6 +395,8 @@ const Value *CppComponentValue::valueForCppName(const QString &typeName) const
return valueOwner()->realValue(); return valueOwner()->realValue();
} else if (typeName == QLatin1String("QFont")) { } else if (typeName == QLatin1String("QFont")) {
return valueOwner()->qmlFontObject(); return valueOwner()->qmlFontObject();
} else if (typeName == QLatin1String("QPalette")) {
return valueOwner()->qmlPaletteObject();
} else if (typeName == QLatin1String("QPoint") } else if (typeName == QLatin1String("QPoint")
|| typeName == QLatin1String("QPointF") || typeName == QLatin1String("QPointF")
|| typeName == QLatin1String("QVector2D")) { || typeName == QLatin1String("QVector2D")) {

View File

@@ -95,6 +95,7 @@ public:
ObjectValue *_mathObject; ObjectValue *_mathObject;
ObjectValue *_qtObject; ObjectValue *_qtObject;
ObjectValue *_qmlFontObject; ObjectValue *_qmlFontObject;
ObjectValue *_qmlPaletteObject;
ObjectValue *_qmlPointObject; ObjectValue *_qmlPointObject;
ObjectValue *_qmlSizeObject; ObjectValue *_qmlSizeObject;
ObjectValue *_qmlRectObject; ObjectValue *_qmlRectObject;
@@ -496,6 +497,28 @@ SharedValueOwner::SharedValueOwner(SharedValueOwnerKind kind)
_qmlFontObject->setMember(QLatin1String("kerning"), booleanValue()); _qmlFontObject->setMember(QLatin1String("kerning"), booleanValue());
_qmlFontObject->setMember(QLatin1String("preferShaping"), booleanValue()); _qmlFontObject->setMember(QLatin1String("preferShaping"), booleanValue());
_qmlPaletteObject = newObject(/* prototype = */ nullptr);
_qmlPaletteObject->setClassName(QLatin1String("palette"));
_qmlPaletteObject->setMember(QLatin1String("alternateBase"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("base"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("brightText"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("button"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("buttonText"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("dark"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("highlight"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("highlightedText"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("light"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("link"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("linkVisited"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("mid"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("midlight"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("shadow"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("text"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("toolTipBase"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("toolTipText"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("window"), colorValue());
_qmlPaletteObject->setMember(QLatin1String("windowText"), colorValue());
_qmlPointObject = newObject(/*prototype =*/ nullptr); _qmlPointObject = newObject(/*prototype =*/ nullptr);
_qmlPointObject->setClassName(QLatin1String("Point")); _qmlPointObject->setClassName(QLatin1String("Point"));
_qmlPointObject->setMember(QLatin1String("x"), numberValue()); _qmlPointObject->setMember(QLatin1String("x"), numberValue());
@@ -896,6 +919,11 @@ const ObjectValue *ValueOwner::qmlFontObject()
return _shared->_qmlFontObject; return _shared->_qmlFontObject;
} }
const ObjectValue *ValueOwner::qmlPaletteObject()
{
return _shared->_qmlPaletteObject;
}
const ObjectValue *ValueOwner::qmlPointObject() const ObjectValue *ValueOwner::qmlPointObject()
{ {
return _shared->_qmlPointObject; return _shared->_qmlPointObject;

View File

@@ -82,6 +82,7 @@ public:
// QML objects // QML objects
const ObjectValue *qmlFontObject(); const ObjectValue *qmlFontObject();
const ObjectValue *qmlPaletteObject();
const ObjectValue *qmlPointObject(); const ObjectValue *qmlPointObject();
const ObjectValue *qmlSizeObject(); const ObjectValue *qmlSizeObject();
const ObjectValue *qmlRectObject(); const ObjectValue *qmlRectObject();