diff options
author | Arno <am@disconnect.de> | 2013-08-16 16:17:21 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-08-16 16:17:21 +0200 |
commit | d94c6526eb4e27a873fa811d72e99d42b85a81c4 (patch) | |
tree | 32bfceed18848e3236cfb4acb7244bcdddfb09e3 | |
parent | 7b374095aaec92e0fb7044550903aa8e10522677 (diff) | |
download | SheMov-d94c6526eb4e27a873fa811d72e99d42b85a81c4.tar.gz SheMov-d94c6526eb4e27a873fa811d72e99d42b85a81c4.tar.bz2 SheMov-d94c6526eb4e27a873fa811d72e99d42b85a81c4.zip |
Fix preview
* Show :/picgone.png if movie is not available
* Show cover if preview is called on a picture
-rw-r--r-- | archivecontroller.cpp | 22 | ||||
-rw-r--r-- | pictureviewer2.cpp | 6 | ||||
-rw-r--r-- | pictureviewer2.h | 4 |
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; |