#pragma once #include #include #include #include #include #include #include "qmlscreen.hpp" class QuickShellGlobal: public QObject { Q_OBJECT; Q_PROPERTY(QQmlListProperty screens READ screens NOTIFY screensChanged); QML_SINGLETON; QML_NAMED_ELEMENT(QuickShell); public: QuickShellGlobal(QObject* parent = nullptr); QQmlListProperty screens(); signals: void screensChanged(); public slots: void reload(bool hard); void updateScreens(); private: static qsizetype screensCount(QQmlListProperty* prop); static QuickShellScreenInfo* screenAt(QQmlListProperty* prop, qsizetype i); QVector mScreens; };