diff options
author | Daniel <mail@danielkesselberg.de> | 2023-06-26 13:53:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-26 13:53:27 +0200 |
commit | 9751303182069e510e67015ba81c0cd224b4a483 (patch) | |
tree | 840c57ecab74117198c1e13ad4b5218ad46fe157 | |
parent | 783f1b9a2a0cf868fcbe440f3d8fb19e7f175172 (diff) | |
parent | 440f882322562af6040c0c4634903574f572f146 (diff) | |
download | nextcloud-server-9751303182069e510e67015ba81c0cd224b4a483.tar.gz nextcloud-server-9751303182069e510e67015ba81c0cd224b4a483.zip |
Merge pull request #38679 from nextcloud/feat/add-spec-to-preview-fetched-event
feat: add width, height, crop and mode to BeforePreviewFetchedEvent
-rw-r--r-- | lib/private/Preview/Generator.php | 8 | ||||
-rw-r--r-- | lib/public/Preview/BeforePreviewFetchedEvent.php | 45 | ||||
-rw-r--r-- | tests/lib/Preview/GeneratorTest.php | 12 |
3 files changed, 53 insertions, 12 deletions
diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index 3ce44913498..c9949c82a97 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -91,7 +91,7 @@ class Generator { * @param int $height * @param bool $crop * @param string $mode - * @param string $mimeType + * @param string|null $mimeType * @return ISimpleFile * @throws NotFoundException * @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid) @@ -109,7 +109,11 @@ class Generator { new GenericEvent($file, $specification) ); $this->eventDispatcher->dispatchTyped(new BeforePreviewFetchedEvent( - $file + $file, + $width, + $height, + $crop, + $mode, )); // since we only ask for one preview, and the generate method return the last one it created, it returns the one we want diff --git a/lib/public/Preview/BeforePreviewFetchedEvent.php b/lib/public/Preview/BeforePreviewFetchedEvent.php index 37da63b95a1..19048e08620 100644 --- a/lib/public/Preview/BeforePreviewFetchedEvent.php +++ b/lib/public/Preview/BeforePreviewFetchedEvent.php @@ -27,19 +27,27 @@ declare(strict_types=1); namespace OCP\Preview; use OCP\Files\Node; +use OCP\IPreview; /** * @since 25.0.1 */ class BeforePreviewFetchedEvent extends \OCP\EventDispatcher\Event { - private Node $node; - /** * @since 25.0.1 */ - public function __construct(Node $node) { + public function __construct( + private Node $node, + /** @deprecated 28.0.0 null deprecated **/ + private ?int $width = null, + /** @deprecated 28.0.0 null deprecated **/ + private ?int $height = null, + /** @deprecated 28.0.0 null deprecated **/ + private ?bool $crop = null, + /** @deprecated 28.0.0 null deprecated **/ + private ?string $mode = null, + ) { parent::__construct(); - $this->node = $node; } /** @@ -48,4 +56,33 @@ class BeforePreviewFetchedEvent extends \OCP\EventDispatcher\Event { public function getNode(): Node { return $this->node; } + + /** + * @since 28.0.0 + */ + public function getWidth(): ?int { + return $this->width; + } + + /** + * @since 28.0.0 + */ + public function getHeight(): ?int { + return $this->height; + } + + /** + * @since 28.0.0 + */ + public function isCrop(): ?bool { + return $this->crop; + } + + /** + * @since 28.0.0 + * @return null|IPreview::MODE_FILL|IPreview::MODE_COVER + */ + public function getMode(): ?string { + return $this->mode; + } } diff --git a/tests/lib/Preview/GeneratorTest.php b/tests/lib/Preview/GeneratorTest.php index 37fc3935139..2216674a34c 100644 --- a/tests/lib/Preview/GeneratorTest.php +++ b/tests/lib/Preview/GeneratorTest.php @@ -125,7 +125,7 @@ class GeneratorTest extends \Test\TestCase { $this->eventDispatcher->expects($this->once()) ->method('dispatchTyped') - ->with(new BeforePreviewFetchedEvent($file)); + ->with(new BeforePreviewFetchedEvent($file, 100, 100, false, IPreview::MODE_FILL)); $result = $this->generator->getPreview($file, 100, 100); $this->assertSame($previewFile, $result); @@ -264,7 +264,7 @@ class GeneratorTest extends \Test\TestCase { $this->eventDispatcher->expects($this->once()) ->method('dispatchTyped') - ->with(new BeforePreviewFetchedEvent($file)); + ->with(new BeforePreviewFetchedEvent($file, 100, 100, false, IPreview::MODE_FILL)); $result = $this->generator->getPreview($file, 100, 100); $this->assertSame($previewFile, $result); @@ -316,7 +316,7 @@ class GeneratorTest extends \Test\TestCase { $this->eventDispatcher->expects($this->once()) ->method('dispatchTyped') - ->with(new BeforePreviewFetchedEvent($file)); + ->with(new BeforePreviewFetchedEvent($file, 1024, 512, true, IPreview::MODE_COVER)); $this->generator->getPreview($file, 1024, 512, true, IPreview::MODE_COVER, 'invalidType'); } @@ -366,7 +366,7 @@ class GeneratorTest extends \Test\TestCase { $this->eventDispatcher->expects($this->once()) ->method('dispatchTyped') - ->with(new BeforePreviewFetchedEvent($file)); + ->with(new BeforePreviewFetchedEvent($file, 1024, 512, true, IPreview::MODE_COVER)); $result = $this->generator->getPreview($file, 1024, 512, true, IPreview::MODE_COVER, 'invalidType'); $this->assertSame($preview, $result); @@ -405,7 +405,7 @@ class GeneratorTest extends \Test\TestCase { $this->eventDispatcher->expects($this->once()) ->method('dispatchTyped') - ->with(new BeforePreviewFetchedEvent($file)); + ->with(new BeforePreviewFetchedEvent($file, 100, 100, false, IPreview::MODE_FILL)); $this->expectException(NotFoundException::class); $this->generator->getPreview($file, 100, 100); @@ -543,7 +543,7 @@ class GeneratorTest extends \Test\TestCase { $this->eventDispatcher->expects($this->once()) ->method('dispatchTyped') - ->with(new BeforePreviewFetchedEvent($file)); + ->with(new BeforePreviewFetchedEvent($file, $reqX, $reqY, $crop, $mode)); $result = $this->generator->getPreview($file, $reqX, $reqY, $crop, $mode); if ($expectedX === $maxX && $expectedY === $maxY) { |