Modified the license text comment type.
[emufront] / src / models / setupmodel.cpp
index 3f1c836..e590ee3 100644 (file)
@@ -1,22 +1,23 @@
-// EmuFront
-// Copyright 2010 Mikko Keinänen
-//
-// This file is part of EmuFront.
-//
-//
-// EmuFront is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as published by
-// the Free Software Foundation and appearing in the file gpl.txt included in the
-// packaging of this file.
-//
-// EmuFront is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with EmuFront.  If not, see <http://www.gnu.org/licenses/>.
-
+/*
+** EmuFront
+** Copyright 2010 Mikko Keinänen
+**
+** This file is part of EmuFront.
+**
+**
+** EmuFront is free software: you can redistribute it and/or modify
+** it under the terms of the GNU General Public License version 2 as published by
+** the Free Software Foundation and appearing in the file gpl.txt included in the
+** packaging of this file.
+**
+** EmuFront is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with EmuFront.  If not, see <http://www.gnu.org/licenses/>.
+*/
 #include "setupmodel.h"
 #include "emufrontexception.h"
 #include <QtSql>
@@ -142,16 +143,16 @@ bool SetupModel::insertRows(int row, int count, const QModelIndex &parent)
     QSqlQuery q;
     q.exec(QString("SELECT id FROM platform ORDER BY name LIMIT 1"));
     if (q.first()){
-        qDebug() << "Got id " << plfId << " for default platform.";
         plfId = q.value(0).toInt();
+        qDebug() << "Got id " << plfId << " for default platform.";
     }
     else {
         throw EmuFrontException(tr("No platforms yet available for setup configuration!"));
     }
     q.exec(QString("SELECT id FROM mediatype ORDER BY name LIMIT 1"));
     if (q.first()) {
-        qDebug() << "Got id " << mdtId << " for default media type.";
         mdtId = q.value(0).toInt();
+        qDebug() << "Got id " << mdtId << " for default media type.";
     }
     else {
         throw EmuFrontException(tr("No media types yet available for setup configuration!"));
@@ -174,5 +175,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;
 }