From 85fb48bc51fed06a50b6178727fdf9e96aea4fc4 Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Sat, 13 Sep 2014 22:40:39 +0200 Subject: UI can now add some widgets around --- src/availablewidgetsmodel.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/availablewidgetsmodel.cpp (limited to 'src/availablewidgetsmodel.cpp') 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 + +#include "availablewidgetsmodel.h" + +AvailableWidgetsModel::AvailableWidgetsModel(QObject *parent) : + QAbstractListModel(parent) +{ + reload(); +} + +QHash AvailableWidgetsModel::roleNames() const +{ + QHash 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(_widgets[row].url()); + case DescriptionRole: + return QVariant::fromValue(_widgets[row].description()); + case SizeRole: + return QVariant::fromValue(_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(); +} -- cgit v1.2.3