monich / harbour-books Goto Github PK
View Code? Open in Web Editor NEWE-book reader based on FBReader
E-book reader based on FBReader
Support for PDF files would be a really useful feature.
Hi. Thank you for working on Books, I am very happy to be able to use it to read epubs on my phone.
I tried to load an epub file (you can download it here: click on the "down" arrow on the left, select "epub", full document, tick the box and click "download"). Importing it in the library was fine but actually attempting to read it made Books crash. I tried to reboot my phone (Xperia X with Sailfish) and reinstall Books but nothing worked, and now I can't even start Books anymore.
I can provide logs if you want - just tell me how to get them.
Again, thank you for all the time you spent working on Books, I'm very grateful!
Could you add bookmark and go to page? Moving in a large book (5000+ pages) is not handy using the slider.
And most likely for additional users too, although those don't really matter but defaultu
definitely does. Seems to be the case of nemo
username being hardcoded somewhere.
Perhaps, there should be a sample book in the library by default. Ideally it should be some sort of a manual but I don't feel like writing manuals :)
Links in EPUB books are rendered like links but don't work.
The same magnification level may not look right for all books.
I prefer to read the books in normal mode (text is correct way when the led points to me) and when I turn a little books think that I want to be in horizontal mode, which I dislike. It would be nice if there was option for locking specific rotations or only using some of the 4 possible rotations.
At the moment new books are searched and imported only from the root of the search folders (Downloads, Documents/Books, or Books on sdcard)...
this is somehow related to this #3
Alin
Books doesn't find books in sd-card. The directory is now /run/media/nemo/[sdcardNumber]
Need to add search a phrase in text of current book.
They are recognized as active elements but nothing happens if you long-tap them. Footnotes do work in EPUBs though.
Version 1.0.23
On my Jolla tablet I get since month the notification that there is an update to version 1.0.10.
When I trace journalctl during the update I see this message
Apr 19 22:14:01 Jolla [1547]: [D] Package::InstallTransactionPkgKit::update:198 - void Package::InstallTransactionPkgKit::update(const QString&) "harbour-books;1.0.10-93.1;i486;store" Apr 19 22:14:01 Jolla estart[1127]: [D] DeveloperModeSettingsWorker::onPackageProgressChanged:188 - onPackageProgressChanged: "harbour-books" 49 Apr 19 22:14:01 Jolla estart[1127]: [D] DeveloperModeSettingsWorker::onPackageProgressChanged:188 - onPackageProgressChanged: "harbour-books" 49 Apr 19 22:14:01 Jolla [1547]: [D] Package::InstallTransactionPkgKit::slotTransactionError:377 - void Package::InstallTransactionPkgKit::slotTransactionError(PackageKit::Transaction::Error, const QString&) 13 "There is ....70.1.jolla.i486" Apr 19 22:14:01 Jolla [1547]: [D] Package::InstallTransactionPkgKit::giveUpOrRetry:222 - void Package::InstallTransactionPkgKit::giveUpOrRetry(const QString&) "There is no update candidate for harbour-books-1.0.6-10.70.1.jolla.i486" Apr 19 22:14:01 Jolla estart[1127]: [D] DeveloperModeSettingsWorker::onPackageProgressChanged:188 - onPackageProgressChanged: "harbour-books" 49 Apr 19 22:14:01 Jolla [1547]: [D] Package::InstallTransactionPkgKit::giveUpOrRetry:259 - giving up Apr 19 22:14:01 Jolla estart[1127]: [D] DeveloperModeSettingsWorker::onPackageProgressChanged:188 - onPackageProgressChanged: "harbour-books" 100 Apr 19 22:14:01 Jolla lipstick[690]: [D] displayNotification:311 - Warning: Notification is non-standard, it has both preview summary and preview body but no actions. Remove the preview body or add an action: Store x-j...d not update Books Apr 19 22:14:02 Jolla [1547]: [D] Package::RepositoryTransactionPkgKit::slotWrappedTransactionFailure:306 - Wrapped transaction failed: "There is no update candidate for harbour-books-1.0.6-10.70.1.jolla.i486" Apr 19 22:14:02 Jolla [1547]: [D] Package::InstallTransactionPkgKit::~InstallTransactionPkgKit:43 - deleting InstallTransactionPkgKit
current version is
rpm -qa | grep books harbour-books-1.0.6-10.70.1.jolla.i486
Not sure if the i486 rpm is missing or it's an issue with the store
Is it possible to release a version that runs on PC platform? fbreader needs such a good open source project urgently.
Such as this one: https://de.wikisource.org/wiki/Die_Edda_(Simrock_1876)
Fonts are too bright by default
Is there a way to change the margin size around the text? Currently, on my Jolla 1, the margins are huge and a lot of screen real estate is lost because of that.
It would be nice to be able to select and copy the text to the clipboard.
Requested by the users.
I know there are already several proposals to modify/improve the scanning of readable documents. As i haven't found this one yet, i wanted to propose the use of sailfishs tracker which scans automatically several folder and can be adjusted manually using the corresponding configuration file if need be.
To navigate through the chapters, program need a table of contents for currently opened book.
I run into this compile error with Git HEAD. Am I using the wrong Qt version to compile? It's 4.8.7 with me, GCC 4.9.3.
# qmake .
# make
[..]
cd fribidi/ && make -f Makefile
make[1]: Entering directory '[harbour-books]/fribidi'
make[1]: Nothing to be done for 'first'.
make[1]: Leaving directory '[harbour-books]/fribidi'
cd linebreak/ && make -f Makefile
make[1]: Entering directory '[harbour-books]/linebreak'
make[1]: Nothing to be done for 'first'.
make[1]: Leaving directory '[harbour-books]/linebreak'
cd fbreader/ && make -f Makefile
make[1]: Entering directory '[harbour-books]/fbreader'
make[1]: Nothing to be done for 'first'.
make[1]: Leaving directory '[harbour-books]/fbreader'
cd harbour-lib/ && make -f Makefile
make[1]: Entering directory '[harbour-books]/harbour-lib'
g++ -c -pipe -Wno-unused-parameter -Wno-unused-result -Wno-psabi -O2 -fPIC -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtDBus -I/usr/include/qt4/QtDeclarative -I/usr/include/qt4 -Iinclude -I. -o HarbourTransferMethodInfo.o src/HarbourTransferMethodInfo.cpp
In file included from /usr/include/qt4/QtCore/qvariant.h:48:0,
from /usr/include/qt4/QtCore/qabstractitemmodel.h:45,
from /usr/include/qt4/QtCore/QtCore:4,
from /usr/include/qt4/QtDBus/QtDBus:3,
from include/HarbourTransferMethodInfo.h:37,
from src/HarbourTransferMethodInfo.cpp:33:
/usr/include/qt4/QtCore/qmetatype.h: In instantiation of ‘static int QMetaTypeId2<T>::qt_metatype_id() [with T = QList<HarbourTransferMethodInfo>]’:
/usr/include/qt4/QtCore/qmetatype.h:230:44: required from ‘int qMetaTypeId(T*) [with T = QList<HarbourTransferMethodInfo>]’
/usr/include/qt4/QtCore/qmetatype.h:243:29: required from ‘int qRegisterMetaType(T*) [with T = QList<HarbourTransferMethodInfo>]’
/usr/include/qt4/QtDBus/qdbusmetatype.h:88:35: required from ‘int qDBusRegisterMetaType(T*) [with T = QList<HarbourTransferMethodInfo>]’
src/HarbourTransferMethodInfo.cpp:92:58: required from here
/usr/include/qt4/QtCore/qmetatype.h:169:80: error: ‘qt_metatype_id’ is not a member of ‘QMetaTypeId<QList<HarbourTransferMethodInfo> >’
static inline int qt_metatype_id() { return QMetaTypeId<T>::qt_metatype_id(); }
^
/usr/include/qt4/QtCore/qmetatype.h: In static member function ‘static int QMetaTypeId2<T>::qt_metatype_id() [with T = QList<HarbourTransferMethodInfo>]’:
/usr/include/qt4/QtCore/qmetatype.h:169:83: warning: control reaches end of non-void function [-Wreturn-type]
static inline int qt_metatype_id() { return QMetaTypeId<T>::qt_metatype_id(); }
^
make[1]: *** [Makefile:298: HarbourTransferMethodInfo.o] Error 1
make[1]: Leaving directory '[harbour-books]/harbour-lib'
Some people seem to want it. Why not.
Obviously, users need to be able to organize books into named folders. Rearranging does help a bit but try dragging a book from the very top to the bottom of the list consisting of hundreds of books. One by one. It's not going to be a pleasant experience.
Not sure if it's possible but there's clearly a demand for this feature.
Hello, I encountered a problem with polish special characters such as ą ś ć ż ź etc, its displayed as a something like 1/3 1/4 and some other characters similar to "A".
example of book affected with problem:
https://wolnelektury.pl/media/book/mobi/homer-odyseja.mobi
regards,
At the moment when one loads a book needs to wait till all pages are somehow formatted...
make this process asynchronous. Once first page needs to be displayed is ready display it and then continue in background with the rest of loading.
Alin
Padding gets overwritten by margins which breaks formatting for some EPUB books.
To reproduce:
The books and subfolders are back in the default order. Also, the cache directory under ~/.local/share/harbour-books
is not renamed or removed, it stays there under the old name wasting the space.
Parsing the book takes considerable amount of time and it's done every time when the book is opened. This is not good. Users are getting annoyed and I can understand them. It should be possible to cache the layout information and store it alongside the book state under ~/.local/share/harbour-books/
. Might not be easy though...
If there are more than a few books there it might be convenient to select all books at once.
In short, SFOS <3.0.3.1 stores bookmarks in ~/.local/share/harbour-books/internal/sailfish/home (for local storage, haven't tried SD card)
In SFOS >=3.0.3.1, Books stores/expects bookmarks in ~/.local/share/harbour-books/internal/mapper/sailfish-home
A manual copy fixed the issue, but some users may not be able to do that easily.
The crash can be caused from book list of the app when trying to open a book and, I think, incidentally hitting invisible but still present Slider.
Aug 18 11:13:02 Pro1 restart[28516]: [D] unknown:0 - "Error: Invalid Font Weight"
Aug 18 11:13:06 Pro1 [11070]: [W] BooksCoverWidget::DefaultImage::retain:122 - Failed to load /usr/share/openrepos-books/data/default-cover.jpg
Aug 18 11:13:06 Pro1 [11070]: [D] onCompleted:291 - BooksDragArea created
Aug 18 11:13:06 Pro1 [11070]: [D] expression for script:272 - Warning: Slider.maximumValue needs to be higher than Slider.minimumValue
Aug 18 11:13:06 Pro1 [11070]: [D] onCompleted:424 - Warning: specifying an object instance for initialPage is sub-optimal - prefer to use a Component
Aug 18 11:13:06 Pro1 invoker[6896]: WARNING: An inactive plugin is misbehaving - tried to show a window!
Aug 18 11:13:06 Pro1 invoker[6896]: WARNING: requestActivate() called for QQuickView(0x438840) which has Qt::WindowDoesNotAcceptFocus set.
Aug 18 11:13:06 Pro1 lipstick[5776]: [W] unknown:0 - WindowPixmapItem does not have a source texture, cover will be dropped..
Aug 18 11:13:06 Pro1 booster-silica-qt5[11130]: [D] unknown:0 - Using Wayland-EGL
Aug 18 11:13:06 Pro1 [11070]: [D] onTriggered:302 - /home/nemo/Documents/Books startup is taking too long
Aug 18 11:13:06 Pro1 mapplauncherd[11130]: SilicaBooster: Initiate asynchronous preload.
Aug 18 11:13:10 Pro1 [11070]: [D] expression for script:272 - Warning: Slider.maximumValue needs to be higher than Slider.minimumValue
Aug 18 11:13:10 Pro1 [11070]: [W] unknown:86 - file:///usr/share/openrepos-books/qml/BooksCoverPage.qml:86:5: QML BookCover: Binding loop detected for property "book"
Aug 18 11:13:14 Pro1 [11070]: [D] expression for script:272 - Warning: Slider.maximumValue needs to be higher than Slider.minimumValue
Aug 18 11:13:16 Pro1 kernel: IRQ5 no longer affine to CPU7
Aug 18 11:13:16 Pro1 kernel: IRQ5 no longer affine to CPU5
Aug 18 11:13:18 Pro1 mapplauncherd[6919]: Boosted process (pid=11070) was terminated due to signal 11
Aug 18 11:13:18 Pro1 invoker[11127]: error: Can't send signal 11 to application [11070]: No such process
Aug 18 11:13:18 Pro1 restart[28516]: [D] unknown:0 - "Error: Invalid Font Weight"
Thank you. Best wishes,
Wikiwide
It seems that special characters are not recognized by "Books".
"word
word", "word–
word" and "word—
word" are displayed "wordword".
I suppose it's the same for all special characters.
Requested by a user, so somebody is actually using that.
Formatting a large book takes some time. I'm currently reading a book, which opens in about 2 mins in Xperia, and more than twice that in Jolla 1.
If I have dynamic display orientation on, accidental turning of the phone may cause a long pause in reading. Therefore I don't use dynamic orientation. And would appreciate the possibility to fix the book direction regardless of the system settings.
I recently returned to SailfishOS and had a situation where I had books in the default directory and in a subdirectory (#3 (comment)). When I wanted to switch out of the sub directory, it took me a long time to realize that the button to get out of it was the top left corner simply saying "Sisäinen muisti" ("Internal memory").
I wonder if it could be made somehow more obvious as I figured it out by accident, as swiping left isn't possible and swiping right gives me the SD card.
I think a part of the issue is that the current directory has a 📁 icon and is accent-coloured and difficult to touch (SailfishOS bug on Xperia 10 II?), while above it the top level directory is just the text above.
Since the update to the latest version the colors of the text changed. In 'Dark-mode' this gives some unreadable text with black foreground-color en black background-color.
Is it possible to get the old color-pallet back?
Version of software used:
Phone used:
The book is a copyrighted version of the bible. It's an EPUB-file.
I can provide the last part from the page in the screenshot above if this is helpfull:
<p>
<span class="verseNum">32 </span>Toen Noach vijfhonderd jaar oud was, verwekte Noach Sem, Cham en Jafeth.</p>
<div class="notesContainer"><div class="note"><span>5:29 </span><span class="hi-italic">Noach </span><span>- Er is een woordspel tussen de naam Noach ‘rust’ en het Hebreeuwse woord voor ‘troosten’.</span></div></div><div class="notesContainer"><span class="xrefnote"><span class="noteref">a </span><span>Gen. 1:26; 9:6; 1 Kor. 11:7</span></span><span class="xrefnote"><span class="noteref">b </span>
<span>Gen. 1:26; Matt. 19:4; Mark. 10:6</span>
</span><span class="xrefnote"><span class="noteref">c </span><span>1 Kron. 1:1</span></span><span class="xrefnote"><span class="noteref">d </span><span>Gen. 4:26</span></span><span class="xrefnote"><span class="noteref">e </span><span>1 Kron. 1:2</span></span><span class="xrefnote"><span class="noteref">f </span><span>1 Kron. 1:3</span></span><span class="xrefnote"><span class="noteref">g </span>
<span>Judas vs. 14</span>
</span><span class="xrefnote"><span class="noteref">h </span><span>Hebr. 11:5</span></span><span class="xrefnote"><span class="noteref">i </span><span>2 Kon. 2:11; Hebr. 11:5</span></span></div></div>
Also the style.css:
.ppar { margin: 0em; text-indent: 0.7em;}
h1 {line-height:130%; margin: 0em; padding: 0em;}
h2 {line-height:130%; font-family: sans-serif; font-size: medium; padding: 0em; margin: 0em 0em 0em 0em;}
h3 {color: black; margin-bottom: 0.2em; font-size: 1.2em; font-weight: bold;}
h4 {color: #826557; margin-bottom: 0em; margin-top: 0.5em; font-size: 1em; font-weight: bold; font-style: oblique;}
.x-breakSymbol{margin-left:4em;}
.divineName{font-size: smaller;}
.foreign{font-style: oblique;}
.x-selah{font-style: oblique; color: #8B0000;}
.hi-small-caps{font-size: smaller;}
.hi-italic{font-style: oblique;}
.q-italic{font-style: oblique;}
.poline1{margin-left:1em; text-indent: -0.7em;}
.poline2{margin-left:2em; text-indent: -0.7em;}
.poline3{margin-left:3em; text-indent: -0.7em;}
.poline4{margin-left:4em; text-indent: -0.7em;}
.pogroup{}
.underlined { text-decoration:underline; }
.note{line-height:150%; font-size: .7em; color: navy; font-family: sans-serif; border-top: 1px dashed gray; padding: .2em;}
.noteref{font-size: smaller; color: navy; vertical-align: super; line-height: 0; font-family: serif;}
.notesContainer{margin-top: 2em;}
.xrefnote{line-height:150%; display: inline-block; font-size: .7em; color: black; background-color: #EEEEEE; font-family: sans-serif; padding: .3em; margin: .3em;}
.xrefnote .noteref{font-size: normal;}
.floatNotesContainer{background-color: #f8f0de; width: 30%; clear: right; float: right; font-size: .8em; margin-left: .4em;}
.perNotesContainer{margin-left: 0.5em; padding: 0.3em;}
.smlcaps
{
font-variant: small-caps;
}
p {
line-height:150%;
margin: 0em;
padding:0em;
}
div {
line-height:150%;
}
span {
line-height:150%;
}
p.pvoorw {
font-family:Arial,sans-serif;
margin-top: 1em;
}
.pvolg {
margin: 0em;
padding:0em;
}
.sela {
display: block;
text-align: right;
margin-top: -1.5em;
margin-left: 2em;
font-style: oblique;
}
.psaleph {
margin-top: 1.6em;
margin-top: .8em;
text-align: center;
font-style: oblique;
}
.noSpace {
margin: 0em;
padding: 0em;
}
.noSpaceIndent1 {
margin: 0em;
margin-left: 1em;
padding: 0em;
}
.spaceAfter {
margin: 0em;
margin-bottom:1em;
padding: 0em;
}
.spaceAfterIndent {
margin: 0em;
margin-left: 1em;
margin-bottom:1em;
padding: 0em;
}
.x-continued{text-indent: 0em;}
.blockindent{margin-left: 1em;}
.verseNum{
font-size: smaller; font-weight: bold;
color: #826557;
}
.spreker{margin-bottom: 0em; font-style: oblique; color: #8B0000; font-size: 1em; font-weight: bold;}
.Verse1Box {
float: left;
}
.Verse1Box .verseNum {
font-size: 1em;
margin-right: 0.2em;
}
.verwTekstPrevEl {
font-size: 0.75em;
margin: 0em;
margin-bottom:1em;
padding: 0em;
color: #333333;
font-family: sans-serif;
}
.verwTekstNextEl {
font-size: 0.75em;
margin: 0em;
margin-top: 1em;
margin-bottom: 0.25em;
padding: 0em;
color: #333333;
font-family: sans-serif;
}
.commentaar{
font-size: 0.8em;
font-family: sans-serif;
background-color: #f8f0de;
padding: 0.3em;
margin-left: 0.5em;
margin-top: 0.3em;
border-bottom-style: solid;
border-bottom-width: 1px;
border-bottom-color:#aaaaaa;
}
.tocgroeptitelL1{margin-right: 1em; font-weight: bold;}
.tocgroeptitelL2 {margin-right: 1em;}
.tocL1container{margin-top: 1em; margin-bottom: 1em;}
.tocL2container{margin-top: 0.5em; }
.tocbooklink{margin-right: 0.4em;}
.chapnavcontainer{font-family: sans-serif; font-size: 1em; padding: 0.5em; margin-bottom: 1em; background-color: #EEEEEE; border-style: solid; border-width: 1px; border-color:#aaaaaa;}
.perikoopnav {}
.perNavChaptCont{margin-bottom: 0.5em; padding-bottom: 0.5em; border-bottom-style: dotted; border-bottom-width: 1px; border-bottom-color:#aaaaaa;}
.perNavChaptCont div {
font-size: 1em;
margin-left: 0.5em;
margin-top: 0.2em;
text-indent: -0.5em;
}
.socont{font-size: 0.8em; text-align: center;}
Add a smart way in order to read footnotes: touch the footnote, read the citation, and go back to the text. Many thanks
I like the experience of Harbour-books, but I think it could be even better if the user could change the font.
I would like to use OpenDyslexic, but I think an option to change the font in general would be good.
I don't know what this would involve, but as there is fc-cache
command in SailfishOS Terminal, I think just having an option to change it from fonts installed on the system might work as the command looks for ~/.fonts
and ~/.local/share/fonts judging
by fc-cache -v
.
Search is pretty much a must have feature if you have more than a few dozen books in your library.
In the internal storage it has to be under ~/Documents
but on the SD card it can be anywhere.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.