When a filepath is rescanned all the previous entries of
authorMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 23 Oct 2010 00:14:41 +0000 (03:14 +0300)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 23 Oct 2010 00:14:41 +0000 (03:14 +0300)
this file path will be removed first.

src/db/dbmediaimagecontainer.cpp
src/db/dbmediaimagecontainer.h
src/dialogs/mediaimagepathmaindialog.cpp
src/utils/fileutil.cpp

index 735d46d..0f0cb20 100644 (file)
@@ -300,3 +300,12 @@ bool DbMediaImageContainer::linkMediaImageToMediaImageContainer(const MediaImage
     q.bindValue(":miid", mi->getId());
     return q.exec();
 }
+
+bool DbMediaImageContainer::removeFromFilePath(int filePathId) const
+{
+    QSqlQuery q;
+    q.prepare("DELETE FROM mediaimagecontainer_filepath "
+        "WHERE filepathid=:filepathid");
+    q.bindValue(":filepathid", filePathId);
+    return q.exec();
+}
index 4fb21bf..2e4242d 100644 (file)
@@ -40,6 +40,7 @@ public:
     void storeContainers(QList<MediaImageContainer*>, FilePathObject*);
     int getMediaImageContainer(QString checksum) const;
     void filter(int mediaTypeId, int platformId);
+    bool removeFromFilePath(int filePathId) const;
    enum {
         MIC_FileId = 0,
         MIC_FileName,
@@ -65,9 +66,7 @@ private:
     int storeMediaImageContainer(EmuFrontObject *efo);
     void linkMediaImagesWithContainer(int, QList<EmuFrontObject*>);
     bool linkMediaImageContainerToPath(const MediaImageContainer*) const;
-    bool updateMediaImageContainerToPath(const MediaImageContainer *) const;
     bool linkMediaImageToMediaImageContainer(const MediaImage*, int micId) const;
-    bool updateMediaImageToMediaImageContainer(const MediaImage*, int micId) const;
     QString getMediaImageContainerName(int filePathId, int micId) const;
     DbMediaImage *dbMediaImage;
     DbFilePath *dbFilePath;
index 749ebfb..4317f41 100644 (file)
@@ -68,6 +68,8 @@ void MediaImagePathMainDialog::beginScanFilePath()
         QStringList l;
         l << "*.zip"; // TODO set filters in a global constant class
 
+
+        dbMediaImageContainer->removeFromFilePath(fpo->getId());
         int count = fileUtil.scanFilePath(fpo, l, dbMediaImageContainer);
         qDebug() << "Storing scanned " << count << " files to database";
         delete fpo;
index b5d96fb..f62c6a0 100644 (file)
@@ -60,8 +60,6 @@ int FileUtil::scanFilePath(FilePathObject *fp, QStringList filters, DbMediaImage
             .arg(fp->getSetup()->getName()));
     }
 
-    // TODO: if this is a rescan of this filepath remove all the old entries first!
-
     int count = 0;
     qDebug() << QString("We have a platform %1, media type %2")
         .arg(fp->getSetup()->getPlatform()->getName())