slideshow: option for no transition

This commit is contained in:
Thibault Deckers 2022-09-24 19:12:16 +02:00
parent ce0a253369
commit 3261e79c78
8 changed files with 42 additions and 1 deletions

View file

@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
### Added
- mosaic layout
- slideshow: option for no transition
## <a id="v1.7.0"></a>[v1.7.0] - 2022-09-19

View file

@ -207,6 +207,7 @@
"viewerTransitionParallax": "Parallax",
"viewerTransitionFade": "Fade",
"viewerTransitionZoomIn": "Zoom in",
"viewerTransitionNone": "None",
"wallpaperTargetHome": "Home screen",
"wallpaperTargetLock": "Lock screen",

View file

@ -167,6 +167,7 @@
"viewerTransitionParallax": "Parallaxe",
"viewerTransitionFade": "Fondu",
"viewerTransitionZoomIn": "Zoom",
"viewerTransitionNone": "Aucune",
"wallpaperTargetHome": "Écran daccueil",
"wallpaperTargetLock": "Écran de verrouillage",

View file

@ -167,6 +167,7 @@
"viewerTransitionParallax": "시차",
"viewerTransitionFade": "페이드",
"viewerTransitionZoomIn": "확대",
"viewerTransitionNone": "없음",
"wallpaperTargetHome": "홈 화면",
"wallpaperTargetLock": "잠금화면",

View file

@ -28,6 +28,6 @@ enum VideoControls { play, playSeek, playOutside, none }
enum VideoLoopMode { never, shortOnly, always }
enum ViewerTransition { slide, parallax, fade, zoomIn }
enum ViewerTransition { slide, parallax, fade, zoomIn, none }
enum WidgetShape { rrect, circle, heart }

View file

@ -15,6 +15,8 @@ extension ExtraViewerTransition on ViewerTransition {
return context.l10n.viewerTransitionFade;
case ViewerTransition.zoomIn:
return context.l10n.viewerTransitionZoomIn;
case ViewerTransition.none:
return context.l10n.viewerTransitionNone;
}
}
@ -28,6 +30,8 @@ extension ExtraViewerTransition on ViewerTransition {
return PageTransitionEffects.fade(pageController, index, zoomIn: false);
case ViewerTransition.zoomIn:
return PageTransitionEffects.fade(pageController, index, zoomIn: true);
case ViewerTransition.none:
return PageTransitionEffects.none(pageController, index);
}
}
}

View file

@ -119,4 +119,26 @@ class PageTransitionEffects {
),
);
};
static TransitionBuilder none(
PageController pageController,
int index,
) =>
(context, child) {
double opacity = 0;
double dx = 0;
if (pageController.hasClients && pageController.position.haveDimensions) {
final position = (pageController.page! - index).clamp(-1.0, 1.0);
final width = pageController.position.viewportDimension;
opacity = (1 - position.abs()).roundToDouble().clamp(0, 1);
dx = position * width;
}
return Opacity(
opacity: opacity,
child: Transform.translate(
offset: Offset(dx, 0),
child: child,
),
);
};
}

View file

@ -1,9 +1,11 @@
{
"de": [
"viewerTransitionNone",
"tileLayoutMosaic"
],
"el": [
"viewerTransitionNone",
"tileLayoutMosaic"
],
@ -12,6 +14,7 @@
"filterNoDateLabel",
"filterNoTitleLabel",
"filterRecentlyAddedLabel",
"viewerTransitionNone",
"viewDialogReverseSortOrder",
"tileLayoutMosaic",
"sortOrderNewestFirst",
@ -28,10 +31,12 @@
],
"id": [
"viewerTransitionNone",
"tileLayoutMosaic"
],
"it": [
"viewerTransitionNone",
"tileLayoutMosaic"
],
@ -40,6 +45,7 @@
"filterNoDateLabel",
"filterNoTitleLabel",
"filterRecentlyAddedLabel",
"viewerTransitionNone",
"viewDialogReverseSortOrder",
"tileLayoutMosaic",
"sortOrderNewestFirst",
@ -57,6 +63,7 @@
],
"nl": [
"viewerTransitionNone",
"tileLayoutMosaic"
],
@ -64,6 +71,7 @@
"entryInfoActionEditTitleDescription",
"filterNoDateLabel",
"filterNoTitleLabel",
"viewerTransitionNone",
"viewDialogReverseSortOrder",
"tileLayoutMosaic",
"sortOrderNewestFirst",
@ -78,6 +86,7 @@
],
"ru": [
"viewerTransitionNone",
"tileLayoutMosaic"
],
@ -96,6 +105,7 @@
"viewerTransitionParallax",
"viewerTransitionFade",
"viewerTransitionZoomIn",
"viewerTransitionNone",
"wallpaperTargetHome",
"wallpaperTargetLock",
"wallpaperTargetHomeLock",
@ -131,6 +141,7 @@
],
"zh": [
"viewerTransitionNone",
"tileLayoutMosaic"
]
}