qmltc: Add READ before WRITE in generated Q_PROPERTYs
We currently have two orderings for the READ and WRITE elements of the macro depending on whether we compile a property or an alias. Make them uniform by having READ before WRITE in both cases. Change-Id: I1dd308c921b8948347029c603bc3bca2be87abda Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
parent
86e4eecb6a
commit
405fb70437
|
@ -19,7 +19,7 @@ class HelloWorld : public QObject
|
|||
{
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
Q_PROPERTY(QString hello WRITE setHello READ hello BINDABLE bindableHello)
|
||||
Q_PROPERTY(QString hello READ hello WRITE setHello BINDABLE bindableHello)
|
||||
|
||||
public:
|
||||
HelloWorld(QQmlEngine* engine, QObject* parent = nullptr, [[maybe_unused]] qxp::function_ref<void(PropertyInitializer&)> initializer = [](PropertyInitializer&){});
|
||||
|
@ -28,8 +28,8 @@ Q_SIGNALS:
|
|||
void created();
|
||||
|
||||
public:
|
||||
void setHello(const QString& hello_);
|
||||
QString hello();
|
||||
void setHello(const QString& hello_);
|
||||
QBindable<QString> bindableHello();
|
||||
Q_INVOKABLE void printHello(passByConstRefOrValue<QString> prefix, passByConstRefOrValue<QString> suffix);
|
||||
|
||||
|
|
|
@ -887,6 +887,14 @@ void QmltcCompiler::compileProperty(QmltcType ¤t, const QQmlJSMetaProperty
|
|||
// 1. add setter and getter
|
||||
// If p.isList(), it's a QQmlListProperty. Then you can write the underlying list through
|
||||
// the QQmlListProperty object retrieved with the getter. Setting it would make no sense.
|
||||
QmltcMethod getter{};
|
||||
getter.returnType = underlyingType;
|
||||
getter.name = compilationData.read;
|
||||
getter.body << u"return " + variableName + u".value();";
|
||||
getter.userVisible = true;
|
||||
current.functions.emplaceBack(getter);
|
||||
mocPieces << u"READ"_s << getter.name;
|
||||
|
||||
if (p.isWritable() && !qIsReferenceTypeList(p)) {
|
||||
QmltcMethod setter {};
|
||||
setter.returnType = u"void"_s;
|
||||
|
@ -901,14 +909,6 @@ void QmltcCompiler::compileProperty(QmltcType ¤t, const QQmlJSMetaProperty
|
|||
mocPieces << u"WRITE"_s << setter.name;
|
||||
}
|
||||
|
||||
QmltcMethod getter {};
|
||||
getter.returnType = underlyingType;
|
||||
getter.name = compilationData.read;
|
||||
getter.body << u"return " + variableName + u".value();";
|
||||
getter.userVisible = true;
|
||||
current.functions.emplaceBack(getter);
|
||||
mocPieces << u"READ"_s << getter.name;
|
||||
|
||||
// 2. add bindable
|
||||
if (!qIsReferenceTypeList(p)) {
|
||||
QmltcMethod bindable {};
|
||||
|
|
Loading…
Reference in New Issue