3 ** Copyright 2010 Mikko Keinänen
5 ** This file is part of EmuFront.
8 ** EmuFront is free software: you can redistribute it and/or modify
9 ** it under the terms of the GNU General Public License version 2 as published by
10 ** the Free Software Foundation and appearing in the file gpl.txt included in the
11 ** packaging of this file.
13 ** EmuFront is distributed in the hope that it will be useful,
14 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ** GNU General Public License for more details.
18 ** You should have received a copy of the GNU General Public License
19 ** along with EmuFront. If not, see <http://www.gnu.org/licenses/>.
22 #include "mediaimage.h"
23 #include "mediaimagemodel.h"
26 MediaImageModel::MediaImageModel(QObject *parent) :
31 /* Fetches a list of media images inside a media image container
33 QMap<QString, EmuFrontObject*> MediaImageModel::getMediaImages(int micId)
35 QMap<QString, EmuFrontObject*> list;
37 q.prepare("SELECT file.id, file.name, file.size, file.checksum "
38 "FROM file INNER JOIN mediaimagecontainer_mediaimage "
39 "ON mediaimagecontainer_mediaimage.mediaimageid = file.id "
40 "WHERE mediaimagecontainer_mediaimage.mediaimagecontainerid = :micid ");
41 q.bindValue(":micid", micId);
45 QString name, checksum;
50 id = rec.value(MediaImageModel::File_Id).toInt();
51 name = rec.value(MediaImageModel::File_Name).toString();
52 checksum = rec.value(MediaImageModel::File_CheckSum).toString();
53 size = rec.value(MediaImageModel::File_FileSize).toInt();
54 list[checksum] = new MediaImage(id, name, checksum, size);
59 /* Stores a list of media images to the database.
60 Returns a list of media image id corresponding to the given list of media
61 images inserted to the database or already in the database.
63 QList<int> MediaImageModel::storeMediaImages(QMap<QString, EmuFrontObject*> images)
65 QList<int> ids = QList<int>();
66 QMapIterator<QString, EmuFrontObject*> it(images);
71 mi = dynamic_cast<MediaImage*>(it.value());
72 int id = insertDataObject(mi);
74 // TODO: Build an error message of failed inserts
75 qDebug() << "Failed inserting media image" << mi->getName();
85 void MediaImageModel::removeOrphanedMediaImages(QList<int> ids)
88 // go through the list of media image ids,
89 // if the media image with curr id doesn't have a container, delete it