--- /dev/null
+#ifndef UILISTELEMENT_H
+#define UILISTELEMENT_H
+
+#include <QObject>
+#include <QString>
+#include <QAbstractListModel>
+#include <QStringList>
+#include <QDebug>
+
+class uiListElement : public QObject
+{
+ Q_OBJECT
+public:
+ Q_PROPERTY(QString name READ name WRITE setName);
+ Q_PROPERTY(QString file READ file WRITE setFile);
+ QString name() const { return m_name;} ; void setName(QString val) { m_name=val;};
+ QString modelData() const { return m_name;} ; void setModelData(QString val) { m_name=val;};
+ QString file() const { return m_file;} ; void setFile(QString val) { m_file=val;};
+
+ explicit uiListElement(QObject *parent = 0);
+ // explicit uiListElement(const uiListElement &ui);
+ explicit uiListElement(QString name,QString fileName,QObject *parent = 0);
+signals:
+
+public slots:
+
+private:
+QString m_name;
+QString m_file;
+
+};
+
+Q_DECLARE_METATYPE(uiListElement*)
+
+class uiListModel : public QAbstractListModel
+{
+ Q_OBJECT
+public:
+ enum uiRoles {
+ NameRole = Qt::UserRole + 1,
+ FileRole,
+ ModelDataRole
+ };
+
+ uiListModel(QObject *parent = 0);
+
+ void addUI(uiListElement *ui);
+
+ int rowCount(const QModelIndex & parent = QModelIndex()) const;
+ Q_INVOKABLE int count();
+ Q_INVOKABLE int roles() { return roleNames().size(); }
+
+ Q_INVOKABLE QObject * get(int index) const { return m_uiList[index];};
+ QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
+
+private:
+ QList<uiListElement*> m_uiList;
+};
+#endif // UILISTELEMENT_H