Implemented removeRows for SetupModel.
authorMikko Keinänen <mikko.keinanen@gmail.com>
Wed, 8 Dec 2010 22:15:11 +0000 (00:15 +0200)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Wed, 8 Dec 2010 22:15:11 +0000 (00:15 +0200)
src/models/setupmodel.cpp

index 3f1c836..031d495 100644 (file)
@@ -174,5 +174,26 @@ bool SetupModel::insertRows(int row, int count, const QModelIndex &parent)
 
 bool SetupModel::removeRows(int row, int count, const QModelIndex &parent)
 {
+    if (parent.isValid()) {
+        return false; // This is a flat model
+    }
+    if (rowCount() < row + count - 1)
+        return false;
+
+    QSqlQuery q;
+    q.prepare(QString("DELETE FROM setup WHERE id=:id"));
+    QModelIndex primaryIndex;
+    int id = -1;
+    beginRemoveRows(QModelIndex(), row, row + count - 1);
+    for(int i = 0; i < count; ++i) {
+        primaryIndex = QSqlQueryModel::index(row + i, Setup_Id);
+        id = data(primaryIndex).toInt();
+        qDebug() << "Removing data item with id " << id;
+        q.bindValue(":id", id);
+        q.exec();
+    }
+    endRemoveRows();
+    refresh();
+    return true;
 }