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 (Right to Left)": "连续(从右到左)",
|
||||||
"Continuous (Top to Bottom)": "连续(从上到下)",
|
"Continuous (Top to Bottom)": "连续(从上到下)",
|
||||||
"Auto page turning interval": "自动翻页间隔",
|
"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": "主题模式",
|
"Theme Mode": "主题模式",
|
||||||
"System": "系统",
|
"System": "系统",
|
||||||
"Light": "浅色",
|
"Light": "浅色",
|
||||||
@@ -468,7 +469,8 @@
|
|||||||
"Continuous (Right to Left)": "連續(從右到左)",
|
"Continuous (Right to Left)": "連續(從右到左)",
|
||||||
"Continuous (Top to Bottom)": "連續(從上到下)",
|
"Continuous (Top to Bottom)": "連續(從上到下)",
|
||||||
"Auto page turning interval": "自動翻頁間隔",
|
"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": "主題模式",
|
"Theme Mode": "主題模式",
|
||||||
"System": "系統",
|
"System": "系統",
|
||||||
"Light": "浅色",
|
"Light": "浅色",
|
||||||
|
@@ -133,7 +133,8 @@ class Settings with ChangeNotifier {
|
|||||||
'defaultSearchTarget': null,
|
'defaultSearchTarget': null,
|
||||||
'autoPageTurningInterval': 5, // in seconds
|
'autoPageTurningInterval': 5, // in seconds
|
||||||
'readerMode': 'galleryLeftToRight', // values of [ReaderMode]
|
'readerMode': 'galleryLeftToRight', // values of [ReaderMode]
|
||||||
'readerScreenPicNumber': 1, // 1 - 5
|
'readerScreenPicNumberForLandscape': 1, // 1 - 5
|
||||||
|
'readerScreenPicNumberForPortrait': 1, // 1 - 5
|
||||||
'enableTapToTurnPages': true,
|
'enableTapToTurnPages': true,
|
||||||
'reverseTapToTurnPages': false,
|
'reverseTapToTurnPages': false,
|
||||||
'enablePageAnimation': true,
|
'enablePageAnimation': true,
|
||||||
|
@@ -113,9 +113,18 @@ class _ReaderState extends State<Reader> with _ReaderLocation, _ReaderWindow {
|
|||||||
|
|
||||||
late ReaderMode mode;
|
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
|
@override
|
||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
@@ -168,6 +177,9 @@ class _ReaderState extends State<Reader> with _ReaderLocation, _ReaderWindow {
|
|||||||
}
|
}
|
||||||
mode = ReaderMode.fromKey(appdata.settings['readerMode']);
|
mode = ReaderMode.fromKey(appdata.settings['readerMode']);
|
||||||
history = widget.history;
|
history = widget.history;
|
||||||
|
_lastImagesPerPage = isPortrait
|
||||||
|
? appdata.settings['readerScreenPicNumberForPortrait'] ?? 1
|
||||||
|
: appdata.settings['readerScreenPicNumberForLandscape'] ?? 1;
|
||||||
Future.microtask(() {
|
Future.microtask(() {
|
||||||
updateHistory();
|
updateHistory();
|
||||||
});
|
});
|
||||||
|
@@ -50,8 +50,10 @@ class _ReaderSettingsState extends State<ReaderSettings> {
|
|||||||
onChanged: () {
|
onChanged: () {
|
||||||
var readerMode = appdata.settings['readerMode'];
|
var readerMode = appdata.settings['readerMode'];
|
||||||
if (readerMode?.toLowerCase().startsWith('continuous') ?? false) {
|
if (readerMode?.toLowerCase().startsWith('continuous') ?? false) {
|
||||||
appdata.settings['readerScreenPicNumber'] = 1;
|
appdata.settings['readerScreenPicNumberForLandscape'] = 1;
|
||||||
widget.onChanged?.call('readerScreenPicNumber');
|
widget.onChanged?.call('readerScreenPicNumberForLandscape');
|
||||||
|
appdata.settings['readerScreenPicNumberForPortrait'] = 1;
|
||||||
|
widget.onChanged?.call('readerScreenPicNumberForPortrait');
|
||||||
}
|
}
|
||||||
widget.onChanged?.call("readerMode");
|
widget.onChanged?.call("readerMode");
|
||||||
},
|
},
|
||||||
@@ -81,13 +83,40 @@ class _ReaderSettingsState extends State<ReaderSettings> {
|
|||||||
: 1.0,
|
: 1.0,
|
||||||
duration: Duration(milliseconds: 300),
|
duration: Duration(milliseconds: 300),
|
||||||
child: _SliderSetting(
|
child: _SliderSetting(
|
||||||
title: "The number of pic in screen (Only Gallery Mode)".tl,
|
title: "The number of pic in screen for landscape (Only Gallery Mode)".tl,
|
||||||
settingsIndex: "readerScreenPicNumber",
|
settingsIndex: "readerScreenPicNumberForLandscape",
|
||||||
interval: 1,
|
interval: 1,
|
||||||
min: 1,
|
min: 1,
|
||||||
max: 5,
|
max: 5,
|
||||||
onChanged: () {
|
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