2
0
mirror of https://github.com/koreader/koreader synced 2024-11-13 19:11:25 +00:00
Commit Graph

1734 Commits

Author SHA1 Message Date
hius07
b2a7d0d5ce
BookStatusWidget: use correct read percentage (#8318)
Closes #8317.
2021-10-10 11:55:32 +02:00
hius07
8a750d4692
File searcher: fix FileManager invocation (#8257)
Do not start a new instance if not needed.
2021-09-25 10:55:59 +02:00
hius07
1e47cd7e5f
SpinWidget: similar size in portrait and landscape (#8226) 2021-09-25 10:40:04 +02:00
hius07
ed68445626
crash.log: write plugin regular information only in debug mode (#8230)
* Update pluginloader.lua

* Update filemanager.lua

* Update readerui.lua
2021-09-18 18:00:20 +02:00
hius07
859327dea5
Input dialogs: keep size in rotation (#8223) 2021-09-17 19:36:57 +02:00
hius07
5b049a5a82
Help text fixes (#8217)
* Update css_tweaks.lua

* Update readersearch.lua
2021-09-14 19:18:50 +02:00
hius07
1dd50381d0 ReaderTypography: Hyphenation Limits keep size in rotation 2021-09-13 19:32:19 +02:00
hius07
f6020a7260
Readerhighlight: manage actions (#8199)
Discussion in #6409.

Highlight action renamed to Long-press on text and moved from Gear - Document to Gear - Taps and gestures.

Added action Do nothing.
Removed menu item Typeset - Highlighting - Allow highlighting.

Fixed untranslated strings in the Cycle highlight action notification.

Long-press on images always opens ImageViewer. Closes #6409.
2021-09-11 11:04:48 +02:00
hius07
dd1b10332e Readersearch: reduce icon size in search dialog 2021-09-11 10:48:09 +02:00
hius07
e16d36d5da
Readersearch: add button to recall search input dialog (#8190) 2021-09-10 01:07:31 +02:00
hius07
ecf378067d
Readerdevicestatus: optimize code (#8194)
Correct read settings.
Standardize showing values in menu (a colon).
SpinWidget and DoubleSpinWidget default widths.
2021-09-08 15:50:20 +02:00
hius07
0283c44ff7
Page overlap: long-press to set as default (#8180)
Also deduplicate code out of ReaderPaging and ReaderRolling,
now in ReaderView and a specific menu module.
2021-09-06 21:30:35 +02:00
hius07
ab4e27908b
Standardize: long-press/hold to long-press (#8185)
* Gestures: standardize hold to long-press

* Common settings menu: standardize hold to long-press

* Readerstyletweak: standardize hold to long-press

* Readersearch: standardize hold to long-press
2021-09-06 17:08:48 +02:00
NiLuJe
90d4d22ba6
ReaderBookmark:renameBookmark: Better nil guard (#8176)
When matching a highlight to a bookmark *really* fails.

(Noticed in the log from #8175)
2021-09-04 12:02:06 +02:00
hius07
6f612a1c41
Readerhighlight: allow translation (#8174)
Show translatable title of the style.
https://www.mobileread.com/forums/showthread.php?p=4151396#post4151396
2021-09-03 16:25:41 +02:00
hius07
1a127633c2
InputDialog: add :addWidget(), use it for checkboxes (#8168)
Also: Text editor now closes its keyboard when calling Find
and Go to line (which open their own keyboards) to avoid
conflicts between multiple keyboards.
2021-09-02 22:53:54 +02:00
hius07
889c4489b7
Highlights style: long-press to set as default (#8166) 2021-09-02 22:46:27 +02:00
zwim
debf5dc550
Footer: add Warmth as footer item (#8060) 2021-09-02 22:44:22 +02:00
poire-z
607333b181 View HTML: allow long-press to hide "View CSS" buttons 2021-09-01 23:22:35 +02:00
poire-z
57d7fd8aaa bump crengine: support for 'box-sizing', and other fixes
Includes among others:
- (Upstream) Various CHM handling fixes, and others
- HTML documents: rebuild TOC from headings after load
- Font: use metrics for underline offset and thickness
- epub.css, html5.css: tweak ruby styling
- CSS: fix EPUB's head>style content encoding
- CSS: add support for 'box-sizing: content-box/border-box'
- CSS: support for styling the <html> element

Also bump KoboUSBMS to v1.2.2 and FBInk to v1.24.0.

ReaderFont's "Generate font test document": update the
generated HTML so its ToC is build from proper HTML headings.
2021-09-01 23:22:35 +02:00
yparitcher
36fd668093 ConfigDialog: remove uneeded support for muliple events
Fixes reflow support for dispatcher
2021-09-01 10:30:46 -04:00
hius07
68782c3f89
Checkbutton: optimize callback (#8134) 2021-08-27 21:21:14 +02:00
John Beard
27bf5b59dd
Add slash to WebDAV starting URL if missing (#8137)
If this is not done, the URL when the file is downloaded will be
something like hostdir/path, rather than host/dir/path.

Also add a debug log to make it more clear when a bogus URL
is being fetched,
2021-08-27 09:40:14 +02:00
John Beard
dac3940ced
WebDAV: Unescape XML entities when reading the item list (#8138)
Without this, a file named "A & B.epub" is read as "A &amp; B.pdf"
and will 404 when fetched.
2021-08-27 08:39:15 +02:00
hius07
684fd6c12d
Standardize select/choose to choose (#8128)
Closes #8105.
2021-08-24 22:19:07 +02:00
John Beard
5d0ae3dde8
WebDAV: Handle non-self-closing tag for empty collection (#8121)
Some servers serve <D:resourcetype></D:resourcetype> rather
than <D:resourcetype/>. So handle this case when deciding
if an item is not a collection.
2021-08-23 08:51:33 +02:00
hius07
3c3361addf
File browser, Path chooser: fix margin of the long folder name in the header (#8103)
* Filemanager: margin of the folder name in the header

* Menu: margin of the folder name in the header
2021-08-22 09:35:22 +02:00
hius07
b4ec68d8c0
[UX] File search: add hold in search results (#8100)
Currently we see filenames only.

Added hold action to show the full path. Go to on a file will open the folder with a focused file.
2021-08-18 16:17:27 +02:00
poire-z
1a12e8555e
Translator: add "Translate from book language" option (#8094)
When enabled, if the book has some supported language tag
in its metadata, use it as the source language. Otherwise,
fallback to the current settings (auto-detect or selected
source language).
2021-08-18 00:42:14 +02:00
poire-z
4e65b74b73
Footer: add "Include current page in pages left" setting (#8093) 2021-08-17 22:51:54 +02:00
hius07
a8b39c17ed
ReaderDeviceStatus: show only one alert (#8086) 2021-08-17 15:22:31 +02:00
hius07
ef1dea990e
Menu/GoTo: tweak go to page/letter dialog layout (#8056)
2 columns instead of 3, to get larger buttons and
avoid truncation with some translations.
2021-08-14 21:29:25 +02:00
hius07
3c597d1d84
FileSearcher: allow call with a search string (#8073) 2021-08-14 17:53:39 +02:00
hius07
c8a7f52672
Checkbutton: ensure max width, multiline if needed (#8066) 2021-08-14 00:49:19 +02:00
hius07
b622d6edd8
ReaderDeviceStatus: add high battery level alert (#8037) 2021-08-14 00:00:47 +02:00
yparitcher
7148aed51c
ReaderStatus: end book action: delete file: go to current directory in FM (#8042)
Go to the directory of the deleted file, instead of the folder you happend to switch into the reader from as this may have changed (via changing books from history etc)
2021-08-11 09:54:44 +02:00
Frans de Jonge
acfc5eec2b
[lang] Add a couple of plurals (#8028)
Reported by @ichnilatis-gr , see https://www.mobileread.com/forums/showthread.php?p=4140493#post4140493 and following.
2021-07-26 09:41:04 +02:00
hius07
e5f28a0f60
"Page turns" menu development (#8022)
Make "Taps and gestures - Page turns" available only in reader.
Move there other page turn related menu items from Navigation.
Remove duplicated code. Added standard "star" for default RTL.
2021-07-25 23:59:06 +02:00
hius07
2a6931e72f
History: add confirmation before cleaning (#8016) 2021-07-23 17:14:25 +02:00
hius07
2ab31a9a36
File browser: Settings submenu reordering (#8000) 2021-07-23 15:47:02 +02:00
poire-z
7b90305570
PDF written highlights: trash cached tiles on close (#8002)
Small followup to e3bac94d.
2021-07-21 22:28:34 +02:00
NiLuJe
ae35e898fb
Kobo Elipsa support (#7986)
Includes a few minor cleanups along the way ;).
2021-07-21 18:12:58 +02:00
poire-z
b31b7728db
Quick start guide: revamp text and look (#7985)
By @offset-torque, extracts from his upcoming user manual.
See https://github.com/koreader/koreader/discussions/7898
2021-07-20 17:22:45 +02:00
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
zwim
48d1b23469
FileSearcher honor filemanagers sorting order (#7978) 2021-07-18 20:21:39 +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
eb41ad3bda
FileManager: add overwrite check for Rename (#7833)
Checks for existing destination file/folder for Rename operation
and asks to overwrite.
2021-06-29 14:01:44 +02:00
hius07
db60ba48b7
OPDS catalog, Cloud storage: hold return arrow to go to top (#7845) 2021-06-29 10:22:03 +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
NiLuJe
6b31b160a2
CloudStorage: Log download failures (#7834)
Re #7354
2021-06-12 21:11:53 +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
hius07
2fe8c3c41b
"Book description": more consistent wording (#7789) 2021-06-04 18:47:29 +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
NiLuJe
0e83551e8d History: Don't flash when swapping documents
(i.e., when History is spawned from ReaderUI, delay the flash until we
*show* the next widget, instead of when we close the current RD
instance).

Prevents flashing the InfoMessage.
2021-05-21 01:58:00 +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
d56a944b79 Tests: Handle FM/ReaderUI instances slightly more sanely
* Tear down FM instances properly
* Don't manhandle ReaderUI too much, and document when the tests do
  actively broken shit, like bypassing safeties to open two // ReaderUI
  instances.
2021-05-19 20:55:00 +02:00
NiLuJe
90c38e2d0d ReadHistory: nil guard a Document instance access
We're now more careful about this, so, I suppose weird timings may mean
we might be trying to access a nil here.

Fix #7706

Guard a few other similar constructs
2021-05-19 20:55:00 +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
NiLuJe
056eeef747 ReaderPaging: Unbreak flipping mode's double taps
As discussed in #7646, regression since #6322
2021-05-19 20:55:00 +02:00
NiLuJe
94f708b53b BookInfoManager: Actually close the document after extraction
DocumentRegistry just decreases a ref, it doesn't close anything.

Plug the same Document leak in a few other places, and document this.
2021-05-19 20:55:00 +02:00
zwim
6cb2ba65cd
CRe: draw progress bar under alt status bar (#7667) 2021-05-19 18:14:14 +02:00
NiLuJe
ba00f3879d
ReaderHighlight: nil guard a few self.hold_pos accesses (#7700)
Fix #7698

That only leaves a single unguarded access in onUnhighlight
2021-05-16 19:54:46 +02:00
NiLuJe
4b265bcd7a Allow ingoring the B288 feature bans, for debugging purposes. 2021-05-16 12:47:38 +02:00
Frans de Jonge
529c681851
CloudStorage: log error (#7694)
References <https://github.com/koreader/koreader/issues/7688>.
2021-05-16 12:46:26 +02:00
NiLuJe
bb65a69193
Geom: nil guard a few rect methods (#7664)
We've managed to trip a few of those on dimen fields post-init but
pre-paintTo in a few weird coner-cases, a point at which dimen is often
nil.

ConfigDialog: Deal with that very thing in update()

Fix #7656
2021-05-13 13:05:05 +02:00
poire-z
f0ecbeb1d5
ReaderToc: option to show a dotted line (#7669)
A dotted line joining the ToC entry text to the
page number may make it easier to use.
(This replaces the menu item separator from d879062e.)
Also fix baselines aligment, which could be a bit off.
2021-05-13 01:55:35 +02:00
zwim
a20cac6904
[chore] Remove dead code (#7665) 2021-05-12 16:47:16 +02:00
NiLuJe
de6f2e84a3
FileManager/ReaderUI: Clarify the current instance accessor (#7658)
* FileManager/ReaderUI: Clarify the current instance accessor

Make it clearer that we actually store it in a *module/class* member, not an *instance* member.

Also, warn if there's a close/open mismatch.
2021-05-11 00:49:35 +02:00
NiLuJe
ed0aa1ed11 ReaderUI: Ensure we flash when opening a document
Regression since #7624
2021-05-09 23:10:44 +02:00
hius07
3d713dc34c
Dictionary: disable 'Clean history' when the history is empty (#7636) 2021-05-06 17:28:54 +02:00
hius07
c129354ca3
Wikipedia: disable 'Clean history' when the history is empty (#7637) 2021-05-06 17:27:39 +02:00
mergen3107
2c1cae64b6
Remove notification on font change (#7589)
Should reduce refreshes competition and avoid glitches.
2021-05-06 01:11:29 +02:00
Kevin Reuning
1cefd27946
DropboxAPI: Handle pagination (#7621)
Fix #7600 

Co-authored-by: NiLuJe <ninuje@gmail.com>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2021-05-05 20:44:44 +02:00
hius07
752ec49c6f
FM: Make "Refresh content" an actual Event/Gesture (#7592)
* And enable it by default in the FM as the "hold on top-right corner" Gesture, instead of the onHold handler of the "+" button.
2021-05-05 20:43:43 +02:00
zwim
3d9ed32458
Android: Send Suspend/Resume Events on STOP/START (#7630)
* ReaderHeader: Refresh it *now* on Resume, instead of just re-scheduling an update if auto-refresh is enabled..
2021-05-05 20:41:14 +02:00
NiLuJe
06a273b48d Port ffiUtil.getTimestamp users to TimeVal:now()
They were all using it to compute durations,
something which is going to be more sensible
from a monotonic clock source.
2021-05-05 20:37:33 +02:00
NiLuJe
21b067792d Cache: Rewrite based on lua-lru
Ought to be faster than our naive array-based approach.
Especially for the glyph cache, which has a solid amount of elements,
and is mostly cache hits.
(There are few things worse for performance in Lua than
table.remove @ !tail and table.insert @ !tail, which this was full of :/).

DocCache: New module that's now an actual Cache instance instead of a
weird hack. Replaces "Cache" (the instance) as used across Document &
co.
Only Cache instance with on-disk persistence.

ImageCache: Update to new Cache.

GlyphCache: Update to new Cache.
Also, actually free glyph bbs on eviction.
2021-05-05 20:37:33 +02:00
NiLuJe
ce624be8b8 Cache: Fix a whole lot of things.
* Minor updates to the min & max cache sizes (16 & 64MB). Mostly to satisfy my power-of-two OCD.
  * Purge broken on-disk cache files
  * Optimize free RAM computations
  * Start dropping LRU items when running low on memory before pre-rendring (hinting) pages in non-reflowable documents.
  * Make serialize dump the most recently *displayed* page, as the actual MRU item is the most recently *hinted* page, not the current one.
  * Use more accurate item size estimations across the whole codebase.

TileCacheItem:

  * Drop lua-serialize in favor of Persist.

KoptInterface:

  * Drop lua-serialize in favor of Persist.
  * Make KOPTContext caching actually work by ensuring its hash is stable.
2021-05-05 20:37:33 +02:00
NiLuJe
e7acec1526 ReaderUI: Saner FM/RD lifecycle
* Ensure that going from one to the other tears down the former and
    its plugins before instantiating the latter and its plugins.

UIManager: Unify Event sending & broadcasting
  * Make the two behave the same way (walk the widget stack from top to
    bottom), and properly handle the window stack shrinking shrinking
    *and* growing.
    Previously, broadcasting happened bottom-to-top and didn't really
    handle the list shrinking/growing, while sending only handled the list
    shrinking by a single element, and hopefully that element being the one
    the event was just sent to.

These two items combined allowed us to optimize suboptimal
refresh behavior with Menu and other Menu classes when
opening/closing a document.
e.g., the "opening document" Notification is now properly regional,
and the "open last doc" option no longer flashes like a crazy person
anymore.

Plugins: Allow optimizing Menu refresh with custom menus, too.

Requires moving Menu's close_callback *after* onMenuSelect, which, eh,
probably makes sense, and is probably harmless in the grand scheme of
things.
2021-05-05 20:37:33 +02:00
NiLuJe
9f835156d1
PluginLoader: Allow querying whether a specific plugin is loaded (#7607)
* PluginLoader: Allow querying whether a specific plugin is loaded (instantiated, actually).

Re #7598

* PluginLoader: Add a method to access a specific Plugin's instance
(Besides `self.ui[plugin_name]`, that is).

Requires some nastiness to avoid pinning stale references in memory :s.

* PluginLoader:  Tweak genPluginManagerSubItem to keep from rebuilding `self.all_plugins`, it's using `loadPlugins`, which is cached, so it made no sense to re-compute this one.
2021-04-29 19:30:18 +02:00
poire-z
9ef435c97a
bump crengine: more granular font weights (#7616)
Includes:
- MathML: a few minor fixes
- (Upstream) lvtext: fix possible index out of range
- Fonts: RegisterExternalFont() should take a documentId
- Fonts: fix: letter-spacing should not be applied on diacritic
- (Upstream) Fonts: more granular synthetic weights
- Fonts: synthesized weights: tweak some comments
- Fonts: keep hinting with synthetic weight
- Fonts: fix synthesized weight inconsitencies
- Fonts: fix getFontFileNameAndFaceIndex()
- Fonts: adds LVFontMan::RegularizeRegisteredFontsWeights()
- Fonts: handle synth_weight tweaks in glyph/glyphinfo slots
- (Upstream) Fonts: fix some compiler warnings
- Fix hyphenation on Armenian and Georgian text

Update the bottom menu widget "Font Weight" to allow more
granular weights than the previous "regular | bold".

Also bump thirdparty/luasec to v1.0.1.
2021-04-29 01:37:53 +02:00
hius07
3cb9508185
Filemanager: enhance file operations dialogs (#7582) 2021-04-27 21:22:16 +02:00
hius07
9d9667c226
Status bar: do not hide alone empty indicators (#7602) 2021-04-26 17:40:06 +02:00
NiLuJe
da4aec223c CloudStorage (FTP): Unbreak after #7597 2021-04-26 04:00:26 +02:00
Andy Bao
ea6576d2b6
CloudStorage (FTP): Do not buffer entire download in memory (#7597) 2021-04-25 13:08:49 +02:00
gbyl
617ed2c078
Gestures: Allow disabling tap and/or swipes for page turns (#7572)
Co-authored-by: gbyl <gbyl@users.noreply.github.com>
Co-authored-by: NiLuJe <ninuje@gmail.com>
2021-04-22 18:35:08 +02:00
yparitcher
dde3c80e73
do not exit when opening unsupported file by last for FM (#7580)
fixes: #7577

see prior art in #3935 #3933
2021-04-22 16:35:00 +02:00
NiLuJe
14f9f9d3fc
FileManager: Tweak #7564 (#7571)
Tweak the goHome handler directly, instead of only the Home button.
Also, limit it to when it's actually needed, as changeToPath already
does it.
2021-04-19 21:29:26 +02:00
NiLuJe
9988eab1a1
ReaderToc: Unbreak ToC depth detection (#7569)
No need to reinvent the wheel.

Fix #7568, regression since #7553
2021-04-19 02:21:58 +02:00
NiLuJe
d6c6b3eb71 ReaderHeader: Skip the refresh if we're not visible
Similar in spirit to the previous commit, although since we're drawn as
part of the CRe page, this is just the refresh per-se that's optimized,
it had no chance to actually be visible.
2021-04-18 01:03:33 +02:00
NiLuJe
079418d3cd ReaderFooter: Smarter hardware event handlers
Make sure we don't repaint the footer over anything else than ReaderUI,
as some events are fired without direct UI interaction, so we can't be
assured of the actual state of the UI.

Fix #7556

Exposed since #7379, but could arguably happen with other existing
handlers before.
2021-04-18 01:03:33 +02:00
NiLuJe
832d915795 SortWidget: More tweaks
* Support cancelling individual moves.

Coopt the cancel button to actually do just that, cancel, instead of close.

* Don't close when hitting the accept button, allowing to chain multiple moves.

Changes are still propagated to the caller on each individual move, though.

* Update the new icons to match our usual stroke width.
2021-04-18 01:03:33 +02:00
gbyl
915c5c7755
FileManager: Also refresh content when tapping the "Home" button (#7564)
Co-authored-by: gbyl <gbyl@users.noreply.github.com>
2021-04-18 01:01:59 +02:00
hius07
7b169dfa5e
FileManager: Hold the "+" button to refresh content (#7559) 2021-04-18 00:58:52 +02:00
yparitcher
475f46c427 fix for #7553: missing comma 2021-04-16 16:53:02 -04:00
NiLuJe
7f3a9f4761 ReaderToc: Minor look'n feel tweaks
* ReaderToc: Tweak padding around items to be a tad more balanced for multi-level ToCs, and perfectly balanced for flat ToCs. (Re #7548)
* ReaderToc: Make the onHold popup's width match said padding. (Re #7548)
* InfoMessage: Allow passing the alignment flag to TextBoxWidget
* ReaderToc: Center text inside the InfoMessage onHold popup
2021-04-16 22:12:15 +02:00
NiLuJe
3274183466 Minor Input & TimeVal cleanups
* Input: Don't create a new TimeVal object for input frame timestamps, just promote our existing table by assigning it the `TimeVal` metatable.
* TimeVal: Export (const) `zero` & `huge` TimeVal objects, because they're common enough in our codebase. (NOTE: not actually const, that's a Lua 5.4 feature ;p).
* GestureDetector: Explain the behavior of the `last_tevs` & `first_tevs` tables, and why one needs a new object and not the other.
* Speaking of, simplify the copy method for `first_tevs`, because it doesn't need to create a new TimeVal object, we can just reference the original, it's unique and re-assigned for each frame.
2021-04-16 22:12:15 +02:00
hius07
d879062eeb
ReaderToc: Add an option to display a separator between entries (#7551) 2021-04-16 21:59:01 +02:00
NiLuJe
22b9396696
Centralize one time migration code after updates (#7531)
There have been a couple of these this month, and keeping stuff that should only ever run once piling up in their respective module was getting ugly, especially when it's usually simple stuff (settings, files).

So, move everything to a dedicated module, run by reader.lua on startup, and that will actually only do things once, when necessary.
2021-04-13 17:54:11 +02:00
NiLuJe
d31dc1e450 FileManager modules: Slightly less hackish onSetRotationMode handlers...
And, also, rotate the parent widget (i.e., FM/RV) to avoid leaving the
user with a broken layout when they exit in a different orientation ;).
2021-04-10 00:39:49 +02:00
NiLuJe
e27925f4bb FileManagerShortcuts: Handle rotation events 2021-04-10 00:39:49 +02:00
NiLuJe
99372e8c63 FileManagerCollection: Handle rotation events 2021-04-10 00:39:49 +02:00
NiLuJe
a185290549 FileManagerHistory: Handle rotation events
Fix #7518
2021-04-10 00:39:49 +02:00
NiLuJe
5f9f7ce1da ReaderBookmark: Don't confuse bookmarks with highlights
Attempting to update a highlight when matching on a bookmark doesn't
make sense, and no longer works since #7411

Also, switch to ipairs(), and stop piggybacking on a new local that
shadows or uses the function's item argument.
It works in Lua, but it's super weird and error-prone.

Fix #7520 (regression since #7411).
2021-04-10 00:39:49 +02:00
NiLuJe
a62561e81e Fontlist: Move cache file in a subdirectory, so as not to mess with
Cache's state tracking

Re #7510

Legacy cache has to be deleted in Cache,
*before* the first getDiskCache call.

Reword the "Clear caches" Dev menu entry & callback:
We now have an actual "Restart" action (on most, if not all, platforms).
And we clear the whole cache folder, which may host other things (e.g.,
fontlist)
2021-04-10 00:39:49 +02:00
gbyl
d3f3e37f23
hidden setting: highlight lighten factor (#7497) 2021-04-05 10:02:41 +02:00
NiLuJe
e4adcdf422 ReaderHighlight: Allow customizing the highlight lightening factor.
Followup to #7497
2021-04-05 09:54:59 +02:00