persist twoPageMode
This commit is contained in:
@@ -6,15 +6,18 @@ import 'package:logging/logging.dart';
|
||||
import 'package:pdfrx/pdfrx.dart';
|
||||
import 'package:sheetless/api.dart';
|
||||
import 'package:sheetless/sheet.dart';
|
||||
import 'package:sheetless/storage_helper.dart';
|
||||
|
||||
class SheetViewerPage extends StatefulWidget {
|
||||
final Sheet sheet;
|
||||
final ApiClient apiClient;
|
||||
final Config config;
|
||||
|
||||
const SheetViewerPage({
|
||||
super.key,
|
||||
required this.sheet,
|
||||
required this.apiClient,
|
||||
required this.config,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -23,12 +26,12 @@ class SheetViewerPage extends StatefulWidget {
|
||||
|
||||
class _SheetViewerPageState extends State<SheetViewerPage> {
|
||||
final log = Logger("SheetViewerPage");
|
||||
final StorageHelper storageHelper = StorageHelper();
|
||||
|
||||
int page = 1;
|
||||
int numPages = 1;
|
||||
bool isFullscreen = false;
|
||||
late Future<bool> documentLoaded;
|
||||
PdfDocument? document;
|
||||
bool twoPageMode = true;
|
||||
bool paintMode = false;
|
||||
|
||||
@override
|
||||
@@ -63,8 +66,10 @@ class _SheetViewerPageState extends State<SheetViewerPage> {
|
||||
}
|
||||
|
||||
void toggleFullscreen() {
|
||||
isFullscreen = !isFullscreen;
|
||||
if (isFullscreen) {
|
||||
widget.config.fullscreen = !widget.config.fullscreen;
|
||||
storageHelper.writeConfig(widget.config);
|
||||
|
||||
if (widget.config.fullscreen) {
|
||||
log.info("enter fullscreen");
|
||||
// enter fullscreen
|
||||
SystemChrome.setEnabledSystemUIMode(
|
||||
@@ -90,7 +95,7 @@ class _SheetViewerPageState extends State<SheetViewerPage> {
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
if (twoPageMode) {
|
||||
if (widget.config.twoPageMode) {
|
||||
// TODO: notification that paint mode only in single page mode
|
||||
} else {
|
||||
paintMode = !paintMode;
|
||||
@@ -102,14 +107,17 @@ class _SheetViewerPageState extends State<SheetViewerPage> {
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
twoPageMode = !twoPageMode;
|
||||
if (twoPageMode) {
|
||||
widget.config.twoPageMode = !widget.config.twoPageMode;
|
||||
storageHelper.writeConfig(widget.config);
|
||||
if (widget.config.twoPageMode) {
|
||||
paintMode = false;
|
||||
// TODO: notification that paint mode was deactivated since only possible in single page mode
|
||||
}
|
||||
});
|
||||
},
|
||||
icon: Icon(twoPageMode ? Icons.filter_1 : Icons.filter_2),
|
||||
icon: Icon(
|
||||
widget.config.twoPageMode ? Icons.filter_1 : Icons.filter_2,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -164,7 +172,7 @@ class _SheetViewerPageState extends State<SheetViewerPage> {
|
||||
document: document,
|
||||
pageNumber: page,
|
||||
maximumDpi: 300,
|
||||
alignment: twoPageMode
|
||||
alignment: widget.config.twoPageMode
|
||||
? Alignment.centerRight
|
||||
: Alignment.center,
|
||||
),
|
||||
@@ -179,7 +187,7 @@ class _SheetViewerPageState extends State<SheetViewerPage> {
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: twoPageMode == true,
|
||||
visible: widget.config.twoPageMode == true,
|
||||
child: Expanded(
|
||||
child: Stack(
|
||||
children: [
|
||||
|
||||
Reference in New Issue
Block a user