2
0
mirror of https://github.com/koreader/koreader synced 2024-11-10 01:10:34 +00:00
Commit Graph

125 Commits

Author SHA1 Message Date
poire-z
ea946d52d6 bump crengine: tables rendering improvements and others
bump crengine, which includes:
- Adds support for symbol fonts (local or embedded)
- Fix some issues when rendering text in constrained width
- Page splitting: fix possible missing blocks
- CSS: adds support for 'auto', ignore % for borders
- Fix right border drawing position
- Fix: adds missing properties in copystyle()
- Adds comments, erm_killed rendering method
- Adds getRenderedWidths(): get node min/max node content width
- Tables rendering: fixes and improvements
- getRenderedWidths: enable min_width to be a single CJK char
- Fix wrong text wrap avoid in some case
- epub.css: add style for 'blockquote'
- Fix rendering issue when line ends with an image

Adds a few style tweaks related to tables.

Enforce table width: 100% in Wikipedia EPUBs to keep
previous look, which feels better with the various kinds
of tables in Wikipedia pages.

Fix unit tests as juliet.epub (full of blockquotes), grew quite
a few pages with the epub.css update.
2018-12-07 14:11:46 +01:00
poire-z
2a8ab2b311 View HTML: adds Prettify button to CSS viewer
Quick and non-full-proof prettification, but quite good
and enough to make unreadable/minified CSS files readable
for Style tweaks cooking.
2018-10-23 13:12:40 +02:00
poire-z
f9086a2ba9
EPUB links: show footnotes in popup, larger tap area (#4261)
Adds new options to the Links> submenu, for now only
available and used with CRE documents.
- Allow larger tap area around links
- Ignore external links
- Show footnotes in popup
- Show more links as footnotes

(This last item is mostly for testing and loosening the
footnote detection algorithm, and see how it would behave
with glossary-like links and inter glossary terms links.)

Fix distance computation from gesture position to link by
using segments.
Code for detecting if a link is a footnote is in cre.cpp, and
tweakable a bit with flags in ReaderLink:showAsFoonotePopup().

Footnotes HTML content is displayed by a new FootnoteWidget,
which uses MuPDF for its rendering.
From it, swipe south or tap outside to close, swipe to the left
to follow the original link and jump to the footnote location
in the book.

Also fix tap on highlights after the recent change to use segments
for displaying: use segments also when checking taps.
2018-10-10 18:50:24 +02:00
poire-z
0e2a3b6263 Selection menu: allow viewing HTML 2018-10-08 22:04:50 +02:00
poire-z
6ab34c6d1d cre highlights: draw segments instead of word boxes
It gives a cleaner drawing of multi-lines selected text.
Bump base and crengine.
2018-10-08 22:04:50 +02:00
poire-z
850be52177
Keep some menus open when Tap or Hold (#4189)
TouchMenu: added options to menu items with the following defaults:
    keep_menu_open = false
    hold_keep_menu_open = true
So, default for Tap callback is to close menu, and for Hold callback
to keep menu open.
In both cases, provide the TouchMenu instance as the 1st argument to
the callback functions (instead of a refresh_menu_func I added in #3941)
so the callback can do more things, like closing, refreshing,
changing menu items text and re-ordering...

ReaderZooming: show symbol for default (like it was done for
ReaderFont, ReaderHyphenation...)
TextEditor plugin: update the previously opened files list in real
time, so the menu can be kept open and used as the TextEditor main
interface.
SSH plugin: keep menu open and update the Start/Stop state in real time
ReadTimer plugin: tried to do what feels right (but I don't use it)

Also remove forgotten cp in the move/paste file code
2018-09-04 23:55:58 +02:00
poire-z
9971eb8533 Fix untranslatable strings (#4132)
Some problem somewhere with [[...]] strings starting with a
leading newline. Should probably be allowed, but for now
fix the few such cases to allow them being translated.
2018-08-01 19:29:03 +02:00
poire-z
4bb3999cbc RenderImage: factorize all image rendering and scaling code
New module RenderImage (alongside existing RenderText) to provides
image rendering and scaling facilities.
Uses MuPDF, but tries first giflib on GIF.
Allows for getting all the frames from an animated GIF.
2018-04-22 17:00:29 +02:00
poire-z
b3b7e3d279 Remove some leading and trailing newlines (#3768)
in some InfoMessage and ConfirmBox, introduced willingly
or not, that cause top or bottom padding
2018-03-17 18:13:04 +01:00
Frans de Jonge
076bf406fd
[UX] Add InfoMessage about OCR (#3718) 2018-03-05 16:38:04 +01:00
poire-z
5bc18b3c78 [fix] Long Hold on DjVu/PDF documents crash (#3697)
Holding on a word for more than 3s should bring the highlight menu.
It crashed on readerpaging documents because self.hold_pos is no more
a Geom object with them.
Also inverted selected_word/selected_text logic, as with PDF, selected_word
stays set when selected_text is available.
2018-02-26 17:25:34 +01:00
poire-z
2697a30166 [fix] Optimize cre highlights onTap and drawing (#3508)
drawXPointerSavedHighlight() and onTapXPointerSavedHighlight were
looping thru all credocuments highlights, which was expensive.
Now, we first check with cheaper getPageFromXPointer() the highlights
are on the current page before doing more expensive stuff.

Closes #3503.
2017-11-20 21:58:58 +01:00
Frans de Jonge
06dfe4fb78
[feat] Add Device:hasClipboard() (#3465)
References https://github.com/koreader/koreader/issues/3441
2017-11-14 19:20:58 +01:00
poire-z
29708884c7 Enable Edit (rename bookmark) when tap on highlight (#3369)
Also fix a few crash possibilities when unhighlighting.
Also fix bug with binary search that could not be able to remove bookmark
when there are multiple bookmarks/highlights on the same page.
2017-10-18 15:19:06 +00:00
poire-z
9443098e98 Normalize some widgets appearance (those using ButtonTable)
This makes button heights similar in all uses of ButtonTable.
It depended on how the ButtonTable was used in each widget
(previously, first and last row may have different sizes than
the others).

buttontable.lua: more even buttons height whether zero_sep or not
framecontainer.lua: added padding_top/bottom/left/right (similar to
what was done for iconbutton)

The following widgets have been adapted for this, with some
additional fixes:

buttondialog.lua
buttondialogtitle.lua: wider title with adequate padding
confirmbox.lua + multiconfirmbox.lua: dismissable via tap outside
inputdialog.lua + multiinputdialog.lua: more even vertical padding between elements
imageviewer.lua
textviewer.lua
datewidget.lua
timewidget.lua

Additionaly: frontlightwidget.lua: fixed width of progress bar that
was exceeding window width since the Size scaling adjustements
2017-10-08 20:44:11 +02:00
poire-z
b7785753c6 [fix] Crash on highlight in some situations (#3306) 2017-10-06 15:58:58 +02:00
poire-z
5828ef8f1c Fix potential crash when clearing hold highlight (#3241)
A delayed clear() could reset hold_pos while a onHold/onHoldPan/
onHoldRelease is in progress, resulting in hold_pos becoming nil and
a crash.
2017-09-20 17:35:30 +02:00
Frans de Jonge
161cae6b3a [UX] Document settings language simplification (#3215)
As suggested by @comradekingu in https://github.com/koreader/koreader/pull/3165#issuecomment-326795203
2017-09-13 12:44:37 +02:00
poire-z
a720eaceb5 Hold on a word for more than 3 seconds to access highlight menu (#3199)
and avoid the dict lookup.
2017-09-10 20:35:27 +02:00
Frans de Jonge
164f0568b1 [fix] ReaderHighlight: remove highlight when closing popup dialog
See https://github.com/koreader/koreader/pull/3198#issuecomment-328339992
2017-09-10 14:39:10 +02:00
Frans de Jonge
7310937219 [fix] "Follow Link" popup issues (#3198)
* Add current location to location stack from follow link popup
  See https://github.com/koreader/koreader/pull/3190#issuecomment-328332771
* Word highlight not removed
* "Follow Link" not translated
* Typo in docs
2017-09-10 14:26:49 +02:00
Frans de Jonge
f439ca0e8d [UX] Add "Follow Link" in hold/highlight dialog (#3190)
* This way you can disable "tap to follow links" on single tap yet still follow links.
* Change menu as well as per @poire-z's suggestion.
2017-09-09 18:30:00 +02:00
Robert
21c63a297e Gesture to show only config menu (#3051)
* Gesture to show only config menu

* Show config menu from bottom
2017-08-05 21:49:00 +02:00
robert00s
4b9fc6333f Fix: Unable to click on highlighted text in tap menu zone 2017-08-04 17:26:50 +02:00
Robert
4d0f66a354 Fix: Unhighlight is not clickable in dictionary view and Deleting highlights in bookmarks does not take effect (#3034)
* Fix: Unhighlight is not clickable in dictionary view
* Fix: Deleting highlights in bookmarks does not take effect
2017-07-28 22:39:54 +02:00
robert00s
ba96506483 Fix event AddHightligh and add event DelHighlight 2017-07-27 20:25:26 +02:00
Huang Xin
8938786472 [fix] stop propagation of tap events when triggering reader menu (#2934)
* [fix] stop propagation of tap events
when triggering reader menu
And also get rid of unnecessary screen refreshes on Kindle Voyage.
The "progress" window for dict lookup is also eliminated as most of the time dict lookup is an instant process, and the "progress" window is preserved for wikipedia lookup as it may take longer time to show the result window.

* [up] add an option to disable dictionary fuzzy search

* [fix] tidy up require

* [fix] fix read settings
2017-06-19 00:08:57 +08:00
Frans de Jonge
338fcd76ae Lang: two tiny strings
* ReaderHighlight: underscore to underline. Although underscore means to
emphasize by underlining, the emphasis lies on the, ahem, emphasis. Besides
which, it's mostly AmE and less well understood worldwide (although in this
particular context it should probably cause no trouble).

* Statistics plugin: menu item text to "reading statistics" to make it clear
which statistics we're talking about. Fixes #2744.
2017-04-09 15:03:21 -07:00
Frans de Jonge
a970a1f034 MenuSorter: fix outside testability (for potential unit tests) 2017-03-26 11:12:44 +02:00
Frans de Jonge
b7b5950e98 MenuSorter: review comments and various bug fixes
* fixed wrongful retention of submenus variable and added return to MenuSorter:findById
* fixed readerfooter_spec.lua error
* fixed review comments
2017-03-26 11:12:44 +02:00
Frans de Jonge
5b20106db7 MenuSorter: initial implementation
* Menus are now sanely configurable
* Custom separator placement for clearer menus
2017-03-26 11:12:44 +02:00
Qingping Hou
9b7aba3fba fix: override readerhighlight hold in readerfooter
Also fix touch zone dependency graph generation code.

ReaderHighlight has now been migrated to use touch zone

Inputcontainer's touch event handling logic changed to only stop
propagation when handler returns `true`. Previously, it stops
propagation when a handler is found. This is needed to support
both readerhighlight_tap and tap_forward touch zones.
2017-01-30 05:53:44 -08:00
poire-z
2ded2bce5e Wikipedia: save full page as epub (html, with optional images)
Also for the current text-only wikipedia full page: replace
the ==s in section titles with some unicode symbols for a better
visual feeling of hierarchy. These same symbols are also used
in the .epub.
Both can be disabled by adding ["wikipedia_prettify"] = false
to settings.reader.lua

readerhighlight: close ButtonTable (like other buttons do) when looking
up wikipedia, otherwise if we save as epub, and swtich to new document,
this ButtonTable will never be closed and stays in UI.
2017-01-24 01:16:23 -08:00
poire-z
ee06171c83 New ImageViewer widget + hold on image show it fullscreen
Simple image viewer with Best Fit/Original size and Rotate
(for landscape images) buttons.
readerhighlight: check if hold is on an image to show it
fullscrren
2017-01-18 09:03:31 -08:00
Qingping Hou
f95ad00b9e feat: add logger module & rewrite kobo suspend script in lua 2017-01-02 19:52:09 -08:00
poire-z
1708fd5e1c Dictionary and wikipedia enhancements (#2393)
Stardict:
- remove duplicate results
- better cleaning of selection
- append results from a 2nd query of a 2nd set of dictionaries
  in data/dict_ext/

Wikipedia:
- use the search API for better results
- allow viewing the full page content of a result in a bigger window
- allow queries for multiple languages
- available languages can be set in settings.reader.lua :
    ["wikipedia_languages"] = {"en", "fr", "it"}
- "Wikipedia lookup" added to Tools menu

For both:
- allow selection of multiple words for a new lookup (so one can
  actually browse wikipedia)
- allow continuous reading with Tap
- display "current result / total number of results"

Details in #2393
2016-12-11 14:32:02 -08:00
ycrichard
c3aa5fa0d9 allow disable highlight by default
minor code change

typo
2016-10-23 15:31:01 -07:00
chrox
4c491b5ee2 rename 'Highlight' to 'Highlight options' in menu
This should fix #2023.
2016-05-14 12:20:01 +08:00
Qingping Hou
c22a3747d8 fix all the tests 2016-04-19 00:01:28 -07:00
Qingping Hou
467199285f minor: rename Koreader to KOReader 2016-03-27 18:50:23 -07:00
Qingping Hou
26f5c8861b chore: minor style cleanup 2016-03-27 17:18:25 -07:00
Alexander Pletnev
c45328f14e Add Statistic plugin (#1581 Amount of hours spent on a book)
Changes based on comments
2015-09-13 22:34:20 +03:00
Alexander Pletnev
52d821df00 Add Statistic plugin (#1581 Amount of hours spent on a book) 2015-09-07 20:06:17 +03:00
chrox
ec1d9e4b7d partial refresh after deleting highlights
This should fix #1558.
2015-07-05 01:53:47 +08:00
chrox
612ee99707 dictionary lookup now supports phrase
This should fix #1537.
2015-06-15 18:11:47 +08:00
chrox
90a5e09bdc disable highlight in dict window if it's highlighted already
This should fix #1418.
2015-03-12 18:51:01 +08:00
chrox
2ad21dcaa2 only strip punctuations when highlight to search
This should fix #1419.
2015-03-12 17:41:23 +08:00
chrox
ca6b3d7e33 fix #1373 by checking the pos0 and pos1 of selected text 2015-02-02 00:09:07 +08:00
chrox
846836dceb fix #1275
Full refresh when highlighting text is quite annoying, I fixed it by
using 'ui' refresh type.
And this patch also fixed a bug that after cleaning temporary highlights
the screen is not refreshed.
2014-12-03 14:06:46 +08:00
chrox
6c9b7facbe fix crash when removing highlighted bookmarks in PDF 2014-12-03 11:12:15 +08:00
Hans-Werner Hilse
94ce08937a clean up refreshes
This is a larger clean-up of the refresh situation.
The general shift is that refreshes are now mainly triggered by
the (top-level) widgets when they get shown or closed via UIManager.

All refreshes for the widgets when they are in use were handled by
themselves before. This adds the case of showing/closing.

It is the desired result of not having UIManager:show()/:close()
do (full screen) refreshes on its own.
2014-12-01 16:03:40 +00:00
Hans-Werner Hilse
e7f7417cd3 refresh only dialog part of the screen for multi-word selection window 2014-11-30 22:33:38 +00:00
Hans-Werner Hilse
82c26b1f18 adapt widgets to new refresh/repaint API 2014-11-30 00:17:50 +00:00
chrox
fe885be563 refactoring readerbookmark to show both bookmarks and highlights
in the bookmark menu
and use binary search of the sorted bookmarks table whenever is
possible.
2014-11-27 22:01:57 +08:00
chrox
566586619a add unit tests for readerdictionary and readerhighlight 2014-11-21 18:32:43 +08:00
NiLuJe
eef26a0e94 Ask for a full refresh when clearing HL
Helps avoiding ghosting, especially on REAGL devices.

re #1119
2014-11-12 15:49:01 +01:00
NiLuJe
656a2c7cb6 Actually do what the comment says.
Don't hijack forced partial updates (i.e., from UI elements) on always
FULL REAGL devices. It doesn't implode if we don't, and it makes for a
snappier UI.
2014-11-11 02:15:08 +01:00
chrox
d5f6d743bd add option to disable highlighting as well as dictionary lookup
This should also fix #973.
2014-11-06 11:07:52 +08:00
chrox
bd0975896d add fulltext search for EPUB documents 2014-11-05 12:28:28 +08:00
Hans-Werner Hilse
3066c86e38 Refactoring hardware abstraction
This is a major overhaul of the hardware abstraction layer.
A few notes:

General platform distinction happens in
  frontend/device.lua
which will delegate everything else to
  frontend/device/<platform_name>/device.lua
which should extend
  frontend/device/generic/device.lua

Screen handling is implemented in
  frontend/device/screen.lua
which includes the *functionality* to support device specifics.
Actually setting up the device specific functionality, however,
is done in the device specific setup code in the relevant
device.lua file.

The same goes for input handling.
2014-11-02 21:19:04 +01:00
chrox
e34ad5ffe5 refactoring module registration in readerui
now every module can be looked up in readerui so that
unit test of these modules is possible.
2014-10-09 17:41:27 +08:00
chrox
26e8dc7065 fix faked Tap event causes koreader crash
Since there is a new clear method to clear highlight selection
the faked event is not needed when closing highlight

This should fix #847.
2014-08-26 20:32:52 +08:00
chrox
a275a8cc89 strip punctuations in word before wikipedia lookup 2014-08-20 18:04:19 +08:00
chrox
7b10d66e1b enable Wikipedia support
Since wikipedia server is language specific we should first detect
language of the text by querying Google Translate. Make sure you have
access to both Google Translate and Wikipedia service to use this
function.
2014-08-20 14:41:48 +08:00
chrox
d34a7fb355 lookup input word when holding on word in dict lookup window 2014-08-18 00:32:09 +08:00
chrox
a9b16613cf enable highlight in dictionary lookup window
This should fix #774.
2014-08-11 21:50:21 +08:00
chrox
5214cc0f4c tap to clear selected text too
This should fix #589.
2014-07-02 17:46:55 +08:00
chrox
27b15b7020 restrict highlight in current page area
This should fix #588.

Highlight in multiple pages is too complicated and requires large
code refactoring and will not be considered for now.
2014-07-02 17:46:55 +08:00
chrox
e624695d54 the Back key on Android should close the popup window and menu 2014-06-10 21:33:31 +08:00
chrox
0ea5ce1afd use checked/unchecked for hightlight drawer style 2014-06-08 14:02:22 +08:00
chrox
857bd6fcc8 strings not shown on GUI will not be translated
This may encourage users in transifex to join Koreader project.
2014-06-05 14:59:06 +08:00
chrox
3726e096f9 indicate current highlight mode in submenu 2014-05-28 21:11:07 +08:00
chrox
31aebe1caf disable exporting hightlights to My Clippings 2014-05-15 16:11:26 +08:00
chrox
1cd7ee9501 remove newline when exporting highlight to My Clipping 2014-05-15 16:11:26 +08:00
Qingping Hou
4b357c1466 move reader code into frontend/apps/reader
it makes more sense to completely separate the UI framework and
application code

also move frontend/ui/configurable.lua to frontend/configurable.lua
2014-04-02 17:02:01 -04:00