I would love to see that too!!! Just remember about qFuzzy* for real values :)
śr., 5 gru 2018, 17:46: Jason H <[email protected]> napisał(a): > I've been doing a lot of Q_PROPERTY stuff again, and I waste too much time > writing boiler plate code. Last time, I was reminded of the MEMBER > modifier, which is what I thought I wanted. But after having worked with it > some more, it's not what I want. > > Given: > Q_PROPERTY (qreal scale READ scale WRITE setScale NOTIFY scaleChanged) // > What I end up writing > Q_PROPERTY (qreal scale MEMBER _scale NOTIFY) // What I want to write > > I want the member form to also declare/implement: > public: > qreal scale() { return _scale; } > void setScale(qreal scale) { if (scale != scale) { _scale = scale; emit > scaleChanged(scale); } } > signal: > void scaleChanged(qreal scale); > > Where T=type, N=name M=member > public: > T N() { return M; } > void setN(T N) { if (M != N) { M = N; emit NChanged(N); } } > signal: > void NChanged(T N); > > I'm trying to think of how to do this, and this seems doable: > > class X { > > ... > INCLUDE_AUTOMOC_DECLARATIONS > }; > > Where > INCLUDE_AUTOMOC_DECLARATIONS expands to: > #include "filename_X_automoc.h" > > Where MOC has written the declarations. Similarly, there can be one for > implementations as well. > > Ideally though, all I should need to write: > Q_PROPERTY (qreal scale NOTIFY) > > Epanding to: > private: > T _N; > public: > T N() { return _N; } > void setN(T N) { if (_N != N) { M = N; emit NChanged(N); } } > signal: > void NChanged(T N); > > I know this might sound trivial but if I'm making 5 classes each with 10 > properties, that's 1500 lines of boilerplate code that I'm writing (with > code style applied). > > Is there any way to get closer to my ideal? > _______________________________________________ > Interest mailing list > [email protected] > https://lists.qt-project.org/listinfo/interest >
_______________________________________________ Interest mailing list [email protected] https://lists.qt-project.org/listinfo/interest
