Updates the last scanned timestamp after successful scan.
authorMikko Keinänen <mikko.keinanen@gmail.com>
Fri, 19 Nov 2010 20:25:02 +0000 (22:25 +0200)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Fri, 19 Nov 2010 20:25:02 +0000 (22:25 +0200)
src/db/dbfilepath.cpp
src/db/dbfilepath.h
src/dialogs/dbobjectdialog.h
src/dialogs/mediaimagepathmaindialog.cpp

index 5396749..7c6aa69 100644 (file)
@@ -64,6 +64,17 @@ bool DbFilePath::updateDataObjectToModel(const EmuFrontObject *ob)
     return ret;
 }
 
+bool DbFilePath::setScanned(const EmuFrontObject *ob)
+{
+    QSqlQuery q;
+    q.prepare("UPDATE filepath SET lastscanned=:lastscanned WHERE id=:id");
+    q.bindValue(":lastscanned", getCurrentTimeStamp());
+    q.bindValue(":id", ob->getId());
+    bool ret = q.exec();
+    if (ret) resetModel();
+    return ret;
+}
+
 /* Returns id of inserted data item after succesful insert, -1 if insert failed */
 int DbFilePath::insertDataObjectToModel(const EmuFrontObject *ob)
 {
index 4d0f9d4..c1c745a 100644 (file)
@@ -31,6 +31,7 @@ public:
     virtual bool updateDataObjectToModel(const EmuFrontObject*);
     int insertDataObjectToModel(const EmuFrontObject*);
     bool deleteDataObjectFromModel(QModelIndex*);
+    bool setScanned(const EmuFrontObject *ob);
     enum { FilePath_Id = 0,
            FilePath_Name,
            FilePath_LastScanned,
index d06ccf7..a7ae1d6 100644 (file)
@@ -46,12 +46,12 @@ private slots:
        void listObjectClicked(const QModelIndex &);
     void updateData();
     void updateReject();
-    void updateList() const;
     void testSlot();
     void enableUi();
 
 protected:
     // implementation specific, deletes current data object from memory
+    void updateList() const;
     virtual void deleteCurrentObject() = 0;
     virtual void cleanUp() = 0;
     virtual void initEditDialog() = 0;
index ae4a3b1..42494e6 100644 (file)
@@ -92,9 +92,14 @@ void MediaImagePathMainDialog::beginScanFilePath()
         setUIEnabled(false);
         int count = fileUtil.scanFilePath(fpo, l, dbMediaImageContainer, progressDialog);
         progressDialog.hide();
+
         QMessageBox msgBox;
         msgBox.setText(tr("Scanned %1 files to database.").arg(count));
         msgBox.exec();
+        DbFilePath *dbfp = dynamic_cast<DbFilePath*>(dbManager);
+        if (!(dbfp && dbfp->setScanned(fpo)))
+            throw EmuFrontException(tr("Failed updating the last scanned time stamp for selected file path!"));
+        else updateList();
     }
     catch (EmuFrontException s)
     {