forked from quickshell/quickshell
core/window: move implicit width/height to bindable properties
This commit is contained in:
parent
cb195d4b2a
commit
5ae8e4901a
2 changed files with 27 additions and 16 deletions
|
@ -300,12 +300,9 @@ qint32 ProxyWindowBase::y() const {
|
|||
else return this->window->y();
|
||||
}
|
||||
|
||||
qint32 ProxyWindowBase::implicitWidth() const { return this->mImplicitWidth; }
|
||||
|
||||
void ProxyWindowBase::setImplicitWidth(qint32 implicitWidth) {
|
||||
if (implicitWidth == this->mImplicitWidth) return;
|
||||
this->mImplicitWidth = implicitWidth;
|
||||
emit this->implicitWidthChanged();
|
||||
if (implicitWidth == this->bImplicitWidth) return;
|
||||
this->bImplicitWidth = implicitWidth;
|
||||
|
||||
if (this->window) this->trySetWidth(implicitWidth);
|
||||
else emit this->widthChanged();
|
||||
|
@ -313,12 +310,9 @@ void ProxyWindowBase::setImplicitWidth(qint32 implicitWidth) {
|
|||
|
||||
void ProxyWindowBase::trySetWidth(qint32 implicitWidth) { this->window->setWidth(implicitWidth); }
|
||||
|
||||
qint32 ProxyWindowBase::implicitHeight() const { return this->mImplicitHeight; }
|
||||
|
||||
void ProxyWindowBase::setImplicitHeight(qint32 implicitHeight) {
|
||||
if (implicitHeight == this->mImplicitHeight) return;
|
||||
this->mImplicitHeight = implicitHeight;
|
||||
emit this->implicitHeightChanged();
|
||||
if (implicitHeight == this->bImplicitHeight) return;
|
||||
this->bImplicitHeight = implicitHeight;
|
||||
|
||||
if (this->window) this->trySetHeight(implicitHeight);
|
||||
else emit this->heightChanged();
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include <qevent.h>
|
||||
#include <qnamespace.h>
|
||||
#include <qobject.h>
|
||||
#include <qproperty.h>
|
||||
#include <qqmllist.h>
|
||||
#include <qqmlparserstatus.h>
|
||||
#include <qquickitem.h>
|
||||
|
@ -42,8 +43,8 @@ class ProxyWindowBase: public Reloadable {
|
|||
Q_PROPERTY(QQuickWindow* _backingWindow READ backingWindow);
|
||||
Q_PROPERTY(QQuickItem* contentItem READ contentItem CONSTANT);
|
||||
Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged);
|
||||
Q_PROPERTY(qint32 implicitWidth READ implicitWidth WRITE setImplicitWidth NOTIFY implicitWidthChanged);
|
||||
Q_PROPERTY(qint32 implicitHeight READ implicitHeight WRITE setImplicitHeight NOTIFY implicitHeightChanged);
|
||||
Q_PROPERTY(qint32 implicitWidth READ implicitWidth WRITE setImplicitWidth NOTIFY implicitWidthChanged BINDABLE bindableImplicitWidth);
|
||||
Q_PROPERTY(qint32 implicitHeight READ implicitHeight WRITE setImplicitHeight NOTIFY implicitHeightChanged BINDABLE bindableImplicitHeight);
|
||||
Q_PROPERTY(qint32 width READ width WRITE setWidth NOTIFY widthChanged);
|
||||
Q_PROPERTY(qint32 height READ height WRITE setHeight NOTIFY heightChanged);
|
||||
Q_PROPERTY(qreal devicePixelRatio READ devicePixelRatio NOTIFY devicePixelRatioChanged);
|
||||
|
@ -94,11 +95,13 @@ public:
|
|||
[[nodiscard]] virtual qint32 x() const;
|
||||
[[nodiscard]] virtual qint32 y() const;
|
||||
|
||||
[[nodiscard]] qint32 implicitWidth() const;
|
||||
[[nodiscard]] qint32 implicitWidth() const { return this->bImplicitWidth; }
|
||||
void setImplicitWidth(qint32 implicitWidth);
|
||||
QBindable<qint32> bindableImplicitWidth() { return &this->bImplicitWidth; }
|
||||
|
||||
[[nodiscard]] qint32 implicitHeight() const;
|
||||
[[nodiscard]] qint32 implicitHeight() const { return this->bImplicitHeight; }
|
||||
void setImplicitHeight(qint32 implicitHeight);
|
||||
QBindable<qint32> bindableImplicitHeight() { return &this->bImplicitHeight; }
|
||||
|
||||
[[nodiscard]] virtual qint32 width() const;
|
||||
void setWidth(qint32 width);
|
||||
|
@ -158,8 +161,6 @@ protected slots:
|
|||
|
||||
protected:
|
||||
bool mVisible = true;
|
||||
qint32 mImplicitWidth = 100;
|
||||
qint32 mImplicitHeight = 100;
|
||||
QScreen* mScreen = nullptr;
|
||||
QColor mColor = Qt::white;
|
||||
PendingRegion* mMask = nullptr;
|
||||
|
@ -174,6 +175,22 @@ protected:
|
|||
bool inputMask : 1 = false;
|
||||
} pendingPolish;
|
||||
|
||||
Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(
|
||||
ProxyWindowBase,
|
||||
qint32,
|
||||
bImplicitWidth,
|
||||
100,
|
||||
&ProxyWindowBase::implicitWidthChanged
|
||||
);
|
||||
|
||||
Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(
|
||||
ProxyWindowBase,
|
||||
qint32,
|
||||
bImplicitHeight,
|
||||
100,
|
||||
&ProxyWindowBase::implicitHeightChanged
|
||||
);
|
||||
|
||||
private:
|
||||
void polishItems();
|
||||
void updateMask();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue