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

56 Commits

Author SHA1 Message Date
Frans de Jonge
17fa07ee43
[fix] GestureDetector: deep copies of events for multiswipes when rotated (#4728)
Fixes #4724.
2019-03-04 19:01:01 +01:00
poire-z
d98ea4e9ee util.splitToChars(): supports text encoded in WTF-8
https://en.wikipedia.org/wiki/UTF-8#WTF-8
WTF-8 is a superset of UTF-8, that includes UTF-16 surrogates
in UTF-8 bytes (forbidden in well-formed UTF-8).
We may get UTF-8 with these from bad producers or converters.

We can get such chars in the text we get from Wikipedia API once
their (fully valid) JSON has been decoded by our lpeg-based JSON
decoder (which is a defect, hard to fix). (Our other pure-Lua json
decoder has no problem and do that correctly).
We might also find these WTF-8 in some dictionaries, so let's
support them.
2019-01-15 23:56:11 +01:00
Frans de Jonge
b261a647c2
[feat] Add dictionary download option (#3176)
You can now download pretty much all of the easily available freely licensed dictionaries I could find.
2018-12-13 06:27:49 +00:00
poire-z
6e35e683dd
Text editor plugin, InputDialog enhancements (#4135)
This plugin mostly sets up a "Text editor>" submenu, that allows
browsing files, creating a new file, and managing a history of
previously opened file for easier re-opening.
It restore previous scroll and cursor positions on re-opening.
Additional "Check lua" syntax button is added when editing
a .lua file, and prevent saving if errors.
The text editing is mainly provided by the enhanced InputDialog.

InputDialog: added a few more options, the main one being
'save_callback', which will add a Save and Close buttons
and manage saving/discarding/exiting.
If "fullscreen" and "add_nav_bar", will add a show/hide keyboard
button to it.
Moved the preset buttons setup code in their own InputDialog
methods for clarity of the main init code.
Buttons are now enabled/disabled depending on context for feedback
(eg: Save is disabled as long as text has not been modified).

Added util.checkLuaSyntax(lua_string), might be useful elsewhere.
2018-08-06 21:16:30 +02:00
poire-z
620542b055
Text input related fixes & enhancements (#4124)
InputText: checks whether provided content can be given
back unaltered, which may not be the case after it is
splitted to UTF8 chars if the text is binary content.
Prevent editing text if that is the case.
Adds InputText and InputDialog :isEditable() and :isEdited()
methods.
Also accounts for the scrollbar width when measuring text
to prevent it from being displayed when not needed.
Also ensure a minimal size of the scrollbar thumb so it is
rendered when huge text with many lines is displayed.

Virtual keyboard: Hold on Backspace: delete from cursor
to start of line instead of clearing all text content.
2018-08-01 18:33:52 +02:00
Robert
9e67c5a614 CloudStorage: Allow use reserved characters in FTP username and FTP password (#3924)
Depends on RFC 3986 compliant util.urlEncode() and adds unit tests for the new functions.
2018-05-04 17:06:58 +02:00
poire-z
305e75c5ea Wikipedia Save as EPUB: various encoding fixes (#3851)
* Wiki Save as EPUB: various encoding fixes

Fix display of & in article titles
Fix display of &, <, > in TOC entries and in targeted anchor (the mismatch
with the target id made these TOC entries invalid and simply not displayed).
Remove percent-encoded URLs tweaks for crengine now that crengine
correctly supports them (each percent encode handled as an UTF8 byte).
Bump crengine for that.
Don't include <meta name="cover"> when no cover present.

* bump base/crengine
2018-04-10 18:30:27 +02:00
Frans de Jonge
2c1178896c
[feat] Add ReaderBack (#3821)
This implements a reasonable facsimile of going back on Android.

The back button first goes back in a history of visited pages.
When there's no history left, it closes the app.

Fixes #3816.
2018-03-31 21:19:31 +02:00
Frans de Jonge
90059221db
[spec] util_spec: tests for util.getFriendlySize() (#3650) 2018-01-31 17:22:34 +01:00
Hzj_jie
65f26cecbb Do not execute background runner if device is suspended (#3608) 2018-01-17 09:17:53 +01:00
TnS-hun
b40bc53fc7 HTML dictionary link support (#3603) 2018-01-15 23:51:43 +01:00
Robert
d5d12998f6 Fix folder path truncation in filemanager with utf8 chars (#3599) 2018-01-14 00:05:05 +01:00
TnS-hun
06a8a33d39 HTML dictionary support (#3573)
* Adds a generic HTML widget modeled after the text widget, and HTML dictionary support. HTML dictionaries can have their own CSS (for X.ifo it must be X.css). The base CSS just resets the margin and sets the font.

Note that the widget doesn't handle links, that wasn't needed for the dictionary.

Closes <https://github.com/koreader/koreader/issues/1776>.

* Show tag stripped HTML if the dictionary entry isn't valid HTML

* Simulate the normal <br/> behavior

* Bump base
2018-01-07 20:24:15 +01:00
Ben Kelly
f9ac8b138b Basic fixes to calibre-sync (#3558)
* Properly create intermediate directories when receiving books from Calibre.

This fixes an issue where you can't receive books except into directories that
already exist on the Kobo, which, in particular, causes problems when your
configuration in Calibre is something like "put books in $Author/$Title.epub"
and you haven't previously synced any books by that author.

* Wake up periodically to process ZMQs if any are registered.

This fixes an issue where if there are any timed events (such as the suspend
timer) in the queue, ZMQ events may not get processed until the timed event
fires, which is a problem when (for example) the suspend timer goes off in
an hour and you have something trying to send a book to the kobo over wifi
*right now*.

With this change, the event loop will wake up every 50ms to check for ZMQ
events and process them if necessary. If there are no ZMQs registered (which
is typical), it uses the original behaviour -- so this won't affect battery
life under normal usage.
2018-01-01 15:40:28 +01:00
poire-z
ecaeb4b6d7 Added util.getFormattedSize() (#3383) 2017-10-20 17:29:52 +00:00
poire-z
c15915a4ee Added util.getFriendlySize() (#3381)
* Added util.getFriendlySize()

* Allow for GB
2017-10-20 15:48:32 +00:00
Robert
605df50fbd [fix] util.secondsToClock 00:60 should be 01:00 (#3371) 2017-10-18 15:27:27 +00:00
Frans de Jonge
0fa090ee47 [chore] Rework util spec, rework util.secondsToClock: round seconds to minutes in 00:00 mode + spec
Most of the tests in util_spec were the wrong way around.
It's `assert(expected, given)`.
2017-10-12 19:39:52 +02:00
Frans de Jonge
c8c4df2f31 [fix] util.isEmptyDir() crashes on non-existent dir
lfs.dir will crash rather than return nil if directory doesn't exist

Proper fix for 9f5e446701 which is nothing but a workaround. However, I do think creating more of those data dirs automatically is more user-friendly because otherwise Android users will have to look it up or guess.
2017-08-17 11:18:28 +02:00
Frans de Jonge
16f8f7226e [chore] util: deprecated string.gfind to string.gmatch 2017-08-14 22:39:38 +02:00
poire-z
17656778b1 Book information: refactored and additional features
- Factored out duplicate code from filemanager.lua and filemanagerhistory.lua
to new filemanagerbookinfo.lua (and other common code to filemanagerutil.lua).
- Uses sidecar files' new doc_props and doc_pages settings, or fallback to
old 'stats' settings, or to opening document.
- Shows filename, filetype and directory.
- Shows description (Hold to see whole truncated text), keywords, and
cover image (tap to extract image from document and display it if available).
- Book information now available from reader menu, to display info about
the currently opened book.
- Convert possibly HTML description to plain text via added
util.htmlToPlainTextIfHtml() (for simple HTML conversion).
2017-07-14 16:46:38 +02:00
Frans de Jonge
ea9fa95a54 util.lua: fix lfs require in isEmptyDir()
Pointed out by @poire-z ed7937f65d (commitcomment-21956632)
2017-04-29 08:57:50 +02:00
Frans de Jonge
ed7937f65d ReaderDictionary: add info message about installing dictionaries
Fixes #2816.
2017-04-27 01:29:24 -07:00
Hzj_jie
999898fa69 Merge various information into systemstat (#2764)
* Merge various information to systemstat
2017-04-14 21:12:28 +02:00
Frans de Jonge
e9df73f6dc Developer documentation improvements
* Fixed up all of util and added when absent
* Updated widget examples to new coding style
2017-04-04 08:01:15 -07:00
Robert
a3c4254809 Added util.fixUtf8 (#2704)
* Remove invalid UTF-8 chars from OPDS
* add unit tests
2017-04-02 16:17:49 +02:00
Robert
dccbf4cf96 Fix crash when downloading books with unknown characters in title (#2628) 2017-03-15 00:59:42 -07:00
Frans de Jonge
47a40eb414 util: add some LDoc descriptions 2017-02-25 17:52:46 -08:00
Hzj_jie
726b15ad01 More sorting orders in file manager (#2535) 2017-02-11 18:55:31 -08:00
Frans de Jonge
bec5f46245 Merge pull request #2524 from Hzj-jie/master2
Add characters in menu items to indicate sub menus
2017-02-08 10:43:40 +01:00
Hzj_jie
65e2d6630f Use small triangle 2017-02-07 20:38:34 -08:00
Hzj_jie
18117584c0 Resolve review comments 2017-02-03 20:26:47 -08:00
Hzj_jie
f91ad679d9 swithItemTable -> switchItemTable 2017-02-01 06:26:06 -08:00
Hzj_jie
529d1b3d33 evernote: ReadHistory integration and text file output (#2498) 2017-01-21 01:32:42 -08:00
Robert
7bfbc9f06a Sanitize filename for vfat, fix #2433 (#2464) 2017-01-09 16:05:15 -08:00
poire-z
359c1ae265 textboxwidget: enhanced CJK text wrapping
(changes only in util.isSplitable(), but used by textboxwidget)
Implemented line breaking rules from :
https://en.wikipedia.org/wiki/Line_breaking_rules_in_East_Asian_languages
2016-12-16 22:38:10 -08:00
poire-z
a8dd8c6f30 textboxwidget: even better text wrapping
util.isSplitable() accepts now also the previous char to help
decide if a space can be used to split a line.
TextBoxWidget:_splitCharWidthList() : simplified logic
2016-12-14 11:39:46 -08:00
Frans de Jonge
ba7377065e Doc: miscellaneous improvements. 2016-12-13 14:40:16 -08:00
poire-z
5040bfe4c5 textboxwidget and scrolltextwidget enhancements (#2393)
util: made isSplitable() accept an optional next_char
for wiser decision

textboxwidget: speed up rendering, enhanced text wrapping,
allow selection of multiple words with Hold.

scrolltextwidget: allow scrolling with Tap.

Details in #2393
2016-12-11 14:32:02 -08:00
Hzj_jie
9efc723388 PR #2356 breaks CJK character splitting 2016-11-25 16:46:56 -08:00
robert00s
fc5ba9b862 Fix hyphenation words with unicode character in texboxwidget (#2356) 2016-11-19 12:26:53 -08:00
chrox
71bf9efc7c split accient greek words with spacing character
This should fix #1705.
2016-06-28 23:50:25 +08:00
Qingping Hou
301925e34a textboxwidget(fix): handle onHoldWord event 2016-06-05 00:37:54 -07:00
union2find
a7f24b6eaf fix function util.splitToChars in frontend/util.lua 2016-05-22 23:59:28 +08:00
union2find
f8943efdbf fix indent sytle 2016-05-15 17:18:38 +08:00
union2find
3d89b27e59 remove debug output 2016-05-15 14:56:58 +08:00
union2find
d6fcc9adf9 add cursor functionality 2016-04-21 22:13:10 +08:00
Alex Pletnev
fbf98ed920 #1710 FR: Add support of statistics plugin for pdf 2016-02-12 16:55:02 +02:00
Qingping Hou
e2096ed8d9 doc: add documentation build infrastructure 2016-02-04 10:24:53 -08:00
Qingping Hou
5cca28fabc feat(util): add array.Append helper 2016-01-31 14:58:05 -08:00