From 54410d36bf3961a1e9ad8ed60fcfcc057f73fc77 Mon Sep 17 00:00:00 2001 From: milonekrone Date: Wed, 14 Jan 2026 16:06:54 +0100 Subject: [PATCH] Add src/xmbmodel.h --- src/xmbmodel.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/xmbmodel.h diff --git a/src/xmbmodel.h b/src/xmbmodel.h new file mode 100644 index 0000000..d5a4d7a --- /dev/null +++ b/src/xmbmodel.h @@ -0,0 +1,31 @@ +#pragma once +#include +#include +#include "xmbconfig.h" + +class XmbModel : public QObject { + Q_OBJECT + Q_PROPERTY(QVariantList categories READ categories NOTIFY categoriesChanged) + Q_PROPERTY(int categoryCount READ categoryCount NOTIFY categoriesChanged) + +public: + explicit XmbModel(QObject* parent=nullptr); + + Q_INVOKABLE QVariantList itemsForCategory(int idx) const; + Q_INVOKABLE QString assetUrl(const QString& rel) const; + Q_INVOKABLE QString bootQml() const; + + QVariantList categories() const { return m_categories; } + int categoryCount() const { return m_categories.size(); } + + Q_INVOKABLE void reload(); + +signals: + void categoriesChanged(); + +private: + void build(); + + XmbConfig m_cfg; + QVariantList m_categories; // each: { title, icon, items: [entryMaps...] } +};