From f7f1d7c4427cba2c8490f2767259b1d06f66c7ed Mon Sep 17 00:00:00 2001 From: Kate Alhola Date: Wed, 11 Apr 2012 15:11:39 +0300 Subject: [PATCH] sync --- mardrone/uilistelement.cpp | 57 ++++++++++++++++++++++++++++++++++++++++++ mardrone/uilistelement.h | 59 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 mardrone/uilistelement.cpp create mode 100644 mardrone/uilistelement.h diff --git a/mardrone/uilistelement.cpp b/mardrone/uilistelement.cpp new file mode 100644 index 0000000..7611cd3 --- /dev/null +++ b/mardrone/uilistelement.cpp @@ -0,0 +1,57 @@ +#include "uilistelement.h" + +uiListElement::uiListElement(QString name,QString file,QObject *parent): QObject(parent) +{ + m_name=name; + m_file=file; +} +/* +uiListElement::uiListElement(const uiListElement &ui) +{ + m_name=ui.m_name; + m_file=ui.m_file; +} +*/ +uiListElement::uiListElement(QObject *parent): QObject(parent) +{ +} + +uiListModel::uiListModel(QObject *parent) + : QAbstractListModel(parent) + { + QHash roles; + roles[NameRole] = "name"; + roles[FileRole] = "file"; + roles[ModelDataRole] = "modelData"; + setRoleNames(roles); + } + + void uiListModel::addUI(uiListElement *ui) + { + beginInsertRows(QModelIndex(), rowCount(), rowCount()); + m_uiList.append(ui); + endInsertRows(); + } + + int uiListModel::rowCount(const QModelIndex & parent) const { + return m_uiList.count(); + } + int uiListModel::count() +{ + qDebug() <<"Count:" << m_uiList.count(); + return m_uiList.count(); + } + + QVariant uiListModel::data(const QModelIndex & index, int role) const { + if (index.row() < 0 || index.row() > m_uiList.count()) + return QVariant(); + + const uiListElement *ui = m_uiList[index.row()]; + if (role == NameRole) + return ui->name(); + else if (role == FileRole) + return ui->file(); + else if (role == ModelDataRole) + return ui->modelData(); + return QVariant(); + } diff --git a/mardrone/uilistelement.h b/mardrone/uilistelement.h new file mode 100644 index 0000000..1887d5c --- /dev/null +++ b/mardrone/uilistelement.h @@ -0,0 +1,59 @@ +#ifndef UILISTELEMENT_H +#define UILISTELEMENT_H + +#include +#include +#include +#include +#include + +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 m_uiList; +}; +#endif // UILISTELEMENT_H -- 1.7.9.5