summaryrefslogtreecommitdiffstats
path: root/archivemodel.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2014-04-18 11:20:55 +0200
committerArno <am@disconnect.de>2014-04-18 11:20:55 +0200
commite47bd732941d9f3469400292c3f05be71ba30c76 (patch)
tree7edd9637e714dcd5708c3e900f8e8427a13b1b11 /archivemodel.cpp
parentb0d671fede5adfadad2b465fb4c8ae50b40516f3 (diff)
downloadSheMov-e47bd732941d9f3469400292c3f05be71ba30c76.tar.gz
SheMov-e47bd732941d9f3469400292c3f05be71ba30c76.tar.bz2
SheMov-e47bd732941d9f3469400292c3f05be71ba30c76.zip
Change "Add Covers..." to "Add files..."
Generalize the slot. Make it possible to add movies, too.
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r--archivemodel.cpp55
1 files changed, 31 insertions, 24 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp
index 578ff5c..11ee6e5 100644
--- a/archivemodel.cpp
+++ b/archivemodel.cpp
@@ -495,34 +495,41 @@ bool ArchiveModel::setFavorite(int partId, bool favorite){
return false;
}
-void ArchiveModel::addCovers(int partId, const QStringList covers){
- QSqlQuery coverQ(mDb);
- coverQ.prepare("INSERT INTO files(iseriespart_id, tfilename, cmd5sum, bisize, sifiletype, cpicsize) VALUES(:id, :fn, :md5, :size, :type, :picsize)");
- foreach(QString c, covers){
- QFileInfo fi(c);
- if(!fi.exists()){
- continue;
- }
+void ArchiveModel::addFiles(int partId, const QStringList files){
+ foreach(QString file, files){
+ QFileInfo fi(file);
qint64 size = fi.size();
- QString md5sum = Helper::md5Sum(c);
- QVariant picSize = Helper::picSize(c);
- int type = FT_GENERALCOVER;
- QString archivedFile = Helper::moveToArchive(c, md5sum, true);
- if(archivedFile.isEmpty()){
- //copy failed
+ QString md5sum = Helper::md5Sum(file);
+ QVariant durationOrSize;
+ int fileType = FT_GENERALCOVER;
+ QString mimeType = Helper::mimeType(file);
+ QSqlQuery fileQ(mDb);
+ if(mimeType.startsWith("video")){
+ QVariantMap ffmpegMap = Helper::ffmpegData(file);
+ durationOrSize = ffmpegMap.value("duration");
+ fileType = FT_MOVIE;
+ fileQ.prepare("INSERT INTO files(iseriespart_id, tfilename, cmd5sum, bisize, sifiletype, iduration) VALUES(:id, :fn, :md5, :size, :type, :durOrSize)");
+ }else if(mimeType.startsWith("image")){
+ durationOrSize = Helper::picSize(file);
+ fileQ.prepare("INSERT INTO files(iseriespart_id, tfilename, cmd5sum, bisize, sifiletype, cpicsize) VALUES(:id, :fn, :md5, :size, :type, :durOrSize)");
+ }else{
+ QString msg = QString("Unknown mime type %1 for %2").arg(mimeType).arg(file);
+ emit message(msg);
continue;
}
- QFileInfo afi(archivedFile);
- coverQ.bindValue(":id", partId);
- coverQ.bindValue(":fn", afi.fileName());
- coverQ.bindValue(":md5", md5sum);
- coverQ.bindValue(":size", size);
- coverQ.bindValue(":type", type);
- coverQ.bindValue(":picsize", picSize);
- if(coverQ.exec()){
- QFile::remove(c);
+ fileQ.bindValue(":id", partId);
+ fileQ.bindValue(":fn", fi.fileName());
+ fileQ.bindValue(":md5", md5sum);
+ fileQ.bindValue(":size", size);
+ fileQ.bindValue(":type", fileType);
+ if(fileType == FT_MOVIE){
+ fileQ.bindValue(":durOrSize", durationOrSize.toInt());
}else{
- QFile::remove(archivedFile);
+ fileQ.bindValue(":durOrSize", durationOrSize.toString());
+ }
+ QString moveTo = Helper::moveToArchive(file, md5sum);
+ if(!moveTo.isEmpty()){
+ fileQ.exec();
}
}
}