6#include <PhosphorShell/phosphorshell_export.h>
20class QFileSystemWatcher;
50 bool load(
const QUrl& shellUrl);
51 [[nodiscard]] QQmlEngine*
engine()
const;
71 void onScreensChanged();
78 [[nodiscard]]
bool buildAndMaterialize();
79 void materializePanels();
83 void savePersistentState();
84 void restorePersistentState();
87 std::unique_ptr<QQmlEngine> m_engine;
88 std::unique_ptr<QObject> m_rootObject;
94 QPointer<QObject> m_rootRef;
96 std::vector<std::unique_ptr<PhosphorLayer::Surface>> m_surfaces;
97 QFileSystemWatcher* m_watcher =
nullptr;
98 QTimer* m_reloadTimer =
nullptr;
101 QHash<QString, QVariantMap> m_persistentState;
102 std::vector<EngineHook> m_engineHooks;
Source-of-truth interface for the available QScreen set.
Definition IScreenProvider.h:62
Stateless constructor for Surfaces.
Definition SurfaceFactory.h:35
One layer-shell surface with a managed lifecycle.
Definition Surface.h:99
Definition PanelWindow.h:19
Definition ScreenModel.h:25
Definition ShellEngine.h:38
void addEngineHook(EngineHook hook)
std::function< void(QQmlEngine *)> EngineHook
Register a callback that fires whenever a fresh QQmlEngine is created — at startup AND on hot-reload ...
Definition ShellEngine.h:61
bool load(const QUrl &shellUrl)
QQmlEngine * engine() const
void failed(const QString &reason)
ShellEngine(Deps deps, QObject *parent=nullptr)
Definition ShellGlobal.h:30
Definition SurfaceAnimator.h:26
Definition Environment.h:11
constexpr const char * Surface
Definition LayerSurface.h:21
Definition ShellEngine.h:42