2
0
mirror of https://github.com/koreader/koreader synced 2024-11-11 19:11:14 +00:00
Commit Graph

508 Commits

Author SHA1 Message Date
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
7a2bf21434 PicDocument:getCoverPageImage(): use first page instead of MuPDF
The dedicated image format library may often give better results
than MuPDF (eg: for animated GIFs).
2018-04-22 17:00:29 +02:00
poire-z
7f6aebe399
cre hyphenation: allow for setting min left/right fragment length (#3890)
When hyphenating a word, the existing algorithms enforced a minimal
length of 2 for each word fragments on left or right side.
This adds a widget to allow changing these minimal sizes (from 1 to 10).
2018-04-19 14:24:04 +02:00
poire-z
152e17fbe3
Adds 'cre_disk_cache_max_size' setting (#3760)
For max disk space usable by crengine for storing book caches.
Increased default from 32 MB to 64 MB.
2018-03-15 14:09:24 +01:00
poire-z
7d71d73cc4
Speed up page turning on big cre documents (#3740)
Page turning, menu opening, ... everything actually
2018-03-12 20:46:40 +01:00
poire-z
c93bbec40d
cre: more constrast settings (#3737)
Use ButtonProgress like it was done for kopt.
2018-03-11 14:54:17 +01:00
poire-z
db31bd4b96
coverbrowser: quicker extraction of EPUB metadata (#3736)
bump crengine:
Allow for quicker loading when interested in metadata only.
Allow for more than 65535 different attribute values.
Increase gamma values range.
2018-03-10 22:20:54 +01:00
poire-z
5cd51ea0fe
Set default 'cre_storage_size_factor' to 20 (#3732)
Increase default crengine in-memory cache sizes to avoid pack/unpack
of chunks that is known to be the cause of bugs (rendering, cache
re-use...).
2018-03-08 21:23:52 +01:00
Frans de Jonge
076bf406fd
[UX] Add InfoMessage about OCR (#3718) 2018-03-05 16:38:04 +01:00
Frans de Jonge
8b3b2b0eb1
[fix] Better error handling when MuPDF document has no pages (#3710)
It happens in base so we don't have to worry about it in front.

References https://github.com/koreader/koreader/issues/3705
2018-03-02 18:03:12 +01:00
poire-z
ea284bbc3b
cre: cache re-use fix, warnings and allow cache sizes increase (#3700)
Bump crengine for cache re-use fix and warnings when
cache sizes reached.
Allow for increasing some crengine cache sizes with a new
setting: "cre_storage_size_factor" = 1.5 (or 2, or 4...)
2018-03-01 21:55:05 +01:00
Frans de Jonge
dc0dc7e962
[feat, UX] Add new OpenWithDialog based on RadioButton and RadioButtonTable (#3678)
Fixes #3659
2018-02-11 20:46:18 +01:00
Frans de Jonge
ced9e45d92
[fix] DocumentRegistry: don't create empty sdr and add hasProvider() (#3675)
As suggested by @poire-z https://github.com/koreader/koreader/pull/3653#issuecomment-364663156
2018-02-10 18:36:18 +01:00
poire-z
501df2ebc2
cre cache: allow for disabling compression (#3670)
With ["cre_compress_cached_data"] = false in settings.reader.lua.
Not using compression for cache files does indeed take more space,
but it does speed up opening, rendering, page turns, and closing,
with big documents.
Bump base and crengine.
2018-02-10 00:45:46 +01:00
Frans de Jonge
f6ca1c7c0a
[feat] Open with: choose which engine to use for file (#3653)
Fixes #3345

* Add SVG to MuPDF filetypes
2018-02-02 21:21:52 +01:00
Frans de Jonge
d714bd3aea
[feat] DocumentRegistry: add getProviders() and preferred by weight (#3651)
This is step one toward "open with".

References https://github.com/koreader/koreader/issues/3345

* Fix up some mimetypes
* Add XHTML to supported filetypes
* Add a few image files to MuPDF
	* ".bmp",
	* ".gif",
	* ".hdp",
	* ".j2k",
	* ".jp2",
	* ".jpeg",
	* ".jpg",
	* ".jpx",
	* ".jxr",
	* ".pam",
	* ".pbm",
	* ".pgm",
	* ".png",
	* ".pnm",
	* ".ppm",
	* ".tif",
	* ".tiff",
        * ".wdp",
2018-01-31 20:49:21 +01:00
poire-z
7797c2369e
credocument: deal with loadDocument() failures (#3570)
cre:loadDocument() may fail in recognizing the document format, and
koreader would previously keep calling other methods on it, which would
make crengine segfaults. We now check loadDocument success at the
various places it is called, and try to deal the best way we can when it fails.
2018-01-03 09:43:49 +01:00
TnS-hun
15ec47d7e0 cbt support (#3533) (#3554) 2017-12-21 22:22:04 +01:00
TnS-hun
89164dcbd7 MuPDF 1.12 (#3547)
* addMarkupAnnotation expects a float array

* Use the latest from koreader-base with koreader/koreader-base#577

Closes #3519.
2017-12-20 15:16:13 +01:00
poire-z
cfa5c8a941 djvu: enable color rendering (#3361)
* djvu: enable color rendering

* Bump base
2017-10-15 13:03:42 +02:00
poire-z
561caadc5c Avoid recalculation of partial_md5_checksum at each opening (#3352)
This is done by/for kosync plugin at each opening, because
the docsettings was re-opened and saved for this, but later
overwritten by the current koreader docsettings - so it was
redone each time. This correctly adds this partial_md5_checksum
to the current koreader docsettings, which will be saved on
document closing - so it will not be redone next time.
Note: this partial_md5_checksum is not (yet) used by anything.
2017-10-13 19:18:36 +02:00
poire-z
26def92983 credocument reader optimisation (avoid multiple TOC builds) (#3292)
Avoid unnecessary work in ReaderView:onSetViewMode() and
ReaderRolling:updatePos() that would result in TOC being reset
and rebuilt (which can take time on books with huge TOC) during
reader setup.
2017-10-03 00:31:14 +02:00
poire-z
53f083f516 Allow for toggling color rendering
New menu item in Screen submenu.
hasColorScreen enabled for SDL device.
2017-10-02 00:10:29 +02:00
poire-z
180f5755f4 Allow for colored rendering (#3276)
* Allow for colored rendering

Available with all engines (CRE, PDF, Images).
Needs to manually add setting: "color_rendering" = true

* Disable color for djvudocument

* Use Screen:isColorEnabled()

* Bump base
2017-10-01 00:16:38 +02:00
poire-z
75b7c4b524 Added Font Hinting toggle (#3182) 2017-09-08 17:38:51 +02:00
poire-z
c24d75f18c Fix use of default font with font-family: styles
Base bumped.
Previsouly, parts of document in <p style="font-family: serif">
would be rendered with the first font set, and would not
follow change of font (unline other texts without styles).
That was observable with Embedded Styles set to On, but is even
more noticiable with the new Embedded Fonts setting set to off.
2017-09-02 20:49:48 +02:00
poire-z
774d2345e0 Added Embedded Fonts config toggle
Just under the existing "Embedded Styles". Support for this
was already there in crengine, and interfacing is similar to
what is done with Embedded Styles.
2017-09-02 20:49:48 +02:00
poire-z
031df2ffee Added PicDocument:getCoverPageImage() and :getProps()
So an image file can have a cover in coverbrowser's display.
It also allows for an alternative viewer (ImageViewer widget)
when holding on file / View full size cover.
2017-08-20 19:59:15 +02:00
poire-z
64f699ba36 Store book metadata and nb of pages in new settings
They may already be available (with other statistics stuff) under
the 'stats' key, but not if Statistics plugin is disabled. As this
plugin may be migrated to SQLite, readerui and readerfooter will now
set two new properties: doc_props (containing all and only the metadata
returned by document:getDocumentProps()) and doc_pages (updated
by readerfooter on any display or font change).

PDF document: returns additional PDF properties: Keywords
and Subject (as Description).
2017-07-14 16:46:38 +02:00
Frans de Jonge
fa12f488e8 Fix garbled ImageWidget cache issues
Fixes #2805. Thanks to @poire-z, see https://github.com/koreader/koreader/issues/2805#issuecomment-296686695
2017-04-27 01:25:34 -07:00
poire-z
495accfec9 Reduce memory leaks when switching credocuments
CRE cache, hyphdict and fonts can be initialized only once
when first credocument is opened. Previously, they were
recreated for each document, and as previous instances were probably
not free'd, this caused memory leaks.
2017-04-26 22:36:02 +02:00
poire-z
76f6b49731 Fix crash with kopt semi-auto crop on blank page
When such blank page has only a few black pixels (dust), it would result in
a really small cropped area, than when scaled to fit screen, would cause a
crash with :
    ./ffi/mupdf.lua:63: could not allocate pixmap:
         malloc of array (451342 x 612558 bytes) failed (integer overflow) (1)
Fix similar to what is done in KoptInterface:getAutoBBox(): when cropped area too small,
fall back to whole page (or here: to user's manually set area).
2017-04-22 16:10:50 +02:00
Frans de Jonge
c847d628e1 Docs: cosmetic updates and additions
* Content from wiki had some cosmetic leftover glitches
* Added/adapted some docs for other modules
2017-04-12 11:27:22 -07:00
Frans de Jonge
a6ca0f9b55 CreDocument: add "md" (Markdown) to supported filetypes
Fixes #2632.
2017-04-02 15:07:46 -07:00
Frans de Jonge
eb641b6abc squash: mono-spaced font is necessary for ASCII-art type stuff
* reordered requires
2017-04-01 16:23:56 -07:00
Frans de Jonge
e5a3ecd3e5 CreDocument: disable fancy formatting by default
It does significantly more harm than good. It can be reenabled with a `txt_preformatted` setting if desired. Fixes #1607.
2017-04-01 16:23:56 -07:00
Hzj_jie
0b29e73e2e BatteryStat plugin and instruction of KoboLight plugin (#2643)
* Start battery stat plugin

* BatteryStat & kobolight

* Several minor improvements

* Remove a useless function

* flush settings

* Some review feedbacks

* Resolve review comments

* Remaining Minutes -> Remaining Hours

* Add dump_file

* typo

* realpath

* realpath on folder

* Remove useless os.time()

* Resolve review comments

* warning

* Add BatteryStat.debugging flag

* treat log as txt

* Minor improvement

* Charging hour should be positive

* Use warn instead of info

* onSuspend in Kobo

* Charging events for kobo and kindle

* More events

* dumpOrLog

* Warnings

* Typo

* More space

* Singleton

* slightly format change

* BatteryStat singleton

* Init

* Remove debugging flag

* sleeping percentage is still negative

* Read settings

* Do not need to change was_suspending and was_charging

* Typo

* Remove debugging flag

* Not charging should happen before suspend

* Resolve review comments

* was_suspend and was_charging should be updated each time in onCallback()
2017-03-23 23:36:15 -07:00
poire-z
112e6a46e4 Fix crash when holding on unsupported image 2017-03-19 17:22:02 -07:00
poire-z
d648d2b66c Added getImageFromPosition() and isXPointerInDocument()
Bump base (depends on koreader-base PR #470)
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
chrox
166aa52a24 move painting and drawing debug log to verbose 2016-08-12 17:47:35 +08:00
Zijie He
820a39c8f7 Update KOSyncClient 2016-08-10 10:42:51 -07:00
chrox
1d887f4fe1 book reading statistics for djvu documents 2016-07-15 23:00:46 +08:00
chrox
551857ce6e fix some luacheck warnings 2016-06-28 00:43:23 +08:00
Qingping Hou
fe6aaca47d Merge pull request #2083 from chrox/fix_2060
fix #2060 by handling blank search pattern
2016-06-15 00:25:40 -07:00
chrox
5bbcae954e fix #2060 by handling blank search pattern 2016-06-15 02:34:46 +08:00
chrox
5983050d79 PDF free zoom mode revisit
this should implement feature request of zoom mode for multi-columns
page in #501
This PR depends on koreader/koreader-base#435

How to use?
1. Tap the top left corner of a PDF/Djvu page to get into the flipping
mode
2. Double-tap on text block will zoom in to that column
3. Double-tap on any area will zoom out to an overview of the page
4. repeat step 2 to focus to another page block

How does it work?
1. We first find the mask of text blocks in the page. (Pic 1)
2. Then we intersect page boxes with user tap to form a page block. (Pic 2)
3. Finally we zoom the page to the page block and center current view to
that block. (Pic 3)
2016-06-15 02:05:09 +08:00
Qingping Hou
c22a3747d8 fix all the tests 2016-04-19 00:01:28 -07:00
Frans de Jonge
5638819f25 Removed a bunch of "successfully", replaced an ellipsis, and some deviant spellings of KOReader. 2016-04-16 12:37:08 +02:00
Qingping Hou
f48d9bd6d9 fix(readerfooter): marker ticks initialization 2016-03-18 23:24:51 -07:00
Qingping Hou
69f9ebd528 build: fix doc generation
also moved MD5 to koreader-base/ffi
2016-02-23 22:01:12 -08:00
Qingping Hou
e422842256 minor: a lot of luacheck fixes 2016-02-15 23:10:07 -08:00
Qingping Hou
59c17ef420 minor: more luacheck fixes 2016-02-15 01:33:48 -08:00
Qingping Hou
11ee8d6fcc refactor: use new KeyValuePage widget for displaying statistics 2016-02-14 21:54:17 -08:00
Alex Pletnev
fbf98ed920 #1710 FR: Add support of statistics plugin for pdf 2016-02-12 16:55:02 +02:00
chrox
54f5166254 add koptinterface spec 2015-10-07 22:42:12 +08:00
chrox
8b85cbf157 add support for password protected zip/cbz documents 2015-10-06 21:18:31 +08:00
chrox
f73f8916c0 fix #1569 use fit to page zoom cover image even in reflow mode 2015-10-04 00:36:16 +08:00
chrox
a60544b1ad Koreader Ubuntu-touch port
Currently only tested on Ubuntu-touch emulator with framework
ubuntu-sdk-14.10 for armhf.
The ubuntu-touch port is binary compatible with the Kobo port
major changes in this PR are:
1. rename the emulator device to sdl device since both the emulator
and the ubuntu-touch target use libsdl to handle input/output.
2. ubuntu-touch app has no write access to the installation dir so
all write-outs should be in a seperate dir definded in `datastorage`.
2015-10-03 14:48:51 +08:00
Huang Xin
d393fbb180 Merge pull request #1628 from apletnev/#1581
Add Statistic plugin (#1581 Amount of hours spent on a book)
2015-09-16 19:55:26 +08:00
Alexander Pletnev
52d821df00 Add Statistic plugin (#1581 Amount of hours spent on a book) 2015-09-07 20:06:17 +03:00
frankyifei
23c963ed15 replace Droidsansfallback with NotoSansCJK-Regular 2015-09-04 00:15:12 +09:30
chrox
34ea9ac574 add datastorage module to handle data directory on various platform
On kindle, kobo and pocketbook the data directory is the current
running directory but on Android the app is installed in system
defined location and users may have no access to that location.
The same circumstances should be true for the upcoming Koreader for
Ubuntu touch, so the data directory (in which tessdata, dictionaries,
global settings, persistant defaults and probably history data are
stored) could be stored in another place.
2015-06-15 16:56:27 +08:00
NiLuJe
3fdd90cf3b Fix a few Droid font paths 2015-04-27 22:19:11 +02:00
Qingping Hou
186673587e chore: fix some of the luacheck errors 2015-04-26 20:57:45 -04:00
chrox
c2924abac4 Fix OCR fails on native djvu pages
The page_width and page_height were always 600 and 800 before this patch
rendering the OCR engine confused.

This should fix #1379.
2015-03-31 10:31:02 +08:00
chrox
daeefff741 fix #1433 2015-03-12 16:31:12 +08:00
chrox
5c9a9198fb add Document:fastDigest method to calculate document hash without performance overhead 2015-03-02 14:55:16 +08:00
chrox
077517be0b add FONTDIR env variable
to support custom font directory for EPUB documents

Now Koreader could find fonts in the "fonts" directory in the USB root
directory of kindle, Kobo and PocketBook devices, thus no need to copy
fonts to "koreader/fonts" directory.
2015-01-25 16:52:04 +08: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
Hans-Werner Hilse
22697adf20 switch from scaleByDPI() to scaleBySize() 2014-11-23 12:13:32 +00:00
Hans-Werner Hilse
f9f97163e8 wait for background thread before free()ing koptcontext
This should prevent freeing resources that are actually in use in
a background thread.
2014-11-22 14:44:24 +00:00
chrox
b80dd1f966 add fulltext search for PDF documents 2014-11-17 17:58:44 +08:00
Hans-Werner Hilse
5af4ccb0c4 add support for GIF and PNG to picdocument provider
needs update to latest base
2014-11-17 10:23:06 +01:00
Andrey Golovizin
99eecde875 Use setStringProperty method to set hyphenation dictionary. 2014-11-15 12:22:47 +01:00
Tigran Aivazian
e5e50ed0f9 Fix 1169 by registering .txt.zip/.html.zip/.htm.zip formats 2014-11-14 12:25:02 +00:00
Hans-Werner Hilse
acf6641009 fix memory calculation for cache insert decision, simplify drawing/rendering 2014-11-12 15:53:08 +01:00
Hans-Werner Hilse
5a36e5427f fixes for picdocument
picdocument didn't use the document API correctly
2014-11-11 22:32:57 +01:00
chrox
8f5691d586 fix #968 by check the nullity of text range 2014-11-06 11:18:04 +08:00
chrox
bd0975896d add fulltext search for EPUB documents 2014-11-05 12:28:28 +08:00
Huang Xin
a300f1e981 Merge pull request #1076 from hwhw/hal
Hardware abstraction: refactoring
2014-11-05 08:36:16 +08:00
Andrey Golovizin
86c53f94e1 Make the suffix lowercase before comparing. 2014-11-04 19:56:11 +01:00
Andrey Golovizin
e66dbdda29 Add support for .fb2.zip files. 2014-11-04 19:11:29 +01:00
Andrey Golovizin
a08ac46e80 Move credocument before pdfdocument in the registry. 2014-11-04 18:57:09 +01:00
Andrey Golovizin
4eda3f5a17 Add support for files with multiple extensions (like .fb2.zip). 2014-11-04 18:56:19 +01: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
8c9751744e fix #1064 by adding timestamp of document in cache key
so that when document is modified the persistent cache will
be invalidated automatically because the cache key will not
be matched. There is no perfermance overhead here at all. We
even don't need to check the modification time of the cache item
on disk, because the name of the on disk cache is a md5sum of the
cacheitem key, now the filename of the cache files contains the
modification time information.
If the document is modified since one rendered page is cached to disk,
the cache key won't match the cache file. And the cache file will
be discarded without the need to open the cache file or to check
the modification time of the cache file itself.
2014-10-30 11:05:26 +08:00
chrox
c2726a8f62 save two blitbuffer memory allocations for crengine on each page turn
One for drawbuffer at CreDocument:drawCurrentView and another for
resizing of drawBuf at cre.drawCurrentPage.
2014-10-27 22:05:24 +08:00
Hans-Werner Hilse
0a74dc6072 add needed ffi module when saving annotations 2014-10-26 23:16:27 +01:00
chrox
2ff12af50c protected call of mupdf.renderImage 2014-10-23 13:49:35 +08:00
chrox
2050c0aa66 fix renderImage invocation 2014-10-21 17:22:20 +08:00
Hans-Werner Hilse
e0868826ad use new FFI based mupdf API
This will use the new API where the Lua/C interface was used before
and also drop usage of mupdfimg wrapper which is now implemented
within the mupdf interface
2014-10-20 16:49:10 +02:00
chrox
d30709edb0 add djvu render mode options in readermenu 2014-10-15 20:31:24 +08:00
chrox
b422eb90cc refactoring readerrolling
and fix lossing progress when switching screen mode
2014-10-10 18:14:33 +08:00
chrox
7142492e42 fix #959 2014-10-07 14:05:34 +08:00
chrox
2f2d9f1bf7 issue error directly when doc is malformated
This should popup a message saying "No reader engine for this file"
instead of a crash when document file is malformated.

This should fix #868.
2014-08-29 17:17:12 +08:00
chrox
132adf8e1b register opened document in documentregistry
so that when calling getCoverPageImage in screensaver mode
the document won't be opened again. This should avoid a lot of
problem such as messing up style and options described in #863.
2014-08-28 21:03:26 +08:00
chrox
b912200951 don't share info field in document
We may have multiple documents opened simultaneously, such as in
screensaver mode the current document is opened twice, it's better
to keep seperate info table for each document.

This should fix #858. When a credocument is opened for screensaver to
get the cover page, the total pages info is set to 1(strangely enough),
before this fix this total pages is shared with the reading document
so the progress bar will get a progress percentage well beyond 100% and
rendering the progress bar out of the boundering box as shown in #858.
2014-08-28 13:30:27 +08:00
chrox
fd9e3d57f3 fix performance issue of screensaver on Kobo
now loadDocument will not render the document and getCoverPageImage will
be much faster.
2014-08-28 13:22:38 +08:00
chrox
0bc3eadcae refactoring: use Document API getCoverPageImage to get cover image 2014-08-27 11:07:25 +08:00
chrox
092522b89d promote user to save PDF document after highlighting
This is a wordaround for #791.
2014-08-24 15:16:04 +08:00
chrox
7ce5c9c052 fix Droid Sans Fallback not registered to crengine 2014-08-23 22:46:41 +08:00
Qingping Hou
99f6298b28 Merge pull request #829 from chrox/master
markup annotation quadpoints should be defined in counterclockwise
2014-08-22 09:29:38 -07:00
chrox
7048ca971b add getCoverPageImage api for CreDocument 2014-08-22 21:32:03 +08:00
chrox
0c29b041fe markup annotation quadpoints should be defined in counterclockwise 2014-08-22 09:32:27 +08:00
chrox
507b989747 use pdfreader instead of crereader to handle zip files
Generally zip files are zipped pictures which should be
better handled in pdfreader.
2014-08-19 12:11:49 +08:00
chrox
b7c7287bab remove more global variables 2014-08-14 19:52:30 +08:00
chrox
38c75f8359 fix the first file in a zip is a directory will raise error in zipContentExt 2014-08-11 20:40:27 +08:00
chrox
a7fb8811f3 add floating punctuation toggler for EPUBs 2014-07-22 21:55:31 +08:00
chrox
120f18737e add advanced option forced_ocr to force ocring text 2014-07-17 22:32:20 +08:00
WS64
c1ecf23c2c Update credocument.lua 2014-07-15 12:17:19 +02:00
NiLuJe
5ebed6655b Use Noto instead of Droid, where appropriate. 2014-07-08 02:11:17 +02:00
chrox
bcd2c8e8f8 display 2 pages side-by-side in landscape for larger screen 2014-07-04 19:28:40 +08:00
chrox
9fc048ecfc considering visible page count in readerrolling
This should fix #660.
2014-07-03 17:54:35 +08:00
chrox
6cdfd322f1 update buildin font names 2014-07-02 22:47:24 +08:00
chrox
fd1bb86514 fix cannot get word box in last page of a chapter 2014-07-02 14:47:23 +08:00
chrox
53165e3c2a fix init hyphenation dictionaries 2014-06-17 21:48:07 +08:00
chrox
241d67e0ec revert zip file handler to crereader
It seems that fb2.zip is a conventional format for fb2 with compression
which cannot be handled properly by mupdf.
This should fix #642.
2014-06-16 19:47:03 +08:00
Qingping Hou
7ac5b419b5 refactor(doc): use ffi binding in picdocument 2014-06-16 02:21:49 -04:00
Paulo Matias
f04951e5dc Consider as corrupt a null-area bbox
Fixes crash with empty page_states
2014-06-11 00:17:16 -03:00
chrox
803e4e8600 font weight option should be persistent between launchings
This should fix #620.
2014-06-04 21:55:01 +08:00
chrox
5aa8eb52da add missing Blitbuffer since it's removed from global space 2014-06-02 23:49:00 +08:00
chrox
f507fd3709 various Android fix
now the android build has nearly the same features as the
Kindle/Kobo build. It's time for Android nightly build?
2014-05-29 16:07:40 +08:00
chrox
6fba40cc77 use mupdf to handle zipped image files 2014-05-25 22:28:17 +08:00
chrox
a8b7b2cdbd add base document init method to create new configurable for each document
this should fix configurables pollution when opening multiple documents
at the same time, e.g. when clipping page images in Evernote plugin.
2014-05-16 14:02:08 +08:00
chrox
17741e292b serialize cache when closing ReaderUI other than closing document 2014-05-15 19:41:10 +08:00
chrox
55734f6aaa export highlighted rect in scanned page to Evernote 2014-05-15 16:11:26 +08:00
chrox
3b1e05bb7f switch to setIntProperty api for setting page margins 2014-05-12 15:47:11 +08:00
chrox
6bf1a9d033 use setStringProperty method to set font face
This should fix #569.
2014-05-11 20:57:23 +08:00
chrox
e1527611c5 show a box indicator when tapping on a link
only for PDF/DJVU docs for now since there is no easy way
to get link box from crengine
2014-05-02 16:50:52 +08:00
chrox
30e6b3529b hide Nimbus fonts in font selecting dialog 2014-05-02 12:48:00 +08:00
chrox
775e5ea3b4 serialize the most recently used blitbuffer/koptcontext
to speedup koreader startup for PDF/DJVU documents
especially when reflowing
2014-04-30 23:24:47 +08:00
chrox
c6c4cbcab1 add dewatermark option for pdf/djvu documents 2014-04-07 00:22:47 +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
chrox
92219a1f1e cleanup: expand tab to 4 spaces 2014-03-13 21:52:43 +08:00
chrox
560444c168 add fallback_font option in G_reader_settings 2014-03-10 22:06:17 +08:00
chrox
0eee130f5a clipping page bbox 2014-02-16 19:49:18 +08:00
chrox
9f507e6447 add 'full/mini' options for progress bar of crereader 2014-02-12 15:43:52 +08:00
chrox
b42b4ed204 save highlight to pdf document 2014-02-09 17:51:40 +08:00
chrox
22c437c393 fix init koptcontext with all zero bbox 2014-01-23 19:35:45 +08:00
chrox
8abd8a8a1f loading KoptInterface only in pdf and djvu reader
This will save 4MB RAM in crereader which otherwise will load
liblept.so.3 and libk2pdfopt.so.2 automatically for nothing.
2014-01-22 18:34:55 +08:00
chrox
bfff863861 fix cannot highlight hyphenated words in crereader 2014-01-22 17:25:03 +08:00
Paulo Matias
c55d5e025e Avoid crash on backends which don't define getLinkFromPosition 2014-01-21 10:28:04 -02:00
chrox
d24d5e413e add following page link in reflowed page 2014-01-21 11:59:17 +08:00
chrox
9e3e070522 check link on the fly when tapping 2014-01-20 20:41:15 +08:00
Paulo Matias
dacd3d2acb Fix crash trying to select text in an empty page 2014-01-19 01:03:28 -02:00
chrox
e947f83548 fix dogear not shown properly in crereader 2014-01-18 19:18:12 +08:00
chrox
ce3b58538c fix no getPageLinks method in djvudocument 2014-01-18 15:31:27 +08:00
chrox
34e28d28e6 page links for crereader and pdfreader
Swipe right will return to previous page or position.
2014-01-18 15:04:28 +08:00
chrox
637904a711 add text highlight for credocument
Three highlight drawers "lighten", "underscore" and "invert" are
available in reader menu.
This should implement #176.
2014-01-18 03:11:04 +08:00
chrox
3275413366 add missing registry for fb2 document 2014-01-16 12:54:49 +08:00
chrox
1329f10fa5 add goto link function for CreDocument 2014-01-15 23:36:56 +08:00
chrox
a6e885e77d show battery icon in crereader page header 2014-01-04 22:30:36 +08:00
chrox
865815b42b set visible page count when loading document 2014-01-03 19:35:45 +08:00
chrox
23982b185e add debug information in credocument api 2014-01-03 11:10:06 +08:00
chrox
210293b561 add floating punctuation option for crereader
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.
2014-01-03 02:07:32 +08:00
chrox
eaa9535133 move logMemoryUsage from koptinterface to document 2014-01-02 19:19:03 +08:00
chrox
14e94f39a4 explicitly call free method of Blitbuffer 2014-01-02 19:03:52 +08:00
chrox
8e4516b824 add regional zoom mode in pdf/djvu page
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.
2014-01-02 11:14:26 +08:00
chrox
62e12ddfba import document module on-demand 2013-12-31 13:12:56 +08:00
chrox
f7387822aa handle xps files in pdfdocument backend 2013-12-29 15:52:44 +08:00
chrox
3b9eaafadd add dictionary lookup in crereader 2013-12-25 01:43:28 +08:00
chrox
7247a9e3a2 add writing direction option when reflowing
This probably will fix #195.
2013-12-22 19:13:12 +08:00
chrox
2fd66e1fa3 typo fix 2013-12-04 22:17:05 +08:00
chrox
84ad0f2307 fix null export highlight in reflowed mode 2013-11-30 21:17:13 +08:00
chrox
71cb2d3f93 fix looking up wrong word in reflowed page
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.
2013-11-30 18:18:16 +08:00
chrox
5bf56cbf4c check position nullity in getTextFromBoxes 2013-10-28 21:49:54 +08:00
chrox
2590cc7ca5 highlight text from scratch instead of reusing rectmaps in reflowing mode 2013-10-25 13:22:49 +08:00
chrox
184a6f5d21 highlight word from scratch instead of reusing rectmaps in reflowing mode
Totally revert the OCR in reflowed page to build 545.
And this should fix #309.
2013-10-24 23:45:09 +08:00
chrox
90d55cbde4 set auto detect word gap in reflowing by default 2013-10-24 23:45:09 +08:00
chrox
4cfdce6105 fix several local calls of Math.round 2013-10-23 22:37:55 +08:00
HW
09cd5c4104 Make DEBUG a require()d local 2013-10-22 20:51:29 +02:00
HW
748a443cd5 Merge remote-tracking branch 'upstream/master'
resolved conflicts with refactored structure
2013-10-22 17:19:08 +02:00
HW
2154e7e852 Further refactoring
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).
2013-10-22 17:11:31 +02:00
HW
ef111b99c6 Refactored to use strictly locals 2013-10-18 22:38:07 +02:00
Qingping Hou
bc91b932d1 style cleanup in document.lua 2013-10-17 17:37:53 -04:00
Qingping Hou
a59723c053 add pic document type 2013-10-17 17:35:05 -04:00
Qingping Hou
10bf048d77 move configurable to Document class
since every document type is depend on it now
2013-10-17 17:28:20 -04:00
chrox
c86bb46ef7 add gotoLocation for credocument 2013-10-17 23:53:29 +08:00
chrox
506dbed865 save cre3.ini on closing each credocument
and page margin settings will be restored before rendering.
This patch should fix #299.
2013-10-16 23:21:20 +08:00
chrox
32ffacdf77 adjust font sizes in credocument according to screen dpi
and font sizes list is moved to defaults.lua
2013-10-16 17:06:28 +08:00
chrox
9f42289226 use pixels from reflowed page when doing OCR in reflowing mode
I hope it will get back OCR accuracy as in build 545.
2013-10-14 23:06:05 +08:00
chrox
2cd5a083ae fix getAutoBBox failed bug
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.
2013-10-14 14:21:08 +08:00
chrox
1ee6d5a9c5 add DEBUGBT function to traceback certain location 2013-10-13 21:59:24 +08:00
chrox
39da1251ec free blitbuffer as soon as tile is kicked out from cache
other than waiting for the lazy garbage collector of lua
2013-10-13 15:30:48 +08:00
chrox
4660a3532b synchronize hightlights in non-/reflowing modes
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.
2013-10-12 23:07:13 +08:00
chrox
ffd31613a5 estimate cache size of koptcontext
This should fix #285.
2013-09-26 14:51:33 +08:00
chrox
f2cf10a015 refactoring koptcontext creation function 2013-09-14 12:56:10 +08:00
Qingping Hou
a8a589c27b only set two pages mode for crengine in kindle dxg 2013-07-28 02:35:46 -04:00
chrox
aefb58f5bf bugfix: fix invalid auto page cropping 2013-07-20 02:51:17 +08:00
chrox
1808c7e5c3 add document language option in config dialog
Document language setting is used for better text extraction and OCR.
2013-07-20 02:46:51 +08:00
chrox
2e5d2b9930 add semi-auto bbox option in page crop dialog 2013-07-13 11:18:49 +08:00
{Qingping,Dave} Hou
c423c031b3 Merge pull request #146 from chrox/master
semi-automatic bbox finding
2013-07-09 21:16:18 -07:00
chrox
9cb9999865 semi-automatic bbox finding
Semi-automatic cropping is implemented with a initial
manual cropping that exclude the obvious decorating line or
the spine part in scanned books and then an automatic cropping
ie. background/foreground pixel detection restricted within
the manual cropping area.
This PR is a candidate for the solution of issue #141.
2013-07-09 19:15:45 +08:00
Giorgio Micotti
98a2e50652 Add cbz to the supported extensions of pdf viewer. 2013-07-09 12:32:21 +02:00
Deyuan Deng
9528f4a95b when open document, check if provider is nil 2013-07-08 23:17:06 -07:00
Qingping Hou
18122fe067 add defaults.lua 2013-07-01 02:41:33 -04:00
chrox
94526fa26d add page margin options in CREOptions 2013-06-28 17:12:04 +08:00
chrox
7c78e83e49 add hightlight/dictionary lookup in scanned pdf/djvu 2013-05-01 23:43:53 +08:00
chrox
cb873ee528 init/free OCR engine when necessary 2013-04-30 13:52:10 +08:00
chrox
1a8bd4ca8c try to drop cache before OCR 2013-04-27 17:48:59 +08:00
chrox
936dfc6fd1 add text highlight in both reflow and non-reflow mode 2013-04-24 06:59:52 +08:00
Qingping Hou
1783b16d69 credoc fix: load metadata info after document is rendered 2013-04-21 05:54:20 +08:00
chrox
ac548d768c don't bother to consume background context
since now each context is independent and has its own dst bitmap.
2013-04-20 16:12:43 +08:00
chrox
fb05f9a428 add auto page crop 2013-04-14 15:16:42 +08:00
chrox
22b650d0c7 move kopt/cre options into ui/data directory & wrap strings in config options 2013-04-08 22:26:54 +08:00
Qingping Hou
09e1c0af06 add gettext to document modules 2013-04-08 15:38:04 +08:00
Qingping Hou
f12ff20c37 discard bbox with zero area 2013-04-03 13:03:55 +08:00
chrox
b2c23c6f4f cleanup: use lowercase option name && better reflow for vertical text 2013-03-19 21:57:30 +08:00
chrox
607c4baf2e add fine tuning of font size in koptinterface 2013-03-19 21:36:11 +08:00
Qingping Hou
c5ff50abdf remove trailing spaces 2013-03-13 10:43:15 +08:00
chrox
ef68ccebfe add background hinting in koptinterface 2013-03-12 20:26:02 +08:00
chrox
591a27ddfe log reflow duration for benchmarking 2013-03-11 16:24:27 +08:00
chrox
a2dc5e00a2 bugfix: reset page scroll states when switching reflow on/off 2013-03-10 14:27:42 +08:00
chrox
63e5e7e577 add scroll mode for pdf/djvu reader 2013-03-10 14:23:26 +08:00
chrox
6561475cf7 return bbox immediately to save several CPU cycles 2013-03-10 13:15:00 +08:00
chrox
8c01b59776 clamp used bbox to page dimension 2013-03-05 16:50:04 +08:00
chrox
87eec1b539 save/restore view mode and embedded css mode 2013-03-04 23:23:37 +08:00
chrox
4c1fc6be5c make larger default page margin 2013-02-25 22:18:31 +08:00
chrox
86a65003d1 set manual cropping if bbox exists 2013-02-25 21:29:41 +08:00
chrox
c5b4d958bb add reading progress bar at the bottom of ReaderView for pdf/djvu reader
And there is also a toggle full screen option to turn on/off the progress bar.
2013-02-24 02:25:57 +08:00
chrox
14bcec4b81 remove arguments of RestoreZoomMode events defined in KoptOptions
Now zoom mode restoration is handled by ReaderKoptListener
2013-02-20 19:29:14 +08:00
chrox
9efdefb22f add gamma correction for pdf/djvu reader 2013-02-20 14:32:51 +08:00
chrox
df7f7714e4 remove default options in KoptOptions and CreOptions 2013-02-20 13:01:52 +08:00
{Qingping,Dave} Hou
e6e561ce52 Merge pull request #760 from chrox/restore_zoom_mode
restore zoom mode when toggling reflow on/off
2013-02-19 07:11:20 -08:00
chrox
666bb3d8ae restore zoom mode when toggling reflow on/off 2013-02-19 19:16:42 +08:00
chrox
78f8ca9029 cleanup: remove debug info on bbox 2013-02-19 13:28:04 +08:00
Qingping Hou
f3452234ea add math.lua, move all math related helpers in to it 2013-02-19 11:57:14 +08:00
chrox
c53f866a93 cleanup: use screen size in page hash explicitly 2013-02-12 01:15:19 +08:00
chrox
7af80f63f6 check screen mode in koptinterface 2013-02-11 00:51:55 +08:00
chrox
1f511757c5 bugfix: calculate current config value or arg at runtime 2013-02-10 20:52:44 +08:00
{Qingping,Dave} Hou
85b4d60efc Merge pull request #735 from chrox/ui-tweaks
set menu font size according to screen dpi
2013-02-05 19:40:54 -08:00
chrox
21c972a786 hide DPI dependency in Font module 2013-02-05 18:15:45 +08:00
Qingping Hou
ae6c4bd03a Merge branch 'new_ui_code' of github.com:hwhw/kindlepdfviewer into rotate
Conflicts:
	frontend/ui/reader/readerconfig.lua
2013-02-04 15:00:17 +08:00
chrox
0ed5d05bc0 hash current bbox explicitly 2013-02-03 22:58:30 +08:00
chrox
4675a220d8 add current bbox in page rendering hash
So that changing bbox could take effect on current page.
2013-02-03 21:36:11 +08:00
Qingping Hou
f91c913530 set default_arg for screen_mode option on runtime 2013-02-03 13:17:02 +08:00
Qingping Hou
0dba667937 rename setScreenViewMode to setScreenMode 2013-02-03 13:13:46 +08:00
Qingping Hou
03b73712bc Merge branch 'new_ui_code' of github.com:hwhw/kindlepdfviewer into rotate
Conflicts:
	frontend/document/koptinterface.lua
2013-02-03 12:34:55 +08:00
chrox
1be80d15ae code cleanup 2013-02-03 11:28:50 +08:00
chrox
1c40d127cd add icon option items in config dialog 2013-02-03 11:26:14 +08:00
chrox
25bcbfa53a set menu font size according to screen dpi 2013-02-03 05:16:19 +08:00
chrox
a1aa41136c add manual page crop for pdf/djvu documents 2013-02-03 04:42:59 +08:00
Qingping Hou
2d9534e092 add screen rotate to readerconfig 2013-02-02 17:02:36 +08:00
chrox
563fd50dc3 add toggle switch widget in config option 2013-01-25 23:53:00 +08:00
Qingping Hou
6d8ebb4126 adapt credocument to new changes in cre.cpp 2013-01-22 06:27:22 +08:00
Qingping Hou
65910b2017 add default_css to credocument 2013-01-17 17:12:20 -05:00
Qingping Hou
6c4da43dbf add setStyleSheet method to credocument 2013-01-17 16:59:40 -05:00
{Qingping,Dave} Hou
55b2d4f993 Merge pull request #714 from chrox/config_ui
some config UI changes
2013-01-15 13:39:26 -08:00
chrox
494585ce41 rename 'screen rotation' option in koptinterface to 'vertical text' 2013-01-15 19:53:57 +08:00