summaryrefslogtreecommitdiffstats
path: root/archivecontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivecontroller.cpp')
-rw-r--r--archivecontroller.cpp22
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){