diff options
Diffstat (limited to 'archivecontroller.cpp')
-rw-r--r-- | archivecontroller.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/archivecontroller.cpp b/archivecontroller.cpp index 185b770..c0ecb0c 100644 --- a/archivecontroller.cpp +++ b/archivecontroller.cpp @@ -181,13 +181,23 @@ void ArchiveController::showPreview(){ if(sel.isEmpty()){ return; } - QModelIndex first = sel.first(); - QPixmap preview = Helper::preview(first.data().toString()); - if(!preview.isNull()){ - PictureViewer2 *pv = SmGlobals::instance()->pictureViewer(); - pv->setPixmap(preview); - pv->show(); + QString first = sel.first().data().toString(); + PictureViewer2 *pv = SmGlobals::instance()->pictureViewer(); + QFileInfo fi(first); + if(!fi.exists()){ + pv->setFile(); + }else if(sel.first().data(ArchiveFilesModel::FileTypeRole).toInt() == ArchiveFilesModel::Movie){ + QPixmap preview = Helper::preview(first); + if(!preview.isNull()){ + pv->setPixmap(preview); + pv->show(); + }else{ + pv->setFile(); + } + }else{ + pv->setFile(first); } + pv->show(); } void ArchiveController::addActionForTree(QAction *a){ |