Add icon re-ordering support by hold and move
[apps/homescreen.git] / homescreen / src / applicationmodel.cpp
index c43e1bc..417bc4c 100644 (file)
@@ -114,3 +114,31 @@ QHash<int, QByteArray> ApplicationModel::roleNames() const
     roles[Qt::UserRole] = "id";
     return roles;
 }
+
+QString ApplicationModel::id(int i) const
+{
+    return data(index(i), Qt::UserRole).toString();
+}
+
+void ApplicationModel::move(int from, int to)
+{
+    QModelIndex parent;
+    if (to < 0 || to > rowCount()) return;
+    if (from < to) {
+        if (!beginMoveRows(parent, from, from, parent, to + 1)) {
+            qDebug() << from << to << false;
+            return;
+        }
+        d->data.move(from, to);
+        endMoveRows();
+    } else if (from > to) {
+        if (!beginMoveRows(parent, from, from, parent, to)) {
+            qDebug() << from << to << false;
+            return;
+        }
+        d->data.move(from, to);
+        endMoveRows();
+    } else {
+        qDebug() << from << to << false;
+    }
+}