2
0
mirror of https://github.com/koreader/koreader synced 2024-10-31 21:20:20 +00:00
Commit Graph

1147 Commits

Author SHA1 Message Date
poire-z
e3bac94db1 PDF written highlights: fix boxes, trash cached tiles
TileCacheItem: add created_ts property.
Document: manage a tile_cache_validity_ts and ignore
older cached tiles.
This timestamps is updated when highlights are written
as annotations in, or deleted from, the PDF, so we can
get the most current rendered bitmap from MuPDF and
avoid highlight ghosts on old tiles.
Save this timestamp in doc settings so older cached to
disk tiles will also be ignored across re-openings.
Bump base for: mupdf.lua: update frontend pboxes with
MuPDF adjusted ones.
2021-07-20 15:19:59 +02:00
poire-z
eeb09d2150 PDF text selection: fix/tweak spacing between words/boxes
We may get multiple boxes when selecting texts, one for each
word, and we have to add spaces between the extracted words
ourselves. Previously, we were only adding a space if the
last char of previous word was ASCII, so missing spaces
after accents or greek words.
Try to do better by measuring the distances between boxes
and comparing to box heights, with a few heuristics.
2021-07-20 15:19:59 +02:00
NiLuJe
72fbdf7fd4
ReaderZooming tweaks (#7968)
* ReaderZooming tweaks

Re #7964 & #7962

* Fix oversight in setNumberOf

Co-authored-by: yparitcher <y@paritcher.com>
2021-07-15 15:34:13 +02:00
zwim
ab6867c8fa
FileManager: allow case sensitive file search (#7956)
Bump base for cre.cpp cleanup and utf8proc FFI.
Add a checkbutton for case sensitive search in FileBrowser,
and use Utf8Proc.lowercase() for case insensitive search.
Also use it in ReaderUserHyph as a replacement for
crengine getLowercasedWord().
2021-07-15 12:53:28 +02:00
zwim
26cc3df5c5
ReaderSearch: fix wait button position, code cleanup (#7973) 2021-07-15 11:51:10 +02:00
Frans de Jonge
86a1552ccd
Fix wrong escape (#7952)
;-)

Assuming you want it to show up as `'\'`, anyway.
2021-07-10 19:03:12 +02:00
zwim
4d9d599a6a
CRe: fix issues with case sensitive and regex search (#7947)
Fix crash with previous commit.
Show regex checkbox only with cre documents.
2021-07-08 23:30:37 +02:00
zwim
826a765705
CRe: support for case sensitive and regex search (#7883)
- bump crengine: findText(): add support for regular
  expression search.
- bump base: add thirdparty/srell/srell.hpp, a C++ library
  that provides Unicode regex support, used by crengine.
- ReaderSearch: with credocuments, add checkboxes for case
  sensitive and regular expression search.
2021-07-08 19:30:16 +02:00
poire-z
a1d64de9b5
Font contrast: fix value in notification (#7934)
Fixes small issue noticed at https://github.com/koreader/koreader/discussions/7898#discussioncomment-962282
2021-07-05 11:03:27 +02:00
hius07
897622d4bb
CRe: reset call cache on rendering change (#7927)
This fixes some values sometimes not updated in footer.
2021-07-05 10:03:14 +02:00
NiLuJe
ed5a9294a4
ScreenSaver: Saner close behavior (#7929)
Should fix #7643
2021-07-05 04:56:14 +02:00
yparitcher
b07414c2b5 make sure ReaderLink gets a deep copy of location
Fixes: #7922
2021-07-04 21:45:19 -04:00
Frans de Jonge
58a5a09574
Device status: fix ellipsis (#7910) 2021-06-30 20:46:13 +02:00
Brian Hughes
ba65dc155b
Adds time left for chapter and document to the screensaver message options (#7897) 2021-06-30 01:45:34 +02:00
poire-z
d57296b6bc Device status: fix crash in debug mode 2021-06-29 21:37:05 +02:00
NiLuJe
11b50d51ae
Device status: fix wording (#7907) 2021-06-29 21:36:43 +02:00
hius07
c4f4190ad4
ReaderFooter settings menu: keep upper menu page (#7903) 2021-06-29 14:10:21 +02:00
hius07
884c664f63
Device status alarm: battery and memory (#7857)
Move former low battery alarm into a device status
alarm menu, and add high memory usage checks.
2021-06-29 14:07:29 +02:00
hius07
c6ccc73d55
Status bar: hide battery if level higher than threshold (#7876)
closes #7242
2021-06-22 19:03:05 +02:00
Frans de Jonge
12ebffc669
ReaderPaging: show page overlap menu in reflow (#7820)
Cf. <https://www.mobileread.com/forums/showthread.php?t=339912>.

I'll have to check why this doesn't work in continuous. Cf. https://github.com/koreader/koreader/issues/3932#issuecomment-395354006
2021-06-21 18:53:44 +02:00
Jason Benwell
682f7561a0
Use smaller symbols for pages_left_book in compact_items (#7828)
Use the (smaller) "‹" or "›" symbols in pages_left_book, to match pages_left, in compact_items
2021-06-21 18:48:33 +02:00
yparitcher
002b4d4be9 Kopt/Creoptions: change to using an event to update configurable. Abstract implimentation out of ConfigDialog 2021-06-11 13:26:48 +02:00
NiLuJe
ba070c24de ReaderFooter: Add a chapter_progress widget
(i.e., in-chapter num / total).

Fix #7792
2021-06-08 03:27:45 +02:00
NiLuJe
0d1325cc83 ReaderFooter: Make pages_left_book use an actual prefix icon
Instead of baking in a hyphen, so as to avoid signed zeroes, or
confusion with page progress if page maps are enabled.

Also, made compact itemps RTL friendly.
2021-06-08 03:27:45 +02:00
hius07
0d161272fc
Menu/ToC: harmonize font sizes (#7795)
Menu: display the right item ("mandatory") with a
smaller font size related to the left item font size,
instead of a function of perpage.
ToC popups: use same font size as in ToC.
2021-06-05 00:55:20 +02:00
NiLuJe
0b58abada5
[fix] ReaderZooming: Deal with some more zoom_mode shenanigans (#7780)
Migrate *global* zoom_mode settings to genus/type, too.

Nothing can actually set this as a global anymore, but we still honored
it nonetheless.

Fix #7778
2021-06-01 12:08:12 +02:00
zwim
594b4c9035
Add option for custom hyphenation rules (#7787)
This is the successor of #7746.
2021-06-01 12:06:55 +02:00
Frans de Jonge
039947886f
Revert "Hyphenation: add custom hyphenation rules (#7746)" (#7785)
This reverts commit f25da5d0d5.
2021-05-31 22:19:24 +02:00
hius07
2df54251a7
ReaderHighlight: close popup menu on 'Copy' (#7776) 2021-05-31 20:36:12 +02:00
zwim
f25da5d0d5
Hyphenation: add custom hyphenation rules (#7746)
The hyphenation of a word can be changed from its default
by long pressing for 3 seconds and selecting 'Hyphenate'.
These overrides are stored in a per-language file, i.e:
koreader/settings/user-German.hyph.
2021-05-31 20:34:26 +02:00
yparitcher
b30e366ccd
ReaderLink: option to add location to stack on opening book (#7685) 2021-05-31 20:28:43 +02:00
NiLuJe
d2ad6a83e1 ReaderTypeset: Minor reword after #7759
c.f., https://github.com/koreader/koreader/pull/7759#discussion_r638929468
2021-05-29 22:36:34 +02:00
Frans de Jonge
1054137641
[lang] Improve "set to" consistency (#7773)
Also remove a double space pointed out by @NiLuJe.
2021-05-29 12:40:25 +02:00
zwim
203e434a51
[lang] Slightly reword some notification sentences (#7759) 2021-05-25 15:24:04 +02:00
NiLuJe
887138f57f
ReaderDictionary: Handle all dictionaries being disabled better. (#7737)
By showing a warning, instead of not passing any -u flag to sdcv and letting it query *all* dictionaries if FS order...

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2021-05-24 22:48:15 +02:00
NiLuJe
2067a16fa1
ReaderZooming: Unconditionally update the configurables on SetZoomMode (#7735)
Expand #7728 to also catch SetZoomMode (mostly for Dispatcher's sake, but other things also send it).
2021-05-23 19:01:09 +02:00
NiLuJe
bee2a605f1
ReaderStatus: Don't crash in EndOfDocument actions that *immediately* destroy the ReaderUI instance. (#7733)
This is handled in an Event handler, but we have zero guarantee that
we're actually the *final* Event sent to the Document, and other Events
usually kinda need the Document instance to still be alive ;).

Delay action until the next tick to avoid potential crashes.
2021-05-22 04:46:41 +02:00
NiLuJe
c05b1a4ee4
ReaderZooming: Deal with some more fallout of the new zoom modes (#7728)
* Namely, ensure zoom_mode is consistent with genus & type *both ways*. (I only dealt with the "no zoom_mode" case in my original fixup).
Because documents with settings dating back from before the new zoom modes had "old" zoom_mode settings mixed with "new" genus/type defaults that didn't agree with each other.
It lead to super-confusing ConfigDialog behavior, because ConfigDialog was in fact not reflecting the reality.
(As the source of truth is actually `zoom_mode`).

* There was a snafu in manual mode, because of the extremely weird way prefixes are handled by Configurable/ReaderConfig/DocSettings/ConfigDialog.
So, make sure we only have a *single* zoom_factor, and that it's updated and saved properly under the right name everywhere.

Fixes inconsistencies between first swapping to manual mode, and what the ConfigDialog said/did (because again: possibly a lie), vs., re-opening the same document, which would magically use *different* settings, closer to what was expected (but still broken because of the prefix mismatch and a disagreement on defaults between the two variants).

Fallout from #6885
2021-05-22 03:28:52 +02:00
poire-z
7dea979ef4 ReaderHighlight: fix long-long-press regression 2021-05-21 00:57:50 +02:00
poire-z
26750dab99 ReaderHighlight: clearer symbols on selection start/end buttons 2021-05-21 00:57:50 +02:00
zwim
6e2be98edc
Notifications: options to show none/some/more (#7718)
Notification: adds some functions so it can be used as
a notification manager.
Have various bits of code emitting events that may generate
notifications advertize themselves as the source for following
notifications.
Add a menu to allow selecting some subsets of sources
to show or hide.
2021-05-20 23:14:11 +02:00
poire-z
d0165f8bd1 Fix scrolling, add inertial scroll on non-eInk devices
Add a new reader module: ReaderScrolling, that exposes
some Scrolling options to the menu (which are to be used
by and implemented in ReaderPaging and ReaderRolling
themselves) and implement some inertial scrolling logic
used by both of them.
Default to "Classic scrolling" which is the expected
behaviour on phones and tablets.
The old CreDocument buggy behaviour is available as
"Turbo scrolling" for both Paging and Rolling documents.
Added a "On release scrolling" option that might be
useful on eInk to avoid dynamic pan/scrolling.

Try to avoid bad interactions between pan and swipe,
cancelling unwanted panning if we ended up doing a
swipe or multiswipe.
2021-05-19 23:55:07 +02:00
poire-z
e4fd45ef08 Pan zoom mode: update footer when panning in a same page 2021-05-19 23:55:07 +02:00
poire-z
0a3978f60b Reader: remove full refresh on vertical swipes
Small diagonal swipes is what can be used for
full refrehes. Tweak a bit how it is done.
2021-05-19 23:55:07 +02:00
poire-z
33744217de Chapter navigation: fix possible crash in scroll mode
Update self.current_page on each pos change,
so getPreviousChapter() and al. have something
to work with.
2021-05-19 23:55:07 +02:00
poire-z
001d48f6cc Fix a few possible crashes
- TextWidget: avoid crash with small max_width (could happen
  when opening menu on a small emulator window)
- TextWidget: avoid crash if re-used after :free()
- ReaderHighlight:clear(): fix possible crash when
  scheduled and run after document closed
- DictQuickLookup: minor canSearch() tweak ('selected_text'
  is normally available only on multiple words selection,
  but is currently available on single word selection thanks
  to some unrelated side effect)
2021-05-19 23:55:07 +02:00
zwim
067ece7281
Fix changeFontSize after added granularity (#7689)
Whith the new font size step of 0.5 (46a2d9c), the gesture
for increasing or decreasing font size would change the
size by only half of the given value.
2021-05-19 21:21:23 +02:00
NiLuJe
6dc1c1efca Unbreak ReaderFooter test
Tests: Update the ffi.metatype wrapper

(Better idea: move to busted master).
2021-05-19 20:55:00 +02:00
NiLuJe
189035cafc ReaderFooter: Get rid of magic nil settings
And go through one-time-migration to ensure the settings are properly
filled.

Also, disable hold-to-skim by default.
2021-05-19 20:55:00 +02:00
NiLuJe
8d3aacbac3 ReaderFooter: Fix the madness related to its hold footer
Namely, instead of making it lower priority than readerhighlight and
hoping for the best, make it higher priority, as it should (ReaderFooter
itself is *above* Reader, after all), with a sane set of fallthroughs:

* No footer
* No hold-to-skim
* Held outside the footer (but inside the footer tap zone)

This made the crap workaround from #7466 unnecessary, and actually fixes
the behavior in PDFs (because readerhighlight will match the *physical*
page, which may include off-screen content) and ePubs w/r eclaim bar
height (in which case, there's actual content behind the footer that
readerhighlight could have matched on).

Fix #7697
2021-05-19 20:55:00 +02:00