diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2016-10-16 16:48:11 +0200 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2016-11-03 14:00:33 +0100 |
commit | 5466fbf761bfb810a43b11789b03b2ec54c9ab6e (patch) | |
tree | 273bee9e8a91c6559ba5ff4e1c6514d4ef3e5c22 /lib/private/PreviewManager.php | |
parent | 8468212386fa577a60df238c10243b8297e962fc (diff) | |
download | nextcloud-server-5466fbf761bfb810a43b11789b03b2ec54c9ab6e.tar.gz nextcloud-server-5466fbf761bfb810a43b11789b03b2ec54c9ab6e.zip |
Move Ipreview to more of DI thingy
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'lib/private/PreviewManager.php')
-rw-r--r-- | lib/private/PreviewManager.php | 52 |
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 |