55#include < qevent.h>
66#include < qnamespace.h>
77#include < qobject.h>
8+ #include < qproperty.h>
89#include < qqmllist.h>
910#include < qqmlparserstatus.h>
1011#include < qquickitem.h>
@@ -42,8 +43,8 @@ class ProxyWindowBase: public Reloadable {
4243 Q_PROPERTY (QQuickWindow* _backingWindow READ backingWindow);
4344 Q_PROPERTY (QQuickItem* contentItem READ contentItem CONSTANT);
4445 Q_PROPERTY (bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged);
45- Q_PROPERTY (qint32 implicitWidth READ implicitWidth WRITE setImplicitWidth NOTIFY implicitWidthChanged);
46- Q_PROPERTY (qint32 implicitHeight READ implicitHeight WRITE setImplicitHeight NOTIFY implicitHeightChanged);
46+ Q_PROPERTY (qint32 implicitWidth READ implicitWidth WRITE setImplicitWidth NOTIFY implicitWidthChanged BINDABLE bindableImplicitWidth );
47+ Q_PROPERTY (qint32 implicitHeight READ implicitHeight WRITE setImplicitHeight NOTIFY implicitHeightChanged BINDABLE bindableImplicitHeight );
4748 Q_PROPERTY (qint32 width READ width WRITE setWidth NOTIFY widthChanged);
4849 Q_PROPERTY (qint32 height READ height WRITE setHeight NOTIFY heightChanged);
4950 Q_PROPERTY (qreal devicePixelRatio READ devicePixelRatio NOTIFY devicePixelRatioChanged);
@@ -94,11 +95,13 @@ class ProxyWindowBase: public Reloadable {
9495 [[nodiscard]] virtual qint32 x () const ;
9596 [[nodiscard]] virtual qint32 y () const ;
9697
97- [[nodiscard]] qint32 implicitWidth () const ;
98+ [[nodiscard]] qint32 implicitWidth () const { return this -> bImplicitWidth ; }
9899 void setImplicitWidth (qint32 implicitWidth);
100+ QBindable<qint32> bindableImplicitWidth () { return &this ->bImplicitWidth ; }
99101
100- [[nodiscard]] qint32 implicitHeight () const ;
102+ [[nodiscard]] qint32 implicitHeight () const { return this -> bImplicitHeight ; }
101103 void setImplicitHeight (qint32 implicitHeight);
104+ QBindable<qint32> bindableImplicitHeight () { return &this ->bImplicitHeight ; }
102105
103106 [[nodiscard]] virtual qint32 width () const ;
104107 void setWidth (qint32 width);
@@ -158,8 +161,6 @@ protected slots:
158161
159162protected:
160163 bool mVisible = true ;
161- qint32 mImplicitWidth = 100 ;
162- qint32 mImplicitHeight = 100 ;
163164 QScreen* mScreen = nullptr ;
164165 QColor mColor = Qt::white;
165166 PendingRegion* mMask = nullptr ;
@@ -174,6 +175,22 @@ protected slots:
174175 bool inputMask : 1 = false ;
175176 } pendingPolish;
176177
178+ Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS (
179+ ProxyWindowBase,
180+ qint32,
181+ bImplicitWidth,
182+ 100 ,
183+ &ProxyWindowBase::implicitWidthChanged
184+ );
185+
186+ Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS (
187+ ProxyWindowBase,
188+ qint32,
189+ bImplicitHeight,
190+ 100 ,
191+ &ProxyWindowBase::implicitHeightChanged
192+ );
193+
177194private:
178195 void polishItems ();
179196 void updateMask ();
0 commit comments