2024-02-04 12:58:58 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <qcontainerfwd.h>
|
|
|
|
#include <qobject.h>
|
|
|
|
#include <qqmlintegration.h>
|
|
|
|
#include <qqmllist.h>
|
|
|
|
#include <qtmetamacros.h>
|
|
|
|
#include <qtypes.h>
|
|
|
|
|
|
|
|
#include "qmlscreen.hpp"
|
|
|
|
|
2024-02-12 10:16:22 +00:00
|
|
|
class QuickShellGlobal: public QObject {
|
2024-02-04 12:58:58 +00:00
|
|
|
Q_OBJECT;
|
2024-02-12 10:16:22 +00:00
|
|
|
Q_PROPERTY(QQmlListProperty<QuickShellScreenInfo> screens READ screens NOTIFY screensChanged);
|
2024-02-04 12:58:58 +00:00
|
|
|
QML_SINGLETON;
|
2024-02-12 10:16:22 +00:00
|
|
|
QML_NAMED_ELEMENT(QuickShell);
|
2024-02-04 12:58:58 +00:00
|
|
|
|
|
|
|
public:
|
2024-02-12 10:16:22 +00:00
|
|
|
QuickShellGlobal(QObject* parent = nullptr);
|
2024-02-04 12:58:58 +00:00
|
|
|
|
2024-02-12 10:16:22 +00:00
|
|
|
QQmlListProperty<QuickShellScreenInfo> screens();
|
2024-02-04 12:58:58 +00:00
|
|
|
|
|
|
|
signals:
|
|
|
|
void screensChanged();
|
|
|
|
|
|
|
|
public slots:
|
2024-02-04 13:17:18 +00:00
|
|
|
void reload(bool hard);
|
2024-02-04 12:58:58 +00:00
|
|
|
void updateScreens();
|
|
|
|
|
|
|
|
private:
|
2024-02-12 10:16:22 +00:00
|
|
|
static qsizetype screensCount(QQmlListProperty<QuickShellScreenInfo>* prop);
|
|
|
|
static QuickShellScreenInfo* screenAt(QQmlListProperty<QuickShellScreenInfo>* prop, qsizetype i);
|
2024-02-04 12:58:58 +00:00
|
|
|
|
2024-02-12 10:16:22 +00:00
|
|
|
QVector<QuickShellScreenInfo*> mScreens;
|
2024-02-04 12:58:58 +00:00
|
|
|
};
|