Details
-
Type:
Suggestion
-
Status: Closed
-
Priority:
P1: Critical
-
Resolution: Done
-
Affects Version/s: 5.0.0
-
Fix Version/s: 5.0.0
-
Component/s: QML: Declarative and Javascript Engine
-
Labels:None
-
Commits: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.