feat: OneNote-style notebooks, text fonts, and page navigation
All checks were successful
CI / Windows build (push) Successful in 8m42s

Add notebook.json containers with multi-member pages, fix PDF text
editing (size/bold/drag/double-tap), index SidecarText in search, and
share keyboard page shortcuts plus a PDF scrubber.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-05 20:27:35 +08:00
parent 4a6fe7d05e
commit 2b1c6ba7e0
18 changed files with 1344 additions and 112 deletions

View File

@@ -22,6 +22,7 @@ import '../input/pen_input_service.dart';
import '../input/pressure_curve.dart' show kNaturalPressureGamma;
import '../layout/viewport_fit.dart';
import '../pdf/slide_export.dart';
import '../ui/page_nav_shortcuts.dart';
import '../ui/pen_settings_page.dart';
import 'editor_tool.dart';
import 'pen_canvas.dart';
@@ -335,7 +336,15 @@ class _PenSlideScreenState extends State<PenSlideScreen> {
@override
Widget build(BuildContext context) {
final cs = Theme.of(context).colorScheme;
return Scaffold(
return pageNavShortcuts(
onPrevious:
_slideIndex > 0 ? () => _goToSlide(_slideIndex - 1) : null,
onNext: _slideIndex < _slideCount - 1
? () => _goToSlide(_slideIndex + 1)
: null,
onFirst: _slideCount > 0 ? () => _goToSlide(0) : null,
onLast: _slideCount > 0 ? () => _goToSlide(_slideCount - 1) : null,
child: Scaffold(
body: Stack(
children: [
Positioned.fill(child: _buildCanvas()),
@@ -383,6 +392,7 @@ class _PenSlideScreenState extends State<PenSlideScreen> {
),
],
),
),
);
}