Use drawing controller

This commit is contained in:
2026-02-04 14:00:32 +01:00
parent 93127cada8
commit e1d72de718
2 changed files with 21 additions and 2 deletions

View File

@@ -1,6 +1,8 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_drawing_board/flutter_drawing_board.dart';
import 'package:flutter_drawing_board/paint_contents.dart';
import 'package:flutter_fullscreen/flutter_fullscreen.dart';
import 'package:logging/logging.dart';
import 'package:pdfrx/pdfrx.dart';
@@ -41,10 +43,20 @@ class _SheetViewerPageState extends State<SheetViewerPage>
int _currentPage = 1;
int _totalPages = 1;
bool _isPaintMode = false;
late DrawingController _drawingController;
@override
void initState() {
super.initState();
// Initialize drawing controller with default configuration
_drawingController = DrawingController(
config: DrawConfig(
contentType: SimpleLine,
strokeWidth: 4.0,
color: Colors.black,
),
maxHistorySteps: 100, // Limit undo/redo history (default: 100)
);
FullScreen.addListener(this);
FullScreen.setFullScreen(widget.config.fullscreen);
_documentLoaded = _loadPdf();
@@ -52,6 +64,7 @@ class _SheetViewerPageState extends State<SheetViewerPage>
@override
void dispose() {
_drawingController.dispose();
FullScreen.removeListener(this);
_document?.dispose();
super.dispose();
@@ -225,7 +238,10 @@ class _SheetViewerPageState extends State<SheetViewerPage>
// Show paint mode layer when active
Visibility(
visible: _isPaintMode,
child: PaintModeLayer(pageDisplay: pageDisplay),
child: PaintModeLayer(
pageDisplay: pageDisplay,
drawingController: _drawingController,
),
),
],
);