summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archivecontroller.cpp22
-rw-r--r--pictureviewer2.cpp6
-rw-r--r--pictureviewer2.h4
3 files changed, 22 insertions, 10 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){
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index e457865..f4592c1 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -39,7 +39,9 @@
#include "newpicsdialog.h"
#include "helper.h"
-PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mDefaultFile(":/picgone.png"), mFnItem(0), mMappingItem(0) {
+const QString PictureViewer2::mDefaultFile = ":/picgone.png";
+
+PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mFnItem(0), mMappingItem(0) {
//behave like QDialog, but don't be one...
setWindowFlags(QFlags<Qt::WindowType>(0x1|0x2|0x1000|0x2000|0x10000|0x8000000));
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -123,7 +125,7 @@ void PictureViewer2::setFile(const PicData &file){
showFile(mFiles.at(mCurPos));
}
-void PictureViewer2::setFile(const QString &fullPath){
+void PictureViewer2::setFile(QString fullPath){
PicData pd = picData(fullPath);
setFile(pd);
}
diff --git a/pictureviewer2.h b/pictureviewer2.h
index fbda34d..c6b7322 100644
--- a/pictureviewer2.h
+++ b/pictureviewer2.h
@@ -39,7 +39,7 @@ class PictureViewer2 : public QGraphicsView {
void addFiles(const PicDataList &files, bool clear = true);
void addFiles(const QString &dir, bool clear = true);
void setFile(const PicData &file);
- void setFile(const QString &fullPath);
+ void setFile(QString fullPath = mDefaultFile);
void setPixmap(const QPixmap &pm);
PicData picData(const QString &fullPath);
virtual QSize sizeHint() const;
@@ -82,7 +82,7 @@ class PictureViewer2 : public QGraphicsView {
int mConfigInfoPos;
int mConfigMapPos;
QTimer *mSlideTimer;
- const QString mDefaultFile;
+ const static QString mDefaultFile;
PictureViewer2Item *mFnItem;
PictureViewer2Item *mMappingItem;
bool mUseGradient;