Now the frontlight remains unchanged from Nickel to koreader and vice
versa.
Also ffi/kobolight.lua has been changed to allow for usage of the toggle
button in the filemanager.
The "My Clipping" file that storing highlights and notes for Kindle
native readers could also be parsed and exported. The parser is
implemented in `evernote.koplugin/clip.lua`.
Parsed highlights and notes in one book will be packed and rendered
into html node with a slt2 template `note.tpl` that complies with
evernote markup language(ENML).
Finally the evernote client will create or update note entries and
push them to Evernote cloud.
It changes `steps` in line 13 for better finetuning,
`rate` in line 22 so that it has a nil value for `Kobo_phoenix'
and delta_int in line 48 to the last know working syntax.
Could someone check whether line 22 does result in 3.0 for non-phoenix devices?
Code is added to switch between Kobo Aura (Phoenix) and others.
`ReaderFrontLight`, `self.ges_events` and the `function ReaderFrontLight:onAdjust` are now different for Kobo Aura. This enables me to do a two-fingered-pan over approx 1/4 Screenheight to change from full on to full off.
The difference to the default implementation is that both the `rate` and the `msg` are omitted and the `steps` are different.
FURTHER ROOM FOR IMPROVEMENT: It would be an improvement to get a final message after the two-fingered-pan is done stating the achieved setting.
Signed-off-by: Markismus <zulde.zuldemans@gmail.com>
if new timer has a timeout later than a timer in queue, the
new timer will be discarded and never be pushed into timer queue.
This is fixed by pushing new timer without timeout checking
and then sorting the queue according to timer timeouts.
This should fix#520 and #495.
This hack is to rescue wrong zoom level after removing unnecessary
`self:handleEvent(Event:new("SetDimensions", self.dimen))` at the
end of ReaderUI initialization which otherwise would confuse crengine
with two different dimens and would cause inconsistent reading progress.
- Refactor FileDialog and HightlightDialog into ButtonDialog
- Create a new ButtonDialog when a file in the History dialog is hold,
offering an option to delete the history entry.
In reflowing scroll mode with 2 pages hinting, 4 full page blitbuffers
and koptcontexts should stay well in cache in the most demanding cases,
with two pages shown on screen and two pages rendered in background.
Since blitbuffer size is halved the size of page, we need cache size
to be 6 times an average reflowed page size.
For Kobo Aura HD which has a resolution of 1440×1080, a reflowed page
could become 1080×4800. So 30MB of cache is demanded for this case.
This PR implements dynamic cache size allocating according to size of
system free memory. By default it will use 20 percent of free RAM with
a clip specified by DGLOBAL_CACHE_SIZE_MINIMUM and
DGLOBAL_CACHE_SIZE_MAXIMUM which are 10MB and 30MB respectively by default.
Otherwise, current_page can acquire negative values, or values greater
than the page count, when the user tries to go back the first page
or past the last page.
This adds screenshot functionality for the Kobo Aura.
The pam-files generated can be read and converted using Imagemagick for linux/windows.
I've added the infomessage because it takes 5+ tries to get a screenshot by tapping the lower left and upper right corners. The other diagonal is not working for the Kobo Aura yet.
Bookmark flipping mode is toggled when long-holding the upper-right
corner of the screen. In this mood both the flipping icon and the dogear
icon are shown. And swiping west and east in this mode will flipping
only on bookmarked pages. Currently only pdf/djvu readers are supported.
This should implement feature request in #154.
Luckily after disabling floating punctuation left/right margin
are able to be same now (with large enough margins, should be
more than 1em). So I also changed the default page margins for
crereader and removed the dirty hack.
In regional zoom mode double tap will zoom to the tapped
region(paragraph or column, etc., detected optically via libk2pdfopt).
As the first demo, this feature is only turned on in flipping mode by
tapping the top-left corner of the screen. Eventually we may incorporate
this feature in "free" zoom mode.
When the the power_off switch is pulled a empty SYN_REPORT is generated and koreader crashed on a DEBUG line.
The DEBUG lines now generate identically spaced output, which makes it easier to read by eye.
use `self.highlight:handleEvent(Event:new("Tap"))` instead of
`self.ui:handleEvent(Event:new("Tap"))` when clearing highlighted
text since Tap event in latter situation will be captured by
the dogear widget.
While debugging ```GestureDetector:panState(tev)``` I saw that the TRACK ID never had -1 values .
So back to debugging ```input.lua```.
Now the Kobo Aura can pinch and expand.
/luajit: ./frontend/ui/gesturedetector.lua:84: attempt to concatenate field 'y' (a nil value)
Hopefully the use of the "," in the DEBUG function instead of the string concatenate operator gets rid of it.
without the height of the close button widget
This will make room for one more menu item entry and fix#355 and #394.
The larger tap zone for close button widget is still there.
that has a text layer underneath.
For multi-column page reflowing usually fits individual column to
page width and no finner word boxes are available to map reflowed
word box onto native word box. Now the relative position of a reflowed
word center is calculated as portion of the width and height of a larger
block it belongs. This relative position is also considered in
reflow-to-native position transform so that dictionary lookup now works
on multi-column pages in reflowing mode.
This should fix#376.
the Kobo framebuffer comes up in landscape mode, that is, landscape
in the other direction as we do it when going into landscape mode.
we leave it this way, and rather allow for a rotation correction at
framebuffer setup.
this PR pulls the relevant changes from koreader-base and makes the
screen code aware of this additional rotation setting.
Kobo framebuffers should now work properly with the new framebuffer
FFI code. They can stay in 16bpp mode and don't change the current
framebuffer settings. They should thus properly interoperate with
the native framework on Kobos as well as sergeys KoboLauncher
(no garbled screen when returning)
Screen.width and Screen.height are now gone, use the methods
getWidth() and getHeight() to get the relevant data. They will
take blitbuffer/framebuffer rotation into account.
We can get rid of shadow blitbuffers. Screen.bb is now fb.bb.
All bpp conversion is now done by the blitbuffer abstraction layer.
Rotation mechanism is adapted to this.
This should finish the work to make all globals to local variables.
That allows LuaJIT to properly compile things by interning the
references to the relevant parts (rather than looking up globals
all the time which stops a trace).
If getAutoBBox is fed with a blank page the returned bbox will be
much smaller than the native page dimensions. The problem is that
in zoom to 'content*' mode document renderer will try to render
the whole page at a zoom level that can cover the screen with the
bbox region of the page. That's if the blank page size is 3000*4000
and the returned autobbox is 300*400, the screen size is 600*800,
then the page will be rendered in 3000*(600/300)*4000*(800/400)
which is so large that the cache manager will not accept.
This patch just check if the returned autobbox is considerablely
much smaller than the native page dimensions. If so it will return
the manual bbox.
This patch should fix#293. And it's tested with the case provided
by @Markismus in #291.
and there is no need to OCR word if we can extract text from
original page in reflowing mode thanks to the rect maps between
normal page and reflowed page.
Turn off "show overlap" by default since scroll mode can replace it
in most cases where "show overlap" is used. And the dimmed area often
make new users confused. It's better to leave this feature to more
advanced users.
The original menu layout needs manual dimension calculations
such as white padding for displaying page information in
footer as the title, all item contents and footer are stacked
in one VerticalGroup. Out-of-bound error(koreader/koreader-base#43)
will occur in some corner cases if we missed something in
the calculation. The patch sent in this PR invented a new
layout for menu widget in which no manual calculation is needed
for displaying the footer. And the footer will be placed well
inside the menu frame.
+--------------+
| +----------+ |
| |+--------+| |
| || Header || |
| |+--------+| |
| |+--------+| |
| || Item || |
| || Item || |
| |+--------+| |
| |(Vertical | |
| | Group) | |
| +----------+ |
| Footer |
|(OverlapGroup)|
+--------------+
Device:hasFrontlight always returned a true-like value because util.isEmulated was an integer.
Fixed this, also, used a polymorphic object design to reduce FrontLight code, and
adapted BaseFrontLight for the emulator.
It seems that the setPageMargins method will mess up XPointer of current view.
This bugfix simply disables page margin restoring in readercopt.lua so that
reading position is restorable.
As swiping north/south will generate several pan gestures which will
set refresh mode to WAVEFORM_MODE_A2, we should explicitly do a full
refresh in order to switch refresh waveform from WAVEFORM_MODE_A2
to WAVEFORM_MODE_GC16 as in OnPanRelease.