Details
-
Suggestion
-
Resolution: Done
-
P1: Critical
-
5.0.0
-
None
-
37cd29b2ff024f27f84ef6214ff5403603d522f2
Description
Currently QML only supports enums as signal and method parameters if they are declared in the same class as the signal or method. This is a limitation inherited from QMetaObject, that doesn't allow QML to determine if the parameter type is an enum, or just some other random type.
The ideal solution would be to extend Q_ENUMS() to support "registering" an enum from another class. For example:
class Foo : public QObject { Q_ENUMS(Bar::CustomEnum); slots: void myMethod(Bar::CustomEnum); };
in this case, all QML really needs is for the Bar::staticMetaObject to appear in the Foo::staticMetaObject's extra data list.