diff options
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r-- | archivemodel.cpp | 12 |
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); |