core/proxywindow: improve QsWindowAttached robustness

Can now track window parent window changes.
Added tests.
This commit is contained in:
outfoxxed 2024-11-27 23:30:38 -08:00
parent 539692bc11
commit b6a79fe99c
Signed by untrusted user: outfoxxed
GPG key ID: 4C88A185FB89301E
7 changed files with 145 additions and 36 deletions

View file

@ -142,14 +142,20 @@ signals:
class QsWindowAttached: public QObject {
Q_OBJECT;
Q_PROPERTY(QObject* window READ window CONSTANT);
Q_PROPERTY(QQuickItem* contentItem READ contentItem CONSTANT);
Q_PROPERTY(QObject* window READ window NOTIFY windowChanged);
Q_PROPERTY(QQuickItem* contentItem READ contentItem NOTIFY windowChanged);
QML_ANONYMOUS;
public:
[[nodiscard]] virtual QObject* window() const = 0;
[[nodiscard]] virtual QQuickItem* contentItem() const = 0;
signals:
void windowChanged();
protected slots:
virtual void updateWindow() = 0;
protected:
explicit QsWindowAttached(QObject* parent): QObject(parent) {}
explicit QsWindowAttached(QQuickItem* parent);
};