On Monday 9 September 2024 23:00:28 GMT-7 Eirik Aavitsland via Development 
wrote:
> No idea if this is helpful, but it seems that what was later renamed
> QFlag was introduced as QFlagInternal in this commit:

Thank you Aavit. Did already QFlags have the enum_type typedef in this commit?

What I find interesting is the code it generated for the getter prior to this 
change:

                     fprintf(out, "        case %d: *(%s*)_v = %s(); 
break;\n",
                             propindex,
-                           !isVariantType(p->type) ? "int" : (const 

isVariantType was still present in 4.x and was renamed to isBuiltinType prior 
to 5.0 and is still there. Enums are usually not built-in types[*], so this 
meant that it would always expect that the array contain a pointer to an 
integer. The question is why.

Another question: did QVariant in this commit already have userType()?

In Qt 3, QVariant could only contain a closed set of types, so QObject:: 
QObject::setProperty would only be able to write QFlags if the QVariant 
contained an int, and QMetaProperty already had isEnumType() at this time
  https://doc.qt.io/archives/3.3/qmetaproperty.html#isEnumType 
and moc looked for functions taking or returning integers:
  https://github.com/gnu-andrew/qt3/blob/master/src/moc/moc.y#L2566-L2586

[*] there is one built-in enum in QVariant/QMetaType today, QCborSimpleType. I 
do remember needing to do something extra to add this built-in type compared 
to the norm.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Principal Engineer - Intel DCAI Platform & System Engineering

Attachment: smime.p7s
Description: S/MIME cryptographic signature

-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to