diff --git a/lib/thumbnailgroup.h b/lib/thumbnailgroup.h --- a/lib/thumbnailgroup.h +++ b/lib/thumbnailgroup.h @@ -34,24 +34,32 @@ { enum Enum { Normal, - Large + Large, + Large2x }; -inline int pixelSize(Enum value) +inline int pixelSize(const Enum value) { - if (value == Normal) { + switch(value) { + case Normal: return 128; - } else { + case Large: return 256; + case Large2x: + return 512; + default: + return 128; } } inline Enum fromPixelSize(int value) { if (value <= 128) { return Normal; - } else { + } else if (value <= 256) { return Large; + } else { + return Large2x; } } } // namespace ThumbnailGroup diff --git a/lib/thumbnailprovider/thumbnailgenerator.cpp b/lib/thumbnailprovider/thumbnailgenerator.cpp --- a/lib/thumbnailprovider/thumbnailgenerator.cpp +++ b/lib/thumbnailprovider/thumbnailgenerator.cpp @@ -277,7 +277,7 @@ mImage = context.mImage; mOriginalWidth = context.mOriginalWidth; mOriginalHeight = context.mOriginalHeight; - if (context.mNeedCaching) { + if (context.mNeedCaching && mThumbnailGroup <= ThumbnailGroup::Large) { cacheThumbnail(); } } else { diff --git a/lib/thumbnailprovider/thumbnailprovider.cpp b/lib/thumbnailprovider/thumbnailprovider.cpp --- a/lib/thumbnailprovider/thumbnailprovider.cpp +++ b/lib/thumbnailprovider/thumbnailprovider.cpp @@ -111,6 +111,9 @@ case ThumbnailGroup::Large: dir += QStringLiteral("large/"); break; + case ThumbnailGroup::Large2x: + default: + dir += "x-gwenview/"; // Should never be hit, but just in case } return dir; } @@ -386,6 +389,10 @@ QImage ThumbnailProvider::loadThumbnailFromCache() const { + if (mThumbnailGroup > ThumbnailGroup::Large) { + return QImage(); + } + QImage image = sThumbnailWriter->value(mThumbnailPath); if (!image.isNull()) { return image; diff --git a/lib/thumbnailview/thumbnailview.h b/lib/thumbnailview/thumbnailview.h --- a/lib/thumbnailview/thumbnailview.h +++ b/lib/thumbnailview/thumbnailview.h @@ -48,7 +48,7 @@ public: enum { MinThumbnailSize = 48, - MaxThumbnailSize = 256 + MaxThumbnailSize = 512 }; enum ThumbnailScaleMode { diff --git a/lib/thumbnailview/thumbnailview.cpp b/lib/thumbnailview/thumbnailview.cpp --- a/lib/thumbnailview/thumbnailview.cpp +++ b/lib/thumbnailview/thumbnailview.cpp @@ -550,7 +550,7 @@ Thumbnail& thumbnail = it.value(); thumbnail.mGroupPix = pixmap; thumbnail.mAdjustedPix = QPixmap(); - int largeGroupSize = ThumbnailGroup::pixelSize(ThumbnailGroup::Large); + int largeGroupSize = ThumbnailGroup::pixelSize(ThumbnailGroup::Large2x); thumbnail.mFullSize = size.isValid() ? size : QSize(largeGroupSize, largeGroupSize); thumbnail.mRealFullSize = size; thumbnail.mWaitingForThumbnail = false;