diff options
author | Morris Jobke <hey@morrisjobke.de> | 2016-11-18 20:45:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-18 20:45:29 +0100 |
commit | 46768e71d9601546d13252bd885ce9e532018e16 (patch) | |
tree | c4b5d53930d34222db4db3a2976da13bf5a616b6 /lib/private | |
parent | 332eaec4c01356d0b2119d4ec8fe07fa492d031b (diff) | |
parent | 99ada40df48af18396b8a99363832b1bffc58d37 (diff) | |
download | nextcloud-server-46768e71d9601546d13252bd885ce9e532018e16.tar.gz nextcloud-server-46768e71d9601546d13252bd885ce9e532018e16.zip |
Merge pull request #2076 from nextcloud/log_preview_access
Dispatch event on preview request
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/Preview/Generator.php | 19 | ||||
-rw-r--r-- | lib/private/PreviewManager.php | 18 | ||||
-rw-r--r-- | lib/private/Server.php | 3 |
3 files changed, 34 insertions, 6 deletions
diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index 3d4e9bf3677..32a732d8580 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -32,6 +32,8 @@ use OCP\IConfig; use OCP\IImage; use OCP\IPreview; use OCP\Preview\IProvider; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Symfony\Component\EventDispatcher\GenericEvent; class Generator { @@ -43,23 +45,28 @@ class Generator { private $appData; /** @var GeneratorHelper */ private $helper; + /** @var EventDispatcherInterface */ + private $eventDispatcher; /** * @param IConfig $config * @param IPreview $previewManager * @param IAppData $appData * @param GeneratorHelper $helper + * @param EventDispatcherInterface $eventDispatcher */ public function __construct( IConfig $config, IPreview $previewManager, IAppData $appData, - GeneratorHelper $helper + GeneratorHelper $helper, + EventDispatcherInterface $eventDispatcher ) { $this->config = $config; $this->previewManager = $previewManager; $this->appData = $appData; $this->helper = $helper; + $this->eventDispatcher = $eventDispatcher; } /** @@ -78,6 +85,16 @@ class Generator { * @throws NotFoundException */ public function getPreview(File $file, $width = -1, $height = -1, $crop = false, $mode = IPreview::MODE_FILL, $mimeType = null) { + $this->eventDispatcher->dispatch( + IPreview::EVENT, + new GenericEvent($file,[ + 'width' => $width, + 'height' => $height, + 'crop' => $crop, + 'mode' => $mode + ]) + ); + if ($mimeType === null) { $mimeType = $file->getMimeType(); } diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php index 600557da5a0..36b3730a720 100644 --- a/lib/private/PreviewManager.php +++ b/lib/private/PreviewManager.php @@ -35,6 +35,7 @@ use OCP\Files\SimpleFS\ISimpleFile; use OCP\IConfig; use OCP\IPreview; use OCP\Preview\IProvider; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; class PreviewManager implements IPreview { /** @var IConfig */ @@ -46,6 +47,9 @@ class PreviewManager implements IPreview { /** @var IAppData */ protected $appData; + /** @var EventDispatcherInterface */ + protected $eventDispatcher; + /** @var Generator */ private $generator; @@ -65,16 +69,21 @@ class PreviewManager implements IPreview { protected $defaultProviders; /** - * Constructor + * PreviewManager constructor. * - * @param \OCP\IConfig $config + * @param IConfig $config + * @param IRootFolder $rootFolder + * @param IAppData $appData + * @param EventDispatcherInterface $eventDispatcher */ public function __construct(IConfig $config, IRootFolder $rootFolder, - IAppData $appData) { + IAppData $appData, + EventDispatcherInterface $eventDispatcher) { $this->config = $config; $this->rootFolder = $rootFolder; $this->appData = $appData; + $this->eventDispatcher = $eventDispatcher; } /** @@ -165,7 +174,8 @@ class PreviewManager implements IPreview { $this->appData, new GeneratorHelper( $this->rootFolder - ) + ), + $this->eventDispatcher ); } diff --git a/lib/private/Server.php b/lib/private/Server.php index c6cfa018be5..1d3d588e9fc 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -123,7 +123,8 @@ class Server extends ServerContainer implements IServerContainer { return new PreviewManager( $c->getConfig(), $c->getRootFolder(), - $c->getAppDataDir('preview') + $c->getAppDataDir('preview'), + $c->getEventDispatcher() ); }); |