mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 15:57:25 +00:00
Add option to differentiate images per page for landscape and portrait orientations (#214)
This commit is contained in:
@@ -113,9 +113,18 @@ class _ReaderState extends State<Reader> with _ReaderLocation, _ReaderWindow {
|
||||
|
||||
late ReaderMode mode;
|
||||
|
||||
int get imagesPerPage => appdata.settings['readerScreenPicNumber'] ?? 1;
|
||||
int get imagesPerPage {
|
||||
if (isPortrait) {
|
||||
return appdata.settings['readerScreenPicNumberForPortrait'] ?? 1;
|
||||
} else {
|
||||
return appdata.settings['readerScreenPicNumberForLandscape'] ?? 1;
|
||||
}
|
||||
}
|
||||
|
||||
int _lastImagesPerPage = appdata.settings['readerScreenPicNumber'] ?? 1;
|
||||
late int _lastImagesPerPage;
|
||||
|
||||
bool get isPortrait =>
|
||||
MediaQuery.of(context).orientation == Orientation.portrait;
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
@@ -168,6 +177,9 @@ class _ReaderState extends State<Reader> with _ReaderLocation, _ReaderWindow {
|
||||
}
|
||||
mode = ReaderMode.fromKey(appdata.settings['readerMode']);
|
||||
history = widget.history;
|
||||
_lastImagesPerPage = isPortrait
|
||||
? appdata.settings['readerScreenPicNumberForPortrait'] ?? 1
|
||||
: appdata.settings['readerScreenPicNumberForLandscape'] ?? 1;
|
||||
Future.microtask(() {
|
||||
updateHistory();
|
||||
});
|
||||
|
@@ -50,8 +50,10 @@ class _ReaderSettingsState extends State<ReaderSettings> {
|
||||
onChanged: () {
|
||||
var readerMode = appdata.settings['readerMode'];
|
||||
if (readerMode?.toLowerCase().startsWith('continuous') ?? false) {
|
||||
appdata.settings['readerScreenPicNumber'] = 1;
|
||||
widget.onChanged?.call('readerScreenPicNumber');
|
||||
appdata.settings['readerScreenPicNumberForLandscape'] = 1;
|
||||
widget.onChanged?.call('readerScreenPicNumberForLandscape');
|
||||
appdata.settings['readerScreenPicNumberForPortrait'] = 1;
|
||||
widget.onChanged?.call('readerScreenPicNumberForPortrait');
|
||||
}
|
||||
widget.onChanged?.call("readerMode");
|
||||
},
|
||||
@@ -81,13 +83,40 @@ class _ReaderSettingsState extends State<ReaderSettings> {
|
||||
: 1.0,
|
||||
duration: Duration(milliseconds: 300),
|
||||
child: _SliderSetting(
|
||||
title: "The number of pic in screen (Only Gallery Mode)".tl,
|
||||
settingsIndex: "readerScreenPicNumber",
|
||||
title: "The number of pic in screen for landscape (Only Gallery Mode)".tl,
|
||||
settingsIndex: "readerScreenPicNumberForLandscape",
|
||||
interval: 1,
|
||||
min: 1,
|
||||
max: 5,
|
||||
onChanged: () {
|
||||
widget.onChanged?.call("readerScreenPicNumber");
|
||||
widget.onChanged?.call("readerScreenPicNumberForLandscape");
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
SliverToBoxAdapter(
|
||||
child: AbsorbPointer(
|
||||
absorbing: (appdata.settings['readerMode']
|
||||
?.toLowerCase()
|
||||
.startsWith('continuous') ??
|
||||
false),
|
||||
child: AnimatedOpacity(
|
||||
opacity: (appdata.settings['readerMode']
|
||||
?.toLowerCase()
|
||||
.startsWith('continuous') ??
|
||||
false)
|
||||
? 0.5
|
||||
: 1.0,
|
||||
duration: Duration(milliseconds: 300),
|
||||
child: _SliderSetting(
|
||||
title: "The number of pic in screen for portrait (Only Gallery Mode)".tl,
|
||||
settingsIndex: "readerScreenPicNumberForPortrait",
|
||||
interval: 1,
|
||||
min: 1,
|
||||
max: 5,
|
||||
onChanged: () {
|
||||
widget.onChanged?.call("readerScreenPicNumberForPortrait");
|
||||
},
|
||||
),
|
||||
),
|
||||
|
Reference in New Issue
Block a user