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:
@@ -106,7 +106,8 @@
|
||||
"Continuous (Right to Left)": "连续(从右到左)",
|
||||
"Continuous (Top to Bottom)": "连续(从上到下)",
|
||||
"Auto page turning interval": "自动翻页间隔",
|
||||
"The number of pic in screen (Only Gallery Mode)": "同屏幕图片数量(仅画廊模式)",
|
||||
"The number of pic in screen for landscape (Only Gallery Mode)": "横屏同屏幕图片数量(仅画廊模式)",
|
||||
"The number of pic in screen for portrait (Only Gallery Mode)": "竖屏同屏幕图片数量(仅画廊模式)",
|
||||
"Theme Mode": "主题模式",
|
||||
"System": "系统",
|
||||
"Light": "浅色",
|
||||
@@ -468,7 +469,8 @@
|
||||
"Continuous (Right to Left)": "連續(從右到左)",
|
||||
"Continuous (Top to Bottom)": "連續(從上到下)",
|
||||
"Auto page turning interval": "自動翻頁間隔",
|
||||
"The number of pic in screen (Only Gallery Mode)": "同螢幕圖片數量(僅畫廊模式)",
|
||||
"The number of pic in screen for landscape (Only Gallery Mode)": "橫向同螢幕圖片數量(僅畫廊模式)",
|
||||
"The number of pic in screen for portrait (Only Gallery Mode)": "直向同螢幕圖片數量(僅畫廊模式)",
|
||||
"Theme Mode": "主題模式",
|
||||
"System": "系統",
|
||||
"Light": "浅色",
|
||||
|
@@ -133,7 +133,8 @@ class Settings with ChangeNotifier {
|
||||
'defaultSearchTarget': null,
|
||||
'autoPageTurningInterval': 5, // in seconds
|
||||
'readerMode': 'galleryLeftToRight', // values of [ReaderMode]
|
||||
'readerScreenPicNumber': 1, // 1 - 5
|
||||
'readerScreenPicNumberForLandscape': 1, // 1 - 5
|
||||
'readerScreenPicNumberForPortrait': 1, // 1 - 5
|
||||
'enableTapToTurnPages': true,
|
||||
'reverseTapToTurnPages': false,
|
||||
'enablePageAnimation': true,
|
||||
|
@@ -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