Commit Graph

649 Commits

Author SHA1 Message Date
hius07
4cdef40f97 File search: improve (#12549) 2024-09-28 19:47:56 +03:00
NiLuJe
da74691515 Chore: Don't cache static data tables (ui/elements, ui/data, kb layouts & co) (#12519)
Using `require` didn't make much sense since most of them are only used in a single place anyway, and it takes care of a few weird interactions in the process (besides not polluting `package.loaded` with useless crap ;)).
2024-09-16 17:11:42 +02:00
hius07
bf290e0c2b Write highlights into PDF: revisited (#12509) 2024-09-14 15:21:26 +03:00
NiLuJe
57ceaf3f07 SetDefaultsWidget: Don't crash on unknown custom keys
Just warn about it in the logs.
This will only show up when opening the advanced settings UI, so we'll
keep it for now instead of *also* deleting the offending kv pair,
for the sake of not randomly destroying user content...
2024-09-11 13:20:39 +02:00
hius07
5476301034 ButtonDialogTitle: remove (#12394) 2024-09-07 20:11:35 +03:00
hius07
963aa9ac7c filemanagerhistory: fix update list after deleting a file 2024-08-31 15:18:18 +02:00
NiLuJe
a486acf48b FileManagerSetDefaults: Handle strings that we default to nil (#12433)
The actual defaults table is a hash, so we have no way of salvaging it from there without using a custom NULL type or another kind of sentinel value.
But since everything that actually *uses* the offending defaults expects a nil, don't rock the boat, and just fix the Advanced Settings widget to be able to deal with it.

Fix #11679
Regression since #9546
2024-08-30 16:02:24 +02:00
NiLuJe
7e52c15de2 FileManager: Handle the FlushSettings event (#12425)
It's used on Android when we're murdered by the task switcher, and when doing an OTA update.

Fix #12124
2024-08-29 11:28:16 +02:00
NiLuJe
9cd305177e FocusManager: Fix focus_flags check in moveFocusTo, and deal with the fallout (#12361)
* FocusManager: Fix `focus_flags` check in `moveFocusTo` (0 is truthy in Lua, can't do AND checks like in C ;).)
* FileManager+FileChooser: Pass our custom title bar directly to FileChooser (which also means we can now use FC's FocusManager layout directly).
* FileChooser/Menu: Get rid of the weird `outer_title_bar` hack, and simply take a `custom_title_bar` pointer to an actual TitleBar instance instead.
* FileManager/Menu/ListMenu/CoverMenu: Fix content height computations in `_recalculateDimen` (all the non-FM cases were including an old and now unused padding value, `self.header_padding`, leading to more blank space at the bottom than necessary, and, worse, leading to different item heights between FM views, possibly leading to unnecessary thumbnail scaling !)
* ButtonDialog: Proper focus management when the ButtonTable is wrapped in a ScrollableContainer.
* ConfigDialog: Implement a stupid workaround for a weird FocusManager issue when going back from `[⋮]` buttons.
* ConfigDialog: Don't move the visual focus in `update` (i.e., we use `NOT_FOCUS` now that it works as intended).
* DictQuickLookup: Ensures the `Menu` key bind does the exact same thing as the hamburger icon.
* DictQuickLookup: Ensure we refocus after having mangled the FocusManager layout (prevents an old focus highlight from lingering on the wrong button).
* FileChooser: Stop flagging it as no_title, because it is *never* without a title. (This behavior was a remnant of the previous FM-specific title bar hacks, which are no longer a thing).
* FileChooser: Stop calling `mergeTitleBarIntoLayout` twice in `updateItems`. We already call Menu's, which handles it. (Prevents the title bar from being added twice to the FocusManager layout).
* FocusManager: Relax the `Unfocus` checks in `moveFocusTo` to ensure we *always* unfocus something (if unfocusing was requested), even if we have to blast the whole widget tree to do so. This ensures callers that mangle self.layout can expect things to work after calling it regardless of how borked the current focus is.
* FocusManager: Allow passing `focus_flags` to `refocusWidget`, so that it can be forwarded to the internal `moveFocusTo` call.
* FocusManager: The above also allows us to enforce a default that ensures we do *not* send a Focus event on Touch devices, even if they have the hasDPad devcap. This essentially restores the previous/current behavior of not showing the visual feedback from such focus "events" sent programmatically, given the `focus_flags` check fix at the root of this PR ;).
* InputDialog: Fix numerous issues relating to double/ghost instances of both InputText and VirtualKeyboard, ensuring we only ever have a single InputText & VK instance live.
* InputDialog: Make sure every way we have of hiding the VK play nice together, especially when the `toggleKeyboard` button (shown w/ `add_nav_bar`) is at play. And doubly so when we're `fullscreen`, as hiding the VK implies resizing the widget.
* InputText: Make sure we're flagged as in-focus when tapping inside the text field.
* InputText: Make sure we don't attempt to show an already-visible VK in the custom `hasDPad` `onFocus` handler.
* Menu: Get rid of an old and no longer used (nor meaningful) hack in `onFocus` about the initial/programmatically-sent Focus event.
* Menu: Get rid of the unused `header_padding` field mentioned earlier in the FM/FC fixes.
* Menu: Use `FOCUS_ONLY_ON_NT` in the explicit `moveFocusTo` call in `updatePageInfo`, so as to keep the current behavior of not showing the visual feedback of this focus on Touch devices.
* Menu: Make sure *all* the `moveFocusTo` calls are gated behind the `hasDPad` devcap (previously, that was only the case for `updatePageInfo`, but not `mergeTitleBarIntoLayout` (which is called by `updateItems`).
* MultiInputDialog: Actively get rid of the InputText & VK instances from the base class's constructor that we do not use.
* MultiInputDialog: Ensure the FocusManager layout is *slightly* less broken (password fields can still be a bit weird, though).
* TextViewer: Get rid of the unfocus -> layout mangling -> refocus hack now that `refocusWidget` handles this case sanely.
* VirtualKeyboard: Notify our parent InputDialog when we get closed, so it can act accordingly (e.g., resize itself when `fullscreen`).
* ScrollableContainer: Implement the necessary machinery for focus handling inside ButtonDialog (specifically, when scrolling via PgUp/PgDwn).
* TextEditor: Given the above fixes, the plugin is no longer disabled on non-touch devices.
* ReaderBookMark: Make sure we request a full refresh when closing the "Edit note" dialog, as CRe highlights may extend past its dimensions, and if it's closed separately from VK, the refresh would have been limited to its own dimensions, leaving a neat InputDialog-sized hole in the highlights ;).
2024-08-25 19:34:31 +02:00
hius07
64094435f2 filemanagercollection: fix context menu (#12383) 2024-08-21 20:55:02 +03:00
hius07
ed9cde8feb UX minor fixes (#12374) 2024-08-19 08:10:14 +03:00
hius07
27e2efcbd2 Annotations: fix page numbers (#12324) 2024-08-13 22:18:24 +03:00
David
f3c0af49c2 Support 'Ctrl' shortcuts on hasKeyboard (#12347) 2024-08-13 20:34:34 +02:00
hius07
c46578aece BookInfo: rating, review (#12313) 2024-08-11 17:01:15 +03:00
David
2900eef276 Show/Hide Virtual keyboard and more keyboard shortcuts (#12162) 2024-08-07 18:09:40 +02:00
NiLuJe
030f4a15d4 ReadHistory: On remove, trust the index from FileManagerHistory if possible (#12253)
The item's idx field is based on the current view settings, so only trust it when there's no filtering or searches involved, which ensures the order matches the actual history array layout.
2024-08-03 21:49:11 +02:00
NiLuJe
d59c837714 Kobo: Refactor various aspects of the Kaleido/MTK support (#12221)
* UIManager: Let the fb backend deal with Kaleido wfm promotion. This fixes a number of quirks that poisoned the refresh queue with spurious full-screen refreshes. See https://github.com/koreader/koreader-base/pull/1865 for more details.
* This also means we now disable Kaleido waveform modes when color rendering is disabled (remember to trash your thumbnail cache if you don't want to mix color w/ grayscale thumbnails, though).
* UIManager: Merge refreshes that share an edge, because that was driving me nuts (and would have most likely been merged by the kernel anyway). A perfect test-case is the FM, which trips two separate refreshes because of its title bar.
* ReaderFlipping: Use sensible dimensions, so that we only refresh the icon's region.
* ReaderBookmark: Only refresh the dogear instead of the whole page when toggling bookmarks.
* NetworkSetting: Make it a real boy, so it consistently refreshes properly on dismiss instead of relying on UIManager saving the day.
* Kobo: Aggressively prevent *both* suspend & standby while MTK devices are plugged-in, as both will horribly implode the kernel (we previously only prevent standby while charging).
* Kobo: Switch to 8bpp on B&W MTK devices (or when color rendering is disabled on Kaleido panels).
2024-07-28 01:19:40 +02:00
hius07
41191513c9 Filemanager: fix OpenWith without config (#12095)
Closes #12094.
2024-06-26 09:05:45 +02:00
David
9bff98034f ReaderHighlight: minor bug fixes (#12033)
Fixes bug reported in https://github.com/koreader/koreader/pull/11916#issuecomment-2170605117 and an issue where back button would not close widget in file manager.
2024-06-16 10:38:02 +02:00
hius07
786a7e1a4e Collections: refresh list of files in FileManager (#11994) 2024-06-09 22:34:22 +03:00
hius07
585afda4be File searcher: group operations (#11980) 2024-06-06 11:44:03 +03:00
hius07
14519bc076 Dispatcher: add File browser actions 'Set display mode', 'Sort By' (#11921) 2024-06-01 10:33:14 +03:00
Frans de Jonge
8f2bd5420d Introduce Device:useDPadAsActionKeys() (#11900)
1. Non-Kindle-specific `hasFiveWay` behavior is changed to `hasDPad and useDPadAsActionKeys`. For now they remain Kindle-specific in practice, unless one sets `useDPadAsActionKeys = yes` in a user patch.
2. With that disambiguation out of the way, `hasFiveWay` itself is further disambiguated into `hasScreenKB` and `hasSymKey`, as per the actual property being used, rather than something that tends to correlate with it. (It needn't be Kindle-specific per se, but non-Kindle devices have equivalent shortcuts with for example `Shift`.)
  Running the emulator with `DISABLE_TOUCH=1` will set `hasSymKey = yes`, which can be tested with right shift.

Closes #11887.
2024-05-26 21:25:54 +02:00
hius07
076f77282b FileManager copy/move: do not paste to itself (#11878) 2024-05-26 08:19:45 +03:00
hius07
c6e6d72cf3 Collections: add collection mark to books (#11868) 2024-05-26 08:18:44 +03:00
NiLuJe
f0f37e3153 Kobo: Boost saturation for CFA refreshes (and add a dev setting to disable it) (#11883)
Being able to disable it can be interesting, because it *is* a somewhat destructive process.

* Requires a base bump:
https://github.com/koreader/koreader-base/pull/1793
https://github.com/koreader/koreader-base/pull/1794
2024-05-25 01:29:15 +02:00
SomeGuy
577c5d454f Non-touch DPad improvements (#11749)
Closes #11295.
2024-05-20 21:20:50 +02:00
yparitcher
59fb906921 NetworkListener: fix FM integration & properly gate behind hasWifiToggle (#11858) 2024-05-20 08:37:40 +02:00
hius07
db63db11b2 FileManager: safe initial path (#11774)
We do not like trailing slash in the path (except root).
Closes #11772.
2024-05-16 20:42:08 +02:00
hius07
d82815952e Annotations, part 1 (#11563)
New format to handle annotations (page bookmarks, highlights, notes) and store them in the book metadata files.
2024-05-03 09:08:57 +03:00
hius07
6b0d97bf22 Multiple collections (#11693) 2024-05-01 09:01:59 +03:00
SomeGuy
279f16aa23 Sleep screen menu reworked (#11549) 2024-04-08 22:47:17 +02:00
Denis Malinovsky
6cc970dbb4 Do flashui refresh for first display of History page (#11603)
This fixes ghosting for color Pocketbook devices

Fixes #11602.
2024-04-06 13:07:34 +02:00
hius07
c415aea67e File manager: fix classic mode item font size (#11626)
Closes #11625.
2024-04-05 19:03:05 +02:00
zwim
58b3367d18 anti alias rounded corners in UI 2024-03-06 22:11:48 +01:00
hius07
7edb64ecee Upper menu: fix generating the menu (#11513)
revert all changes to the upper menu made in #11495
2024-03-05 07:38:06 +02:00
hius07
ec98c6334b MenuSearch: open upper menu when needed only (#11495) 2024-02-28 07:29:33 +02:00
hius07
72a6fa1e64 FileManager: less lfs calls when selecting files (#11476) 2024-02-19 08:03:12 +02:00
hius07
5d4747c593 FileManager: less lfs calls (#11452)
Use item info provided by FileChooser.
Also fix showing PathChooser with invalid path,
and fix issue when opening non-supported files.
2024-02-17 01:17:59 +01:00
hius07
b8090c641c Minimize DocSettings:open() calls (#11437) 2024-02-07 10:35:52 +02:00
hius07
d94b819eb1 CoverBrowser: use bookinfo cache in Classic mode (#11404)
Getting bookinfo from the cache db is much faster than opening a book, let's use it in Classic mode too.

With fallback if no metadata available.
2024-01-26 22:01:45 +01:00
hius07
43831236ce CoverBrowser: doc_settings cache improvement (#11360) 2024-01-17 09:58:21 +02:00
hius07
c4e9e6bc51 filemanagermenu: fix classic mode items per page (#11346) 2024-01-13 14:45:53 +01:00
zwim
2c33fc6576 Reader: Do less work on same-orientation non-gyro rotations (#11297)
Namely, don't recompute layouts, as they do not change.
(The gyro codepaths were already doing something similar.)

* Keep ConfigDialog, FileManagerMenu & ReaderMenu open on rotation.
  (In practice, only ConfigDialog is affected, as *Menu doesn't handle the rotation event.)
* Plugged an instance leak in the aforementioned Menu classes.
* Unify behavior & code with the gyro codepaths.
2024-01-12 19:13:44 +01:00
hius07
ea9ef6781c CoverBrowser: adjustable mosaic grid (#11232) 2024-01-12 08:13:50 +02:00
hius07
3533356ffd filemanagerhistory: fix untranslated strings (#11282) 2023-12-28 07:47:56 +02:00
hius07
b949d07f4f filemanagerbookinfo: proper text_type of description (#11260) 2023-12-25 07:40:13 +02:00
hius07
5a4e70a19d History, Collection: title bar in FM style (#11243)
These changes make the title bar in File manager, History and Collection windows of the same height.
The items and book covers thumbnail dimensions in Mosaic and Detailed list display modes are now equal, and up/down scaling of the thumbnails is not needed when switching between File manager, History and Collection.
2023-12-19 09:22:53 +02:00
hius07
bf59f53e18 Folder shortcuts: speed up (#11221) 2023-12-17 08:26:57 +02:00
hius07
f765fe3070 Screenshot: set as book custom cover (#11227) 2023-12-16 10:36:57 +02:00