summaryrefslogtreecommitdiffstats
path: root/lib/private/PreviewManager.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/PreviewManager.php')
-rw-r--r--lib/private/PreviewManager.php52
1 files changed, 50 insertions, 2 deletions
diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php
index 109feb45864..0cda55751bf 100644
--- a/lib/private/PreviewManager.php
+++ b/lib/private/PreviewManager.php
@@ -25,13 +25,29 @@
*/
namespace OC;
+use OC\Preview\Generator;
+use OCP\Files\File;
+use OCP\Files\IAppData;
+use OCP\Files\IRootFolder;
+use OCP\Files\NotFoundException;
+use OCP\Files\SimpleFS\ISimpleFile;
+use OCP\IConfig;
use OCP\IPreview;
use OCP\Preview\IProvider;
class PreviewManager implements IPreview {
- /** @var \OCP\IConfig */
+ /** @var IConfig */
protected $config;
+ /** @var IRootFolder */
+ protected $rootFolder;
+
+ /** @var IAppData */
+ protected $appData;
+
+ /** @var Generator */
+ private $generator;
+
/** @var bool */
protected $providerListDirty = false;
@@ -52,8 +68,12 @@ class PreviewManager implements IPreview {
*
* @param \OCP\IConfig $config
*/
- public function __construct(\OCP\IConfig $config) {
+ public function __construct(IConfig $config,
+ IRootFolder $rootFolder,
+ IAppData $appData) {
$this->config = $config;
+ $this->rootFolder = $rootFolder;
+ $this->appData = $appData;
}
/**
@@ -121,6 +141,34 @@ class PreviewManager implements IPreview {
}
/**
+ * Returns a preview of a file
+ *
+ * The cache is searched first and if nothing usable was found then a preview is
+ * generated by one of the providers
+ *
+ * @param File $file
+ * @param int $width
+ * @param int $height
+ * @param bool $crop
+ * @param string $mode
+ * @return ISimpleFile
+ * @throws NotFoundException
+ * @since 9.2.0
+ */
+ public function getPreview(File $file, $width = -1, $height = -1, $crop = false, $mode = IPreview::MODE_FILL) {
+ if ($this->generator === null) {
+ $this->generator = new Generator(
+ $this->rootFolder,
+ $this->config,
+ $this,
+ $this->appData
+ );
+ }
+
+ return $this->generator->getPreview($file, $width, $height, $crop, $mode);
+ }
+
+ /**
* returns true if the passed mime type is supported
*
* @param string $mimeType