added basic models and controllers
This commit is contained in:
parent
269b48ed9d
commit
e401b71788
9 changed files with 222 additions and 2 deletions
70
LenaPi/models/NavigationItemModel.cpp
Normal file
70
LenaPi/models/NavigationItemModel.cpp
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
#include "NavigationItemModel.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
|
||||
NavigationItemModel::NavigationItemModel(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QString NavigationItemModel::getImageSource() const
|
||||
{
|
||||
return mImageSource;
|
||||
}
|
||||
|
||||
QString NavigationItemModel::getPath() const
|
||||
{
|
||||
return mPath;
|
||||
}
|
||||
|
||||
void NavigationItemModel::onClicked()
|
||||
{
|
||||
emit clicked();
|
||||
}
|
||||
|
||||
bool NavigationItemModel::setPath(const QString &path)
|
||||
{
|
||||
|
||||
//@todo check if image.jpg exist; use default image from qrc otherwise!
|
||||
|
||||
auto dir = QDir(path);
|
||||
if(!dir.exists()) return false;
|
||||
|
||||
mPath = path;
|
||||
|
||||
auto source = dir.filePath("file.jpg");
|
||||
if(QFile(source).exists())
|
||||
mImageSource = source;
|
||||
else
|
||||
mImageSource = "file:///home/ar/source/LenaPi/pics/benjamin.jpeg";
|
||||
|
||||
emit imageSourceChanged();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
NavigationItemModel *NavigationItemModel::getParentItem()
|
||||
{
|
||||
return mParentItem;
|
||||
}
|
||||
|
||||
QList<NavigationItemModel *> NavigationItemModel::getChildren()
|
||||
{
|
||||
return mChildren;
|
||||
}
|
||||
|
||||
void NavigationItemModel::appendChild(NavigationItemModel *item)
|
||||
{
|
||||
item->setParent(this);
|
||||
mChildren.append(item);
|
||||
}
|
||||
|
||||
void NavigationItemModel::clearChildren()
|
||||
{
|
||||
for(const auto& child : mChildren){
|
||||
child->deleteLater();
|
||||
}
|
||||
mChildren.clear();
|
||||
}
|
||||
|
||||
40
LenaPi/models/NavigationItemModel.h
Normal file
40
LenaPi/models/NavigationItemModel.h
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#ifndef NAVIGATIONITEMMODEL_H
|
||||
#define NAVIGATIONITEMMODEL_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class NavigationItemModel : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QString pImageSource READ getImageSource NOTIFY imageSourceChanged)
|
||||
|
||||
signals:
|
||||
void imageSourceChanged();
|
||||
void clicked();
|
||||
|
||||
public:
|
||||
NavigationItemModel(QObject *parent = Q_NULLPTR);
|
||||
|
||||
QString getImageSource() const;
|
||||
|
||||
QString getPath() const;
|
||||
bool setPath(const QString & path);
|
||||
|
||||
NavigationItemModel* getParentItem();
|
||||
QList<NavigationItemModel*> getChildren();
|
||||
|
||||
void appendChild(NavigationItemModel* item);
|
||||
void clearChildren();
|
||||
|
||||
Q_INVOKABLE void onClicked();
|
||||
|
||||
private:
|
||||
QString mPath = QString("");
|
||||
QString mImageSource;
|
||||
|
||||
QList<NavigationItemModel*> mChildren = QList<NavigationItemModel*>();
|
||||
NavigationItemModel* mParentItem = nullptr;
|
||||
};
|
||||
|
||||
#endif // NAVIGATIONITEMMODEL_H
|
||||
17
LenaPi/models/NavigationListModel.cpp
Normal file
17
LenaPi/models/NavigationListModel.cpp
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#include "NavigationListModel.h"
|
||||
|
||||
NavigationListModel::NavigationListModel(QObject* parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QList<QObject *> NavigationListModel::getModelItems()
|
||||
{
|
||||
return mItems;
|
||||
}
|
||||
|
||||
void NavigationListModel::setModelItems(QList<QObject *> list)
|
||||
{
|
||||
mItems = list;
|
||||
emit modelItemsChanged();
|
||||
}
|
||||
24
LenaPi/models/NavigationListModel.h
Normal file
24
LenaPi/models/NavigationListModel.h
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
#ifndef NAVIGATIONLISTMODEL_H
|
||||
#define NAVIGATIONLISTMODEL_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class NavigationListModel : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QList<QObject*> pModelItems READ getModelItems NOTIFY modelItemsChanged)
|
||||
|
||||
signals:
|
||||
void modelItemsChanged();
|
||||
|
||||
public:
|
||||
NavigationListModel(QObject* parent = Q_NULLPTR);
|
||||
|
||||
QList<QObject*> getModelItems();
|
||||
void setModelItems(QList<QObject*> list);
|
||||
|
||||
private:
|
||||
QList<QObject*> mItems;
|
||||
};
|
||||
|
||||
#endif // NAVIGATIONLISTMODEL_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue