diff options
author | Javier S. Pedro <dev.git@javispedro.com> | 2014-09-13 22:40:39 +0200 |
---|---|---|
committer | Javier S. Pedro <dev.git@javispedro.com> | 2014-09-13 22:40:39 +0200 |
commit | 85fb48bc51fed06a50b6178727fdf9e96aea4fc4 (patch) | |
tree | e5aa942addaf99bb29c73f5e946cf250ca8b80f8 /src/availablewidgetsmodel.cpp | |
parent | ed40a7f1cbc1da5ae21c58882df241fc0071c2f7 (diff) | |
download | salmeta-85fb48bc51fed06a50b6178727fdf9e96aea4fc4.tar.gz salmeta-85fb48bc51fed06a50b6178727fdf9e96aea4fc4.zip |
UI can now add some widgets around
Diffstat (limited to 'src/availablewidgetsmodel.cpp')
-rw-r--r-- | src/availablewidgetsmodel.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/availablewidgetsmodel.cpp b/src/availablewidgetsmodel.cpp new file mode 100644 index 0000000..02ca746 --- /dev/null +++ b/src/availablewidgetsmodel.cpp @@ -0,0 +1,65 @@ +#include <sailfishapp.h> + +#include "availablewidgetsmodel.h" + +AvailableWidgetsModel::AvailableWidgetsModel(QObject *parent) : + QAbstractListModel(parent) +{ + reload(); +} + +QHash<int, QByteArray> AvailableWidgetsModel::roleNames() const +{ + QHash<int, QByteArray> roles; + + roles[UrlRole] = "url"; + roles[SizeRole] = "size"; + + return roles; +} + +int AvailableWidgetsModel::rowCount(const QModelIndex &parent) const +{ + if (parent.isValid()) return 0; + return _widgets.size(); +} + +QVariant AvailableWidgetsModel::data(const QModelIndex &index, int role) const +{ + if (!index.isValid()) return QVariant(); + const int row = index.row(); + if (row < 0 || row >= _widgets.size()) return QVariant(); + + switch (role) { + case UrlRole: + return QVariant::fromValue<QUrl>(_widgets[row].url()); + case DescriptionRole: + return QVariant::fromValue<QString>(_widgets[row].description()); + case SizeRole: + return QVariant::fromValue<int>(_widgets[row].size()); + default: + qWarning() << "Unknown role:" << role; + return QVariant(); + } +} + +void AvailableWidgetsModel::reload() +{ + beginResetModel(); + _widgets.clear(); + + // Load builtin widgets + WidgetInfo info; + + info.setUrl(SailfishApp::pathTo("qml/watch/faces/builtinface4.qml")); + info.setDescription("Watchface #4"); + info.setSize(WidgetInfo::Size4Q); + _widgets.append(info); + + info.setUrl(SailfishApp::pathTo("qml/watch/faces/builtinface4.qml")); + info.setDescription("Watchface #4"); + info.setSize(WidgetInfo::Size4Q); + _widgets.append(info); + + endResetModel(); +} |