Fixed two cases of memory loss (parenting was missing).
[emufront] / src / db / dbmediaimage.cpp
index 376d578..75734d9 100644 (file)
@@ -31,59 +31,6 @@ DbMediaImage::DbMediaImage(QObject *parent)
     tableName = DbMediaImage::DB_TABLE_NAME_FILE;
 }
 
-/*bool DbMediaImage::updateDataObjectToModel(const EmuFrontObject *efo)
-{
-    // TODO
-    return false;
-}
-
-bool DbMediaImage::insertDataObjectToModel(const EmuFrontObject *efo)
-{
-    // TODO
-    return false;
-}
-
-bool DbMediaImage::deleteDataObjectFromModel(QModelIndex *i)
-{
-    // TODO
-    return false;
-}
-
-int DbMediaImage::countDataObjectRefs(int id) const
-{
-    // TODO
-    return -1;
-}
-
-QString DbMediaImage::constructSelect(QString whereClause) const
-{
-    // TODO
-    return "";
-}
-
-QString DbMediaImage::constructSelectById(int id) const
-{
-    // TODO
-    return "";
-}
-
-EmuFrontObject* DbMediaImage::recordToDataObject(const QSqlRecord *)
-{
-    // TODO
-    return 0;
-}*/
-
-/*QSqlQueryModel* DbMediaImage::getData()
-{
-    QSqlTableModel *model = new QSqlTableModel;
-    model->setTable(DB_TABLE_NAME_FILE);
-    return model;
-}*/
-
-/*int DbMediaImage::insertMediaImage(const MediaImage *mi)
-{
-    return DbFile::insertDataObjectToModel(mi);
-}*/
 
 /* Stores a list of media images to the database.
    Returns a list of media image id corresponding to the given list of media
@@ -91,7 +38,6 @@ EmuFrontObject* DbMediaImage::recordToDataObject(const QSqlRecord *)
 */
 QList<int> DbMediaImage::storeMediaImages(QMap<QString, EmuFrontObject*> images)
 {
-    qDebug() << "Storing media images to database.";
     QList<int> ids  = QList<int>();
     QMapIterator<QString, EmuFrontObject*> it(images);
     MediaImage *mi = 0;
@@ -99,29 +45,12 @@ QList<int> DbMediaImage::storeMediaImages(QMap<QString, EmuFrontObject*> images)
     {
         it.next();
         mi = dynamic_cast<MediaImage*>(it.value());
-        QString cksum = mi->getCheckSum();
-        qDebug() << "Storing media image " << mi->getName()
-            << " with checksum " << cksum;
-        EmuFrontObject *o = getFileByChecksum(cksum);
-        int id = o ? o->getId() : -1;
-        if (id >= 0)
-        {
-            qDebug() << "This media image already exists with id " << id;
-            // this media image is already in the database
-            // TODO: what if the name differs? (cannot update to database, since the same media image
-            // might be inside another container
-        }
-        else if (id < 0)
-        {
-            qDebug() << "This media image is not yet in the db.";
-            id = insertDataObjectToModel(mi);
-            if (id < 0)
-            {
-                // TODO: Build an error message of failed inserts
-                qDebug() << "Failed inserting media image" << mi->getName();
-            }
+        int id = insertDataObjectToModel(mi);
+        if (id < 0) {
+            // TODO: Build an error message of failed inserts
+            qDebug() << "Failed inserting media image" << mi->getName();
         }
-        if (id > 0) {
+        else if (id >= 0) {
             ids.append(id);
             mi->setId(id);
         }
@@ -142,7 +71,7 @@ QMap<QString, EmuFrontObject*> DbMediaImage::getMediaImages(int micId) const
 {
     QMap<QString, EmuFrontObject*> list;
     QSqlQuery  q;
-    q.prepare("SELECT file.id, file.name, file.checksum, file.size "
+    q.prepare("SELECT file.id, file.name, file.size, file.checksum "
         "FROM file INNER JOIN mediaimagecontainer_mediaimage "
         "ON mediaimagecontainer_mediaimage.mediaimageid = file.id "
         "WHERE mediaimagecontainer_mediaimage.mediaimagecontainerid = :micid ");