feat(pdf): paragraph-precise bookmarks
Some checks failed
CI / Windows build (push) Has been cancelled
Some checks failed
CI / Windows build (push) Has been cancelled
Add a bookmark tool to the PDF editor. A bookmark anchors to a precise location: when text is selected it captures the selection's normalized rect + the start char index in the page text (the true paragraph anchor); with no selection it falls back to the tapped page + point. - Bookmark model gains optional normalized anchor rect + charIndex + label (all absent from JSON when null, so old sidecars still load). - Bookmarks persist in the sidecar (scheduleBookmarkUpsert) and load on open; a bookmarks panel lists them and tapping one jumps to its page. Delete is persisted. Scoped to the PDF editor (note bookmarks later); scroll-to-anchor is page-level for now. analyze clean, 391 tests green.
This commit is contained in:
@@ -253,6 +253,34 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get scratchLinkDeleteBody => '这会移除锚点及其专属草稿纸。';
|
||||
|
||||
@override
|
||||
String get toolAddBookmark => '添加书签(当前位置或所选段落)';
|
||||
|
||||
@override
|
||||
String get toolBookmarks => '书签';
|
||||
|
||||
@override
|
||||
String get bookmarksTitle => '书签';
|
||||
|
||||
@override
|
||||
String get bookmarksEmpty => '还没有书签。';
|
||||
|
||||
@override
|
||||
String bookmarkDefaultLabel(int page) {
|
||||
return '第 $page 页';
|
||||
}
|
||||
|
||||
@override
|
||||
String bookmarkPageLabel(int page) {
|
||||
return '第 $page 页';
|
||||
}
|
||||
|
||||
@override
|
||||
String get bookmarkDeleteTitle => '删除书签?';
|
||||
|
||||
@override
|
||||
String get bookmarkDeleteBody => '这会移除保存的位置。';
|
||||
|
||||
@override
|
||||
String failedToOpenPdf(String error) {
|
||||
return '打开 PDF 失败:\n$error';
|
||||
|
||||
Reference in New Issue
Block a user