UIname added
[mardrone] / mardrone / uilistelement.h
1 #ifndef UILISTELEMENT_H
2 #define UILISTELEMENT_H
3
4 #include <QObject>
5 #include <QString>
6 #include <QAbstractListModel>
7 #include <QStringList>
8 #include <QDebug>
9
10 class uiListElement : public QObject
11 {
12      Q_OBJECT
13 public:
14         Q_PROPERTY(QString name READ name WRITE setName);
15         Q_PROPERTY(QString file READ file WRITE setFile);
16         QString name() const {  return m_name;} ; void setName(QString val) { m_name=val;};
17         QString modelData() const {  return m_name;} ; void setModelData(QString val) { m_name=val;};
18         QString file() const {  return m_file;} ; void setFile(QString val) { m_file=val;};
19
20         explicit uiListElement(QObject *parent = 0);
21  //       explicit uiListElement(const uiListElement &ui);
22         explicit uiListElement(QString name,QString fileName,QObject *parent = 0);
23 signals:
24     
25 public slots:
26
27 private:
28 QString m_name;
29 QString m_file;
30     
31 };
32
33 Q_DECLARE_METATYPE(uiListElement*)
34
35 class uiListModel : public QAbstractListModel
36 {
37     Q_OBJECT
38 public:
39     enum uiRoles {
40         NameRole = Qt::UserRole + 1,
41         FileRole,
42         ModelDataRole
43     };
44
45     uiListModel(QObject *parent = 0);
46
47     void addUI(uiListElement *ui);
48
49     int rowCount(const QModelIndex & parent = QModelIndex()) const;
50     Q_INVOKABLE int count();
51     Q_INVOKABLE int roles() { return roleNames().size(); }
52
53     Q_INVOKABLE QObject * get(int index) const { return  m_uiList[index];};
54     QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
55
56 private:
57     QList<uiListElement*> m_uiList;
58 };
59 #endif // UILISTELEMENT_H