aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/previewmanager.php
diff options
context:
space:
mode:
authorOlivier Paroz <github@oparoz.com>2015-04-02 10:31:24 +0200
committerOlivier Paroz <github@oparoz.com>2015-04-02 10:31:24 +0200
commit8ec6dfdbf8e68966b1110b8e7b16019518e20bdf (patch)
treebd3eef6befa5a3fd943c758cbe2d9c647ca7c9f1 /lib/private/previewmanager.php
parent691c353eeda077be0fcca1e3839265815a650a90 (diff)
downloadnextcloud-server-8ec6dfdbf8e68966b1110b8e7b16019518e20bdf.tar.gz
nextcloud-server-8ec6dfdbf8e68966b1110b8e7b16019518e20bdf.zip
Split image provider in one sub-class per media type
Diffstat (limited to 'lib/private/previewmanager.php')
-rw-r--r--lib/private/previewmanager.php30
1 files changed, 25 insertions, 5 deletions
diff --git a/lib/private/previewmanager.php b/lib/private/previewmanager.php
index c4d29261f24..78ae12cd2e5 100644
--- a/lib/private/previewmanager.php
+++ b/lib/private/previewmanager.php
@@ -188,7 +188,11 @@ class PreviewManager implements IPreview {
* List of enabled default providers
*
* The following providers are enabled by default:
- * - OC\Preview\Image
+ * - OC\Preview\PNG
+ * - OC\Preview\JPEG
+ * - OC\Preview\GIF
+ * - OC\Preview\BMP
+ * - OC\Preview\XBitmap
* - OC\Preview\MarkDown
* - OC\Preview\MP3
* - OC\Preview\TXT
@@ -215,12 +219,24 @@ class PreviewManager implements IPreview {
return $this->defaultProviders;
}
- $this->defaultProviders = $this->config->getSystemValue('enabledPreviewProviders', [
- 'OC\Preview\Image',
+ $imageProviders = [
+ 'OC\Preview\PNG',
+ 'OC\Preview\JPEG',
+ 'OC\Preview\GIF',
+ 'OC\Preview\BMP',
+ 'OC\Preview\XBitmap'
+ ];
+
+ $this->defaultProviders = $this->config->getSystemValue('enabledPreviewProviders', array_merge([
'OC\Preview\MarkDown',
'OC\Preview\MP3',
'OC\Preview\TXT',
- ]);
+ ], $imageProviders));
+
+ if (in_array('OC\Preview\Image', $this->defaultProviders)) {
+ $this->defaultProviders = array_merge($this->defaultProviders, $imageProviders);
+ }
+ $this->defaultProviders = array_unique($this->defaultProviders);
return $this->defaultProviders;
}
@@ -249,7 +265,11 @@ class PreviewManager implements IPreview {
$this->registerCoreProvider('OC\Preview\TXT', '/text\/plain/');
$this->registerCoreProvider('OC\Preview\MarkDown', '/text\/(x-)?markdown/');
- $this->registerCoreProvider('OC\Preview\Image', '/image\/(?!tiff$)(?!svg.*).*/');
+ $this->registerCoreProvider('OC\Preview\PNG', '/image\/png/');
+ $this->registerCoreProvider('OC\Preview\JPEG', '/image\/jpeg/');
+ $this->registerCoreProvider('OC\Preview\GIF', '/image\/gif/');
+ $this->registerCoreProvider('OC\Preview\BMP', '/image\/bmp/');
+ $this->registerCoreProvider('OC\Preview\XBitmap', '/image\/x-xbitmap/');
$this->registerCoreProvider('OC\Preview\MP3', '/audio\/mpeg/');
// SVG, Office and Bitmap require imagick