summaryrefslogtreecommitdiffstats
path: root/archivemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r--archivemodel.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp
index 692629d..4f4c69e 100644
--- a/archivemodel.cpp
+++ b/archivemodel.cpp
@@ -857,6 +857,18 @@ void ArchiveFilesModel::populate(const QSet<int> &seriesPartIds){
if(data.at(FileType).toInt() == Movie){
SmTreeItem *newItem = new SmTreeItem(data, movies);
movies->appendChild(newItem);
+ if((data.at(DvdNo).toInt() < 0) && (data.at(SizeDur) == 0)){
+ QVariantMap m = Helper::ffmpegData(data.at(FullPath).toString());
+ QSqlQuery updDurQ = QSqlQuery(mDb);
+ updDurQ.prepare("UPDATE files SET iduration = :dur WHERE ifiles_id = :id");
+ // we have to cast this to int explicitly, otherwise Postgres will choke
+ int dur = m.value("duration").toDouble();
+ updDurQ.bindValue(":dur", dur);
+ updDurQ.bindValue(":id", data.at(FileId));
+ if(updDurQ.exec()){
+ data[SizeDur] = dur;
+ }
+ }
}else{
SmTreeItem *newItem = new SmTreeItem(data, pictures);
pictures->appendChild(newItem);