summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/private/preview.php25
1 files changed, 24 insertions, 1 deletions
diff --git a/lib/private/preview.php b/lib/private/preview.php
index e445f5356a4..dabb274323f 100644
--- a/lib/private/preview.php
+++ b/lib/private/preview.php
@@ -479,7 +479,7 @@ class Preview {
$preview = $this->buildCachePath($fileId, $previewWidth, $previewHeight);
// This checks if we have a preview of those exact dimensions in the cache
- if ($this->userView->file_exists($preview)) {
+ if ($this->thumbnailSizeExists($allThumbnails, $previewWidth, $previewHeight)) {
return $preview;
}
@@ -525,6 +525,29 @@ class Preview {
}
/**
+ * Check if a specific thumbnail size is cached
+ *
+ * @param FileInfo[] $allThumbnails the list of all our cached thumbnails
+ * @param int $width
+ * @param int $height
+ * @return bool
+ */
+ private function thumbnailSizeExists($allThumbnails, $width, $height) {
+
+ foreach ($allThumbnails as $thumbnail) {
+ $name = $thumbnail['name'];
+ if (strpos($name, 'max')) {
+ list($cachedWidth, $cachedHeight) = $this->getDimensionsFromFilename($name);
+ if ($cachedWidth === $width && $cachedHeight === $height) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /**
* Determines the size of the preview we should be looking for in the cache
*
* @return int[]