Commit graph

301 commits

Author SHA1 Message Date
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
3325aad1b2 [app] Eliminated unnecessary QML object creation 2018-01-20 13:49:51 +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
f699d3cb34 [app] Added "Copied to clipboard" pop-up notification 2017-12-04 01:24:39 +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
Åke Engelbrektson
35d9a674db Update harbour-books-sv.ts 2017-08-09 15:38:46 +02: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
1ca5fb3653 Added UI state with pager but without tools 2017-08-03 21:48:27 +03:00
Slava Monich
bd403f44c9 Hide history controls if there's no history
Also, long-press on the history arrow clears the history
2017-08-03 21:24:03 +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
59f49be0c3 Specify slider animation duration in addition to velocity 2017-08-03 18:41:59 +03:00
Slava Monich
8344963cc9 Tweaking tool icons 2017-08-03 16:19:51 +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
ca2afa3dec [app] Fixed a problem with generation of .qm files 2017-01-28 18:25:31 +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
Åke Engelbrektson
9a9e5a5006 Update harbour-books-sv.ts 2016-10-24 04:57:21 +02:00
Slava Monich
bbeac12891 [app] Tweaking Russian translations 2016-10-23 20:18:59 +03:00
Slava Monich
417bf0371e [app] Made books folder on the memory card configurable 2016-10-23 20:17:40 +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
55b47f18f2 [app] Took out unused slider code 2016-10-16 22:41:29 +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
01c9f0744b [app] Fixed condition for BooksBookView being interactive 2016-10-15 13:16:06 +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
1c7c897909 [app] Housekeeping 2016-10-08 14:55:20 +03:00
Slava Monich
0a42d93e14 [app] Fixed the problem with the initial slider position 2016-10-08 01:09:57 +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
fd0724aa90 [app] Fixed wrapping of "No books" label 2016-07-27 23:25:20 +03:00
Slava Monich
fcdf92acc5 [app] Even better way to determine screen DPI. 2016-07-27 12:34:15 +03:00
Slava Monich
43d54a8a20 [app] Fixed truncation of long folder names 2016-06-25 00:35:15 +03:00
Slava Monich
ca2f50cb4b [app] Restore current folder at startup 2016-06-23 18:34:13 +03:00
Heiko Bauke
0a4f909b97 fixed wrong language declaration 2016-04-18 14:54:18 +02:00
Heiko Bauke
80750b4f86 fixed double "CONFIG += sailfishapp" 2016-04-18 09:37:30 +02:00
Heiko Bauke
a4b7c45f8b revert changes in habour-books.spec 2016-04-17 02:05:34 +02:00
Heiko Bauke
a319ba6008 German localization 2016-04-16 23:01:17 +02:00
Slava Monich
138e7f2068 [app] Optimize BooksShelfItem
Use Loader to instantiate components on demand
2016-03-16 01:31:33 +02:00
Slava Monich
0220a2c79a [app] Tweaking the "Loading..." screen 2016-02-21 15:13:40 +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
c9ec2cb51e [stubs] Added XML_SetHashSalt stub
It't required to fix the problem created by the fix for CVE-2012-0876
This is a great example of a solution that creates more problems than
it solves.
2015-12-14 12:23:12 +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
7ab1b72343 [app] Changed "-a" icon alignment 2015-12-12 17:33:24 +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
08c0904a84 [app] Fixed the problem with the initial focus
If the first press isn't ignored by the drag area then the first flick
won't work. The problem has something to do with this drag area as
everything works fine if the drag area is removed. Couldn't figure out
what exactly the problem was and what's wrong with the initial focus,
but this hack makes things work.
2015-12-01 19:10:31 +02:00
Slava Monich
26e651a932 [app] Tweaking BooksShelfView
It doesn't need to be flickable. Also, re-parented BooksDragArea
2015-12-01 19:00:55 +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
a89e489f7a [app] Fixed criteria of a valid folder name 2015-11-30 23:17:43 +02:00
Slava Monich
ed218a6f03 [app] Added translation for "Enter folder name" 2015-11-30 18:29:37 +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
98b269d405 [app] Use busy indicator of medium size for bookshelf item 2015-11-05 00:40:29 +03:00
Slava Monich
fe7f81e353 [app] Updated Finnish translation for book-view-formatting 2015-11-03 15:48:28 +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
53f7693ced [app] Workaround for Qt crash
Qt was crashing when user was swiping over hidden cancel button.
Making button invisible helps to avoid the crash.
2015-10-31 00:04:04 +03:00
Slava Monich
312dbff58c [app] Don't mess with the Button width 2015-10-21 13:57:38 +03:00
Slava Monich
01e9c614a0 [app] Fixed the "cancel load" button
Now it disappears after loading is done and becomes compatible with SFOS 1.1.7
2015-10-21 13:38:28 +03:00
Slava Monich
d82564509c [app] Package icons in a different way
Otherwise deployment from QtCreator may fail.
2015-10-21 13:31:48 +03:00
Slava Monich
eda98440cf [app] Added 108x108, 128x128 and 256x256 icons 2015-10-19 16:54:37 +03:00
Slava Monich
1fc46997eb [app] Fixed gcc 4.8 warning "iteration 1u invokes undefined behavior" 2015-10-15 17:24:24 +03:00
Åke Engelbrektson
d91d4c939b Update harbour-books-sv.ts
Correcting translation
2015-09-12 21:24:19 +02:00
Slava Monich
e00e5624f9 [app] Made it easier to cancel book loading
Also, show the book title at the top of the loading screen
2015-09-12 19:37:02 +03:00
Slava Monich
9f7c751e8d [app] Fade truncated title 2015-09-12 19:24:45 +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
4dbe01fed0 [app] Removed references to non-existent menu item 2015-08-24 12:27:49 +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
ae06b6f808 [app] Use constants defined by HarbourSystemState 2015-08-19 01:14:42 +03:00
Slava Monich
450156f2b8 [app] Select the last used storage at startup 2015-08-19 00:37:22 +03:00
Slava Monich
033f54492e [app] Use the same cover size in landscape and portrait 2015-08-18 21:06:46 +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
61adf35e4f [app] Tweaked default styles
Particularly, turned off italic for Code
2015-07-29 17:52:58 +03:00
Slava Monich
44a7fe7553 [app] Fixed saving the shelf position for zipped books 2015-07-23 01:30:30 +02:00
Slava Monich
4417e55191 [app] Changed title color to match default cover 2015-07-20 22:48:23 +03: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
dffa24d4e6 [app] Marked translation as finished 2015-07-15 00:05:00 +03:00
Slava Monich
c4960ff232 [app] Tweaked Finnish translation 2015-07-13 11:40:27 +03:00
Slava Monich
8065a8a724 [app] Settings need to be passed to BookModel 2015-07-12 19:39:55 +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
d677a150dc [app] Use global Settings object instead of passing it around
As an optimization measure.
2015-07-12 13:12:35 +03:00
Slava Monich
83507c8a9e Finnish translation 2015-07-11 17:55:35 +03:00
Slava Monich
8cb679125a Integrated Swedish translations 2015-07-11 13:44:24 +03:00
Slava Monich
3b66d8dcbc Fixed Mer OBS build 2015-07-11 13:28:44 +03:00
Åke Engelbrektson
564694e2c3 Create harbour-books-sv.ts
Swedish translation if you want.
2015-07-11 08:50:27 +02: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
74ff222bf1 Make sure the right font family is used by BooksTitleText by default 2015-07-06 18:46:19 +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
c009edfec6 Tweaking import page UI 2015-07-03 01:49:07 +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