: DbQueryModelManager(parent)
{
dbMediaImage = new DbMediaImage(parent);
+ dbFile = new DbFile(parent);
}
bool DbMediaImageContainer::updateDataObjectToModel(const EmuFrontObject *efo)
return false;
}
-bool DbMediaImageContainer::insertDataObjectToModel(const EmuFrontObject *efo)
+int DbMediaImageContainer::insertDataObjectToModel(const EmuFrontObject *efo)
{
// TODO
- return false;
+ return -1;
}
bool DbMediaImageContainer::deleteDataObjectFromModel(QModelIndex *i)
return "";
}
+QString DbMediaImageContainer::constructFilterById(int id) const
+{
+ // TODO
+ return "";
+}
+
QString DbMediaImageContainer::constructSelectById(int id) const
{
// TODO
* Stores media image containers, including the media images included
* to database.
*/
-void DbMediaImageContainer::storeContainers(QList<MediaImageContainer *> lst)
+void DbMediaImageContainer::storeContainers(QList<MediaImageContainer *> lst, FilePathObject *fpo)
{
qDebug() << "Storing media image containers to database.";
foreach(MediaImageContainer *mic, lst)
if (ids.count() > 0)
{
- // store media image to db
-
- // get last insert id of stored media image
-
- // link all the media image ids in list to media image container id
+ try {
+ // mediaimagecontainer table: id, fileid, filepathid, updatetime
+
+ // insert the media image container file to file table
+ int micFileId = dbFile->insertDataObjectToModel(mic);
+ if (micFileId < 0) {
+ throw new EmuFrontException(QString(tr("Inserting media image container %1 to file database failed")).arg(mic->getName()));
+ }
+ int fpId = fpo->getId();
+ // store media image to db
+ int micId = insertDataObjectToModel(mic);
+ if (micId < 0){
+ // because the previous insert failed, the next is most likely going to fail, throw exception
+ throw new EmuFrontException(QString(tr("Failed inserting media image container '%1' to database!")).arg(mic->getName()));
+ }
+
+ // link all the media image ids in list to media image container id
+ linkMediaImagesWithContainer(micId, ids);
+ } catch (EmuFrontException e) {
+ // need to remove the media images without media image container in list 'ids'
+ dbMediaImage->removeOrphanedMediaImages(ids);
+ }
}
}
}
+
+void DbMediaImageContainer::linkMediaImagesWithContainer(int micId, QList<int> miIds)
+{
+ // TODO
+}