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

656 Commits

Author SHA1 Message Date
NiLuJe
056c03a262 ReadTimer: Small QoL fixes
* Never show negative relative time values.
* Make sure the alarm fires on resume if it expired during suspend.

Fix #8031
2021-08-19 22:40:04 +02:00
zwim
1a526a33c2
CoverImage plugin: allow writing grayscale BMPs (#8054) 2021-08-16 02:11:54 +02:00
zwim
5bbcb9ea79
Autostart Profiles (#8049)
Add the possibility to autostart profiles when KOReader is started with filemanager or lastfile.
Discussed in #8020

If more profiles are selected, they are started in alphabetically order.
2021-08-15 13:25:19 +02:00
Martín Fernández
83554c6180
add doctype to template (#8040) 2021-08-01 21:54:12 +02:00
hius07
2ab31a9a36
File browser: Settings submenu reordering (#8000) 2021-07-23 15:47:02 +02:00
yparitcher
dc59391632
Dispatcher: use UIManager:sendEvent instead of the current instance (#7999)
This fixes inheritance issues when changing documents.
Also allow "Go to page" in FM.
2021-07-23 13:27:12 +02:00
Galunid
e7fa044807
Remove zsync plugin (#7957) 2021-07-22 09:01:57 +02:00
Martín Fernández
38a2a46969
Flag send2ebook as deprecated (#7967)
See https://github.com/koreader/koreader/issues/7955#issuecomment-877625098
2021-07-18 20:20:06 +02:00
Frans de Jonge
f411035d7d
[plugin] Remove GoodReads plugin (#7943)
Deprecated half a year ago in <https://github.com/koreader/koreader/pull/7101>.

Any potential remaining users whose API key hasn't yet automatically expired through inactivity can copy it over from an older release if desired.

Discussed in <https://github.com/koreader/koreader/discussions/7898#discussioncomment-976475>.
2021-07-10 09:24:07 +02:00
hius07
f711f060bf
A few small design fixes (#7933)
Reduce CheckButton font size.
Remove icons in TouchMenu truncated items popup.
Fix some wording.
2021-07-05 12:38:24 +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
hius07
db60ba48b7
OPDS catalog, Cloud storage: hold return arrow to go to top (#7845) 2021-06-29 10:22:03 +02:00
NiLuJe
dde732c17f
OPDS: Also handle self-closing dc: tags (#7900)
Fix #7899
2021-06-29 09:26:12 +02:00
Brian Hughes
458191993d
Add option to change checksum method in KOSync to be Binary or Filename based (#7840)
closes #7836
2021-06-21 18:53:06 +02:00
NiLuJe
c7232af8eb Statistics: Don't try to store a nil in a TEXT field
Fix #7867
2021-06-20 04:21:56 +02:00
NiLuJe
522aa49e63 Statistics: Re-enable in FM
Fix #7844
Regression since #7728
2021-06-15 18:00:32 +02:00
hius07
dccd49b652
[fix] OPDS catalog invoked from reader: crash KOReader on close (#7825)
OPDS catalog can be invoked from reader with gesture.
Then on closing OPDS catalog, KOReader crashes.
Let's jump to the download folder instead.
Closes #7784.
2021-06-09 21:32:02 +02:00
hius07
2fe8c3c41b
"Book description": more consistent wording (#7789) 2021-06-04 18:47:29 +02:00
hius07
0ddba3bcb6
OPDS browser: adjust book information font size (#7783)
Use the the same font size as the list of books.
2021-06-04 18:45:08 +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
e66d294bce
SSH server: redesign menu; add to dispatcher (#7765) 2021-05-31 21:18:04 +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
hius07
d5a2df3c04
OPDS: Add a button to display an entry's content block in the download popup (#7767) 2021-05-30 05:21:28 +02:00
NiLuJe
c2c20199cd
OPDSParser: Attempt to preserve data from content tags *without* breaking luxl (#7768)
Tackle the content blocks issue differently, in order to
preserve the data, which is now useful since #7767
2021-05-29 22:38:42 +02:00
NiLuJe
2c4cbd12a2 DocumentRegistry: Downgrade refcount warnings to debug logging.
It can happen in perfectly sane contexts.

CReDocument: Don't destroy internal engine data when Document just
decreased the refcount (as opposed to actually tore down the document
userdata if it were the last ref).

PdfDocument: Only write edited documents if the Doc instance was torn
down.

PicDocument: Silence some DocumentRegistry related warnings
2021-05-21 01:58:00 +02:00
NiLuJe
a7f23efa65
Double tap: Update default tap zones (#7711)
Make 'em match backward & forward.
Now that we have working overrides and the gesture manager, trying to fit them in a weird superset of the top corner tapzones in a vain attempt to avoid bad interactions doesn't make much sense anymore, and just makes the Gesture Manager UI confusing.

Also make sure the corner zones override the L/R ones for double taps, like it's the case with other gestures.

Fix #7710
2021-05-20 05:39:18 +02:00
poire-z
4b6b12b799 Remove unused "pan_delayed_interval" support 2021-05-19 23:55:07 +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
NiLuJe
a665901c51 ZSync: Flag this plugin as deprecated.
It's somewhat non-trivial, and has been unmaintained for years.
2021-05-19 20:55:00 +02:00
NiLuJe
a31d944684 TextEditor: Disable on non-Touch devices
"fix" #7356
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
31e6294315
[plugin] CoverImage: Use blksize for size of cached files (#7705) 2021-05-18 11:52:15 +02:00
Frans de Jonge
0ec74612db
Fix stupid typo (#7678)
I was still thinking about 341d6ac660 I suppose.

Hat tip to @yparitcher.
2021-05-13 17:58:11 +02:00
Frans de Jonge
a3575134af
Fix docs (#7674)
See https://github.com/koreader/koreader/pull/7668#issuecomment-840404170
2021-05-13 12:58:37 +02:00
Frans de Jonge
341d6ac660
[plugin] Wallabag: different timeouts for API calls vs file downloads (#7668)
Fixes <https://github.com/koreader/koreader/issues/7650>.
2021-05-13 10:15:53 +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
2635593890 Cache: Some more tweaks after #7624
* Allow doing away with CacheItem
  Now that we have working FFI finalizers on BBs, it's mostly useless overhead.
  We only keep it for DocCache, because it's slightly larger, and memory pressure might put us in a do or die situation where waiting for the GC might mean an OOM kill.
* Expose's LRU slot-only mode
  And use it for CatalogCache, which doesn't care about storage space
* Make GlyphCache slots only (storage space is insignificant here, it was
  always going to be evicted by running out of slots).
* More informative warning when we chop the cache in half
2021-05-09 23:10:44 +02:00
hius07
170629c921
[plugin] Text editor: new 'Clean text editor history' etc. (#7635) 2021-05-06 17:24:37 +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
NiLuJe
7cb480c0fc Calibre: Invalidate the Search cache after a Wireless session
xref: https://www.mobileread.com/forums/showthread.php?t=338810
2021-05-05 20:37:33 +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
47cc7bb1a6 AutoTurn: Get rid of the weird settings_id hack, and use sane
schedule/unschedule pairs, like AutoSuspend.
2021-05-05 20:37:33 +02:00
NiLuJe
03d85bbf99 Terminal: Read settings at instantiation time, not loading time 2021-05-05 20:37:33 +02:00
NiLuJe
b0cc940776 AutoSuspend: Unbreak scheduling & settings across instances
Plugins are loaded *once*, but torn-down/instantiated multiple times,
and sometimes in the reverse order.

As such, if we use a public function member as the scheduled task, we're
always pointing to the same function, and going from FM to RD
effectively *un*schedules it.

Instead, use an instance-specific closure, so that each instance
schedules & unschedules don't affect each other.

In the same vein, settings ought to be read at instantiation, not at
loading, otherwise, changing a setting in the FM, then switching to the
reader will not pick up the changes.
2021-05-05 20:37:33 +02:00
zwim
0d6be41c75
Better strings (#7611) 2021-04-30 21:24:04 +02:00
NiLuJe
22da527ff5
Kindle: Enable AutoSuspend plugin (#7612)
Kindles are not flagged canPowerOff, although that's technically not
entirely warranted, but sorta makes sense.

The Plugin already handles that sanely, and will only expose/honor the
suspend timer.
2021-04-29 19:26:52 +02:00
hius07
3845424808
Gestures menu optimization (#7609) 2021-04-27 20:56:15 +02:00