Commit graph

148 commits

Author SHA1 Message Date
Slava Monich
ee5a949d41 [app] Speed up book loading by caching page marks 2018-01-30 01:41:57 +02:00
Slava Monich
2082fbc09d [app] BooksShelf now automatically moves itself to the main thread
So does BooksBook
2018-01-30 00:28:11 +02:00
Slava Monich
ca38e3cd92 [app] Added hash attribute to BooksBook 2018-01-30 00:27:40 +02:00
Slava Monich
ed219c1af1 [app] Moved hashing utilities to BooksUtil 2018-01-30 00:26:06 +02:00
Slava Monich
26510f1d9e [app] A few BooksTask tweaks
1. Added QThread attribute to the constructor
2. Made isCanceled() public
2018-01-30 00:24:17 +02:00
Slava Monich
4f293dd7ff [app] Added BooksPos::List::fromVariant() and toVariantList()
Also moved BooksPos::fromVariant() and toVariant() to the .cpp file.
They seem to be a bit too large for inline functions.
2018-01-28 02:00:07 +02:00
Slava Monich
209280a3e4 [app] Memory map the book to calculate its hash
It's more efficient
2018-01-27 01:55:36 +02:00
Slava Monich
feffa61273 [app] Corrected page stack behaviour
It couldn't push the same position that was just popped.

