21#ifndef FG_GUI_METADATA_LIST_MODEL
22#define FG_GUI_METADATA_LIST_MODEL
24#include <QAbstractListModel>
30#include <simgear/package/Root.hxx>
31#include <simgear/package/Catalog.hxx>
43 using AddonsMap = QHash<QString, AddonsMeta>;
50 int rowCount(
const QModelIndex& parent)
const override;
52 QVariant
data(
const QModelIndex& index,
int role)
const override;
53 Q_INVOKABLE QVariant
get(
int index,
int role)
const;
54 Q_INVOKABLE QVariant
get(
int index, QString role)
const;
56 bool setData(
const QModelIndex &index,
const QVariant &value,
int role)
override;
58 Qt::ItemFlags
flags(
const QModelIndex &index)
const override;
60 QHash<int, QByteArray>
roleNames()
const override;
68 bool getPathEnable(
const QString& path) {
return m_addonsMap[path].enable; }
69 bool containsPath(
const QString& path) {
return m_addonsMap.contains(path); }
103 const QStringList m_roles = {
112 "license_designation",
124 QStringList m_addonsList;
125 AddonsMap m_addonsMap;
126 QHash<int, QByteArray> m_roleToName;
127 QHash<QString, int> m_nameToRole;
bool getPathEnable(const QString &path)
Q_INVOKABLE bool checkVersion(QString path) const
bool containsPath(const QString &path)
Q_INVOKABLE void enable(int index, bool enable)
bool append(QString path, flightgear::addons::AddonRef &addon, bool enable)
bool setData(const QModelIndex &index, const QVariant &value, int role) override
void resetData(const QStringList &ndata)
Qt::ItemFlags flags(const QModelIndex &index) const override
QHash< int, QByteArray > roleNames() const override
int rowCount(const QModelIndex &parent) const override
QVariant data(const QModelIndex &index, int role) const override
Q_INVOKABLE QVariant get(int index, int role) const
SGSharedPtr< Addon > AddonRef