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
*/
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;
{
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);
}
{
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 ");