Also, some countChanged signals were not being deferred - it
was probably not intentional, at least I couldn't remember why
it was done like that. Let all countChanged signals be deferred.
2018-01-20 13:36:01 +02:00
Slava Monich
7a7067869d [fbreader] Fixed FB2 footnotes
FB2 reader strips the leading hash sign from href, XHTML wasn't doing it.
Unified their behavior.
2018-01-20 02:43:05 +02:00
Slava Monich
02d86ffa67 [app] Use HarbourPluginLoader from HarbourLib 2017-12-04 01:37:33 +03:00
Slava Monich
b16f5e986b [app] Provide haptic feedback on entering/leaving selection mode 2017-12-03 16:23:25 +03:00
Slava Monich
2aa3b9e568 [app] Fixed check for null image in setClipboardImage 2017-10-10 00:52:59 +03:00
Slava Monich
2295ebfb7f [app] Added "Select all" pulley menu item to the import view 2017-09-07 23:46:52 +03:00
Slava Monich
89775f269e [app] Implemented text selection (whole words)
The selected text is getting copied to clipboard.
2017-09-07 19:03:17 +03:00
Slava Monich
a48fe1d0e4 [app] Added BooksTask::isStarted() method
Allows the owner of the task to check whether the task has actually
started to execute. This is a one-way flag, not synchronized (and
doesn't need to be).
2017-09-07 18:25:56 +03:00
Slava Monich
a1adc666aa [app] Always use the default clipboard
Also, make sure that the QClipboard methods are invoked on the main thread.
2017-09-07 18:21:08 +03:00
Slava Monich
48cb24f8a1 [app] Fixed the behavior of the position stack
It didn't do the right thing when it reached the depth limit.
2017-09-07 18:10:11 +03:00
Slava Monich
0e8d758879 Turn pages with volume keys
And allow to configure volume key actions.
2017-08-08 16:19:30 +03:00
Slava Monich
9ac726c523 Implemented history (position stack)
Allows the user to return back after selecting a cross-page link
2017-08-03 18:48:17 +03:00
Slava Monich
d0051015c1 [app] Fixed Qt 5.6 compilation 2017-04-24 13:02:59 +03:00
Slava Monich
4ac2d2a4d6 Reduced verbosity of the debug log 2017-01-29 23:56:23 +02:00
Slava Monich
77be4b68e8 [app] Workaround for positionViewAtIndex not working for the first time
This is probably a bug in QQuickListView - it first calculates the
item position and then starts instantiating the delegates. The very
first time the item position always turns out to be zero because the
average item size isn't known yet. So if we are trying to position the
list at a non-zero index and instead we got positioned at zero, try it
again.
2016-11-24 20:02:53 +02:00
Slava Monich
32013a8ac5 [app] Added BooksPos::toString() method 2016-11-24 17:49:54 +02:00
Slava Monich
1a8aad3139 [app] Added positionViewAtIndex method to BooksListWatcher
It allows to avoid binding loops
2016-11-24 14:18:59 +02:00
Slava Monich
3ffcd7cdf2 [app] Housekeeping 2016-11-06 21:52:09 +03:00
Slava Monich
3fbe9561be [app] BooksListWatcher should emit sizeChanged when view is assigned 2016-11-02 23:52:40 +03:00
Slava Monich
e3b0e1c453 [app] Support for footnotes 2016-11-02 19:51:34 +03:00
Slava Monich
8169b31531 [app] Fixed the problem with the font size adjustment being ignored
Per-book font size adjustment was essentially ignored until the font
size is changed for the first time.
2016-10-30 01:07:20 +03:00
Slava Monich
af9271dff5 [app] Made root directory configurable for removable storage
The dconf entry is /apps/harbour-books/removableRoot
2016-10-23 20:17:13 +03:00
Slava Monich
1d4fdeaea9 [app] Fixed beginResetModel/endInsertRows mismatch in BooksImportModel 2016-10-17 02:02:37 +03:00
Slava Monich
0f492594c7 [app] Slightly refactored BooksSettings
Internal stuff has been moved inside, leaving only interfaces in the header
2016-10-17 00:48:25 +03:00
Slava Monich
caf858b581 [app] Use shared instance of BooksSettings 2016-10-16 23:36:13 +03:00
Slava Monich
b2d01710e8 [app] Support for internal hyperlinks 2016-10-16 20:07:03 +03:00
Slava Monich
cd3194e1a2 [app] Improved link detection
The previous one was detecting any tap after the link within the
paragraph as a tap on the link. That's wrong. You have to hit the
link between its start and the end, otherwise it's a miss.
2016-10-15 13:27:43 +03:00
Slava Monich
13c3c73004 [app] Make sure that book path is mixed into the image id
That fixes the problem with different books having images with
the same ids.
2016-10-09 12:50:37 +03:00
Slava Monich
1cdafb5fd0 [app] Tweaking image view transitions 2016-10-08 23:36:28 +03:00
Slava Monich
4c918861d0 [app] Zoom images on long tap 2016-10-08 20:16:08 +03:00
Slava Monich
c15d6b840d [app] Open external links on long tap 2016-10-08 19:41:27 +03:00
Slava Monich
44e40dbb3a [app] Added ~/android_storage/Download to the search path 2016-10-07 19:52:15 +03:00
Slava Monich
d8964ee8b1 [app] Allow to fix orientation 2016-10-07 19:40:18 +03:00
Slava Monich
5be7de14ba [app] Prefixed all string ids with harbour-books- 2016-10-07 18:47:27 +03:00
Slava Monich
833775f0b0 [app] Added settings page 2016-10-07 17:57:08 +03:00
Slava Monich
fcdf92acc5 [app] Even better way to determine screen DPI. 2016-07-27 12:34:15 +03:00
Slava Monich
ca2f50cb4b [app] Restore current folder at startup 2016-06-23 18:34:13 +03:00
Slava Monich
34f8070d8d [app] Fixed OBS build 2016-02-21 14:53:45 +03:00
Slava Monich
40bfd59dc5 [app] Added -d option that turns on built-in fbreader trace
for example, -d epub
2016-02-21 13:48:07 +03:00
Slava Monich
e3fc9982c6 [app] Fixed ZLibrary::ourApplicationDirectory
It wasn't pointing where FBReader code was expecting it to point.
Particularly, FBReader wasn't finding format-specific XML entities.
2015-12-14 12:18:22 +03:00
Slava Monich
58d0927e82 [app] Implemented per-book font size
The global font size setting still exists, per-book value is the adjustment
relative to the default value.
2015-12-13 14:46:53 +03:00
Slava Monich
c95bb79aa2 [app] Tweaking book copy 2015-12-12 12:38:26 +03:00
Slava Monich
84b9b77523 [app] Show progress indicator when copying the book 2015-12-03 01:00:45 +02:00
Slava Monich
272a45279c [app] Preparing to support copying folders 2015-12-02 23:38:16 +02:00
Slava Monich
2f435649b7 [app] Removed unnecessary slash from the state file name
Doesn't really matter, purely cosmetic change
2015-12-01 18:59:17 +02:00
Slava Monich
34fb489107 [app] Reworked support for folder renaming
The actual renaming is easier to do in BooksShelf rather than BooksPathModel
and it generally makes more sense.

Editing now also starts after long-pressing the title of the current folder.
2015-12-01 00:00:56 +02:00
Slava Monich
9f1261a822 [app] Added BooksSaveTimer::saveNow() method 2015-11-30 23:18:53 +02:00
Slava Monich
57204d3cc4 [app] Implemented folder renaming 2015-11-30 17:57:27 +02:00
Slava Monich
8a4e131452 [app] Tweaking folder UI 2015-11-29 23:18:09 +02:00
Slava Monich
89f79e2492 [app] Added limited support for folders
UI doesn't allow creating or renaming the folders yet and there's
no easy way to move books between folders, but if folders are there,
they will be shown and the user will be able to navigate between them.

Folders can be deleted though.
2015-11-08 14:20:25 +03:00
Slava Monich
ef19a5c2e7 [app] Better guess at screen DPI 2015-11-05 01:04:55 +03:00
Slava Monich
3ebb82b208 [app] Housekeeping 2015-11-05 01:03:49 +03:00
Slava Monich
512c698fd1 [app] Only show the cancel button when actually loading the book 2015-11-03 01:33:58 +03:00
Slava Monich
63c2ea50a3 [app] Fixed cover model filtering 2015-09-12 16:09:05 +03:00
Slava Monich
7d891bfd45 [app] Set window title 2015-08-26 13:24:51 +03:00
Slava Monich
a56349fe11 [app] Tell the user when we are applying new fonts
"Loading..." message may be misleading as the book is already loaded.
2015-08-24 13:23:24 +03:00
Slava Monich
c90983070c [app] Moved font controls from pulley menu to toolbar
Tool icon replaces double-click as the night/day mode switch.
2015-08-23 14:47:25 +03:00
Slava Monich
de7028bf5a [fbreader] Enabled thread-local plain file stream cache 2015-08-21 15:18:07 +03:00
Slava Monich
36a1bcad0c [app] Allow larger fonts 2015-08-21 00:10:42 +03:00
Slava Monich
87ebcecd28 [app] Store the current directory in dconf, not just the mountpoint
This will play better with the folder support when it gets implemented.
2015-08-19 18:18:25 +03:00
Slava Monich
450156f2b8 [app] Select the last used storage at startup 2015-08-19 00:37:22 +03:00
Slava Monich
7042dbff79 [app] Set context properties prior to loading QML 2015-08-18 17:37:34 +03:00
Slava Monich
97ce479c50 [fbreader] Added support for text color
Specified with CSS color attribute
2015-08-11 13:53:21 +03:00
Slava Monich
c6e46b94a2 [fbreader] Refactored CSS and XHTML support
This significantly improves EPUB rendering.
2015-08-09 00:54:38 +03:00
Slava Monich
44a7fe7553 [app] Fixed saving the shelf position for zipped books 2015-07-23 01:30:30 +02:00
Slava Monich
135f196868 [app] Show number of scanned files to entertain the user 2015-07-16 23:51:57 +03:00
Slava Monich
1750361a7b [app] Fixed OBS build 2015-07-16 23:19:39 +03:00
Slava Monich
481d42d616 [app] Store book's MD-5 hash as xattr if the filesystem allows it
This significantly speeds up the process of scanning downloads for
new books. The attribute name is "user.harbour-books.md5-hash"
2015-07-16 00:01:04 +03:00
Slava Monich
b108c25f25 [app] Add support for loading books from compressed files 2015-07-15 22:59:00 +03:00
Slava Monich
af87d79ceb [app] Added left swipe hint 2015-07-12 18:50:12 +03:00
Slava Monich
c47ab22077 [app] Access to BooksShelf storage object from QML 2015-07-12 15:57:42 +03:00
Slava Monich
3b66d8dcbc Fixed Mer OBS build 2015-07-11 13:28:44 +03:00
Slava Monich
213828811c Fixed a few issues with re-paging after rotation
The situation when device is rotated before the current paging task
has completed wasn't handled correctly. E.g. current book position
wasn't restored after rotating the device back, page count in the
progress indicator wasn't restarted etc.
2015-07-11 04:56:38 +03:00
Slava Monich
d6cacd2fd1 Invert colors on double-click 2015-07-11 01:35:13 +03:00
Slava Monich
a7e40b8d34 Align text to the left by default 2015-07-07 18:07:14 +03:00
Slava Monich
4ab57a9a45 Moved library stubs into a separate directory 2015-07-07 13:11:16 +03:00
Slava Monich
11f516e8fa Implemented ZLUnixFSManager::mimeType 2015-07-07 13:05:12 +03:00
Slava Monich
7a975c122a Export main for booster 2015-07-06 22:26:58 +03:00
Slava Monich
40b3051801 Avoid unnecessary repaints in BooksPageWidget 2015-07-06 22:16:29 +03:00
Slava Monich
1d524ceafb When the book is moved, move the custom image as well
Right now the image gets re-coded which isn't perfect but it's better
than nothing.
2015-07-06 19:26:56 +03:00
Slava Monich
e92df4c0a3 Fixed move between the shelves 2015-07-06 19:07:27 +03:00
Slava Monich
cc6729f440 Fixed task object leaks 2015-07-06 18:21:29 +03:00
Slava Monich
dfe56dcfc1 Don't reset the cover image until scaling is done 2015-07-06 17:46:41 +03:00
Slava Monich
54247bb4d0 Books -> Documents/Books for the internal storage
To safisfy Jolla harbour requirements
2015-07-06 17:16:17 +03:00
Slava Monich
219949f588 Improved position selection after rotation 2015-07-04 02:38:12 +03:00
Slava Monich
758e91dd6c Corrected "loading" property for the page widget 2015-07-03 17:24:59 +03:00
Slava Monich
752c8b1dd7 Fixed repaining after orientation change 2015-07-03 17:24:20 +03:00
Slava Monich
fd0852a60d Don't wait longer than 10 sec for the task thread to terminate
If the current task is stuck for too long after being canceled it's probably
stuck forever. Let "too long" be 10 seconds. And let it get stuck forever in
debug build only.
2015-07-02 15:25:07 +03:00
Slava Monich
22884ccdf3 Eliminated hard dependency on expat 2015-06-28 22:28:54 +03:00
Slava Monich
9c910a90c2 Fixed compilation warnings in release build 2015-06-28 14:49:54 +03:00
Slava Monich
e9db1e773a Sailfish integration 2015-06-28 14:22:35 +03:00