Merge branch 'fixed_aurora_build'
This commit is contained in:
commit
0dcbfb4e4e
20 changed files with 226 additions and 220 deletions
12
.gitignore
vendored
12
.gitignore
vendored
|
@ -1,3 +1,13 @@
|
||||||
harbour-books.pro.user
|
harbour-books.pro.user*
|
||||||
tests.pro.user
|
tests.pro.user
|
||||||
build
|
build
|
||||||
|
*.o
|
||||||
|
moc_*.cpp
|
||||||
|
*.moc
|
||||||
|
Makefile
|
||||||
|
*.a
|
||||||
|
*.list
|
||||||
|
org.monich.harbour.books*.qm
|
||||||
|
org.monich.harbour.books*.ts
|
||||||
|
org.monich.harbour.books
|
||||||
|
RPMS/
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
## E-book reader for Sailfish OS
|
## E-book reader for Sailfish OS
|
||||||
|
|
||||||
![icon](app/icons/86x86/harbour-books.png)
|
![icon](app/icons/harbour-books.svg)
|
||||||
|
|
||||||
|
[EN]
|
||||||
The core functionality is based on [FBReader](https://github.com/geometer/FBReader)
|
The core functionality is based on [FBReader](https://github.com/geometer/FBReader)
|
||||||
source code with a few modifications. Books are imported from the Downloads folder,
|
source code with a few modifications. Books are imported from the Downloads folder,
|
||||||
where they are saved by the browser or email client. Alternatively, you can
|
where they are saved by the browser or email client. Alternatively, you can
|
||||||
|
@ -11,3 +12,8 @@ folder. Removable storage is supported as well, the books are stored in the
|
||||||
|
|
||||||
In theory, it should be able to handle all E-book formats supported by FBReader.
|
In theory, it should be able to handle all E-book formats supported by FBReader.
|
||||||
Tested mostly with epub and fb2.
|
Tested mostly with epub and fb2.
|
||||||
|
|
||||||
|
[RUS]
|
||||||
|
Основная функциональность основана на исходном коде [FBReader](https://github.com/geometer/FBReader) с небольшими изменениями. Книги импортируются из папки Downloads, куда они сохраняются браузером или почтовым клиентом. Также можно вручную скопировать книги в каталог `Documents/Books` в домашней папке. Поддерживается и съемный носитель, там книги хранятся в каталоге `/Books`.
|
||||||
|
|
||||||
|
Теоретически, программа должна работать со всеми форматами электронных книг, поддерживаемыми FBReader. Проверено в основном на epub и fb2.
|
||||||
|
|
42
app/app.pro
42
app/app.pro
|
@ -1,4 +1,5 @@
|
||||||
NAME = books
|
NAME = harbour.books
|
||||||
|
ORIGINAL_NAME = books
|
||||||
|
|
||||||
openrepos {
|
openrepos {
|
||||||
PREFIX = openrepos
|
PREFIX = openrepos
|
||||||
|
@ -7,9 +8,10 @@ openrepos {
|
||||||
PREFIX = harbour
|
PREFIX = harbour
|
||||||
}
|
}
|
||||||
|
|
||||||
TARGET = $${PREFIX}-$${NAME}
|
PREFIX = org.monich
|
||||||
CONFIG += sailfishapp link_pkgconfig
|
TARGET = $${PREFIX}.$${NAME}
|
||||||
PKGCONFIG += sailfishapp mlite5 glib-2.0
|
CONFIG += auroraapp link_pkgconfig
|
||||||
|
PKGCONFIG += auroraapp mlite5 glib-2.0
|
||||||
|
|
||||||
app_settings {
|
app_settings {
|
||||||
# This path is hardcoded in jolla-settings
|
# This path is hardcoded in jolla-settings
|
||||||
|
@ -25,10 +27,10 @@ CONFIG(debug, debug|release) {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Directories
|
# Directories
|
||||||
FBREADER_DIR = $$_PRO_FILE_PWD_/../fbreader
|
FBREADER_DIR = ../fbreader
|
||||||
FRIBIDI_DIR = $$_PRO_FILE_PWD_/../fribidi
|
FRIBIDI_DIR = ../fribidi
|
||||||
LINEBREAK_DIR = $$_PRO_FILE_PWD_/../linebreak
|
LINEBREAK_DIR = ../linebreak
|
||||||
HARBOUR_LIB_DIR = $$_PRO_FILE_PWD_/../harbour-lib
|
HARBOUR_LIB_DIR = ../harbour-lib
|
||||||
|
|
||||||
HARBOUR_INCLUDE_DIR = $$HARBOUR_LIB_DIR/include
|
HARBOUR_INCLUDE_DIR = $$HARBOUR_LIB_DIR/include
|
||||||
HARBOUR_SRC_DIR = $$HARBOUR_LIB_DIR/src
|
HARBOUR_SRC_DIR = $$HARBOUR_LIB_DIR/src
|
||||||
|
@ -51,7 +53,7 @@ LIBS += \
|
||||||
|
|
||||||
OTHER_FILES += \
|
OTHER_FILES += \
|
||||||
icons/harbour-books.svg \
|
icons/harbour-books.svg \
|
||||||
*.desktop \
|
$${TARGET}.desktop \
|
||||||
qml/*.qml \
|
qml/*.qml \
|
||||||
qml/*.js \
|
qml/*.js \
|
||||||
qml/images/* \
|
qml/images/* \
|
||||||
|
@ -194,6 +196,7 @@ openrepos {
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
$$HARBOUR_INCLUDE_DIR/HarbourBase45.h \
|
$$HARBOUR_INCLUDE_DIR/HarbourBase45.h \
|
||||||
|
$$HARBOUR_INCLUDE_DIR/HarbourBattery.h \
|
||||||
$$HARBOUR_INCLUDE_DIR/HarbourColorEditorModel.h \
|
$$HARBOUR_INCLUDE_DIR/HarbourColorEditorModel.h \
|
||||||
$$HARBOUR_INCLUDE_DIR/HarbourDisplayBlanking.h \
|
$$HARBOUR_INCLUDE_DIR/HarbourDisplayBlanking.h \
|
||||||
$$HARBOUR_INCLUDE_DIR/HarbourJson.h \
|
$$HARBOUR_INCLUDE_DIR/HarbourJson.h \
|
||||||
|
@ -206,6 +209,7 @@ HEADERS += \
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
$$HARBOUR_SRC_DIR/HarbourBase45.cpp \
|
$$HARBOUR_SRC_DIR/HarbourBase45.cpp \
|
||||||
|
$$HARBOUR_SRC_DIR/HarbourBattery.cpp \
|
||||||
$$HARBOUR_SRC_DIR/HarbourColorEditorModel.cpp \
|
$$HARBOUR_SRC_DIR/HarbourColorEditorModel.cpp \
|
||||||
$$HARBOUR_SRC_DIR/HarbourDisplayBlanking.cpp \
|
$$HARBOUR_SRC_DIR/HarbourDisplayBlanking.cpp \
|
||||||
$$HARBOUR_SRC_DIR/HarbourJson.cpp \
|
$$HARBOUR_SRC_DIR/HarbourJson.cpp \
|
||||||
|
@ -229,20 +233,6 @@ qml_components.files = $${HARBOUR_QML_COMPONENTS}
|
||||||
qml_components.path = /usr/share/$${TARGET}/qml/harbour
|
qml_components.path = /usr/share/$${TARGET}/qml/harbour
|
||||||
INSTALLS += qml_components
|
INSTALLS += qml_components
|
||||||
|
|
||||||
# Icons
|
|
||||||
ICON_SIZES = 86 108 128 172 256
|
|
||||||
for(s, ICON_SIZES) {
|
|
||||||
icon_target = icon$${s}
|
|
||||||
icon_dir = icons/$${s}x$${s}
|
|
||||||
$${icon_target}.files = $${icon_dir}/$${TARGET}.png
|
|
||||||
$${icon_target}.path = /usr/share/icons/hicolor/$${s}x$${s}/apps
|
|
||||||
equals(PREFIX, "openrepos") {
|
|
||||||
$${icon_target}.extra = cp $${icon_dir}/harbour-$${NAME}.png $$eval($${icon_target}.files)
|
|
||||||
$${icon_target}.CONFIG += no_check_exist
|
|
||||||
}
|
|
||||||
INSTALLS += $${icon_target}
|
|
||||||
}
|
|
||||||
|
|
||||||
settings_qml.files = settings/*.qml
|
settings_qml.files = settings/*.qml
|
||||||
settings_qml.path = /usr/share/$${TARGET}/settings/
|
settings_qml.path = /usr/share/$${TARGET}/settings/
|
||||||
INSTALLS += settings_qml
|
INSTALLS += settings_qml
|
||||||
|
@ -271,7 +261,7 @@ defineTest(addTrFile) {
|
||||||
export(OTHER_FILES)
|
export(OTHER_FILES)
|
||||||
|
|
||||||
in = $${_PRO_FILE_PWD_}/$${rel}
|
in = $${_PRO_FILE_PWD_}/$${rel}
|
||||||
out = $${OUT_PWD}/translations/$${PREFIX}-$${1}
|
out = $${OUT_PWD}/translations/$${PREFIX}.harbour.$${1}
|
||||||
|
|
||||||
s = $$replace(1,-,_)
|
s = $$replace(1,-,_)
|
||||||
lupdate_target = lupdate_$$s
|
lupdate_target = lupdate_$$s
|
||||||
|
@ -299,7 +289,7 @@ defineTest(addTrFile) {
|
||||||
|
|
||||||
LANGUAGES = de fi hu nl pl pt ru sv es zh_CN
|
LANGUAGES = de fi hu nl pl pt ru sv es zh_CN
|
||||||
|
|
||||||
addTrFile($${NAME})
|
addTrFile($${ORIGINAL_NAME})
|
||||||
for(l, LANGUAGES) {
|
for(l, LANGUAGES) {
|
||||||
addTrFile($${NAME}-$$l)
|
addTrFile($${ORIGINAL_NAME}-$$l)
|
||||||
}
|
}
|
|
@ -1,44 +1,13 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<svg
|
<!-- Generated by Pixelmator Pro 3.4.3 -->
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
<svg width="86" height="86" viewBox="0 0 86 86" xmlns="http://www.w3.org/2000/svg">
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
<path id="path1" fill="#ffffff" stroke="none" opacity="0" d="M 0 0 L 86 0 L 86 86 L 0 86 Z"/>
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
<g id="g1">
|
||||||
version="1.1"
|
<linearGradient id="linearGradient1" x1="79.238723" y1="91.3279" x2="6.761477" y2="18.8514" gradientUnits="userSpaceOnUse">
|
||||||
x="0px"
|
<stop offset="1e-05" stop-color="#f5d9a8" stop-opacity="1"/>
|
||||||
y="0px"
|
<stop offset="1" stop-color="#cc9933" stop-opacity="1"/>
|
||||||
width="86px"
|
</linearGradient>
|
||||||
height="86px"
|
<path id="---" fill="url(#linearGradient1)" fill-rule="evenodd" stroke="none" d="M 0.299502 69.699997 C 0.299502 78.536552 7.462946 85.699997 16.299501 85.699997 L 69.699493 85.699997 C 78.536049 85.699997 85.699493 78.536552 85.699493 69.699997 L 85.699493 16.300003 C 85.699493 7.463448 78.536049 0.300003 69.699493 0.300003 L 16.299501 0.300003 C 7.462946 0.300003 0.299502 7.463448 0.299502 16.300003 Z"/>
|
||||||
viewBox="0 0 86 86"
|
</g>
|
||||||
enable-background="new 0 0 86 86"
|
<path id="path2" fill="#cc0000" stroke="none" d="M 65.24424 25.145325 L 68.00016 25.145325 L 68.00016 78 L 28.432976 78 C 22.625853 78 17.999838 73.964539 17.999838 67.960564 L 17.999838 22.192551 C 17.999838 18.944496 20.657335 16.287003 23.905388 16.287003 L 60.519798 16.287003 L 60.519798 61.661312 L 28.432976 61.661312 C 24.397516 61.661312 21.543167 63.826679 21.543167 67.76371 L 21.543167 67.960564 C 21.543167 71.897598 24.397516 74.456673 28.432976 74.456673 L 65.24424 74.456673 L 65.24424 25.145325 Z M 60.519798 69.338524 L 28.826679 69.338524 C 27.940847 69.338524 27.15344 68.846397 27.15344 67.862137 C 27.15344 67.07473 27.940847 66.582603 28.826679 66.582603 L 60.519798 66.582603 L 60.519798 69.338524 Z"/>
|
||||||
xml:space="preserve"
|
</svg>
|
||||||
inkscape:version="0.48.2 r9819">
|
|
||||||
<rect
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="opacity:0;fill:#ffffff"
|
|
||||||
width="86"
|
|
||||||
height="86"/>
|
|
||||||
<g>
|
|
||||||
<linearGradient
|
|
||||||
id="SVGID_1_"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="79.2383"
|
|
||||||
y1="91.3279"
|
|
||||||
x2="6.7619"
|
|
||||||
y2="18.8514">
|
|
||||||
<stop
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:#f5d9a8;stop-opacity:1;"/>
|
|
||||||
<stop
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:#cc9933;stop-opacity:1;"/>
|
|
||||||
</linearGradient>
|
|
||||||
<path
|
|
||||||
fill="url(#SVGID_1_)"
|
|
||||||
d="M43,0.3C19.417,0.3,0.3,19.418,0.3,43c0,0.408,0,41.277,0,41.277c0,0.786,0.637,1.423,1.423,1.423 h82.553c0.786,0,1.423-0.637,1.423-1.423c0,0,0-40.908,0-41.277C85.7,19.418,66.583,0.3,43,0.3z"/>
|
|
||||||
</g>
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
d="m 65.244239,25.145325 2.755924,0 0,52.854675 -39.567187,0 C 22.625852,78 17.999837,73.964541 17.999837,67.960564 l 0,-45.768014 c 0,-3.248053 2.657498,-5.90555 5.905551,-5.90555 l 36.614411,0 0,45.374311 -32.086823,0 c -4.035459,0 -6.889809,2.165368 -6.889809,6.102402 l 0,0.196851 c 0,3.937034 2.85435,6.496106 6.889809,6.496106 l 36.811263,0 0,-49.311345 z m -4.72444,44.193201 -31.69312,0 c -0.885832,0 -1.673239,-0.492128 -1.673239,-1.476387 0,-0.787407 0.787407,-1.279537 1.673239,-1.279537 l 31.69312,0 0,2.755924 z"
|
|
||||||
style="fill:#cc0000;fill-opacity:1"/>
|
|
||||||
</svg>
|
|
||||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
@ -10,11 +10,13 @@ Name[pt_BR]=Livros
|
||||||
Name[ru]=Книги
|
Name[ru]=Книги
|
||||||
Name[sv]=Böcker
|
Name[sv]=Böcker
|
||||||
Comment=E-Book Reader
|
Comment=E-Book Reader
|
||||||
Exec=harbour-books
|
Exec=org.monich.harbour.books
|
||||||
Icon=harbour-books
|
Icon=org.monich.harbour.books
|
||||||
X-Nemo-Application-Type=generic
|
X-Nemo-Application-Type=silica-qt5
|
||||||
|
|
||||||
[X-Sailjail]
|
[X-Application]
|
||||||
Permissions=Documents;Downloads;RemovableMedia;Audio
|
Permissions=Documents;Downloads;RemovableMedia;Audio
|
||||||
OrganizationName=de.whataco
|
OrganizationName=org.monich
|
||||||
ApplicationName=books
|
ApplicationName=harbour.books
|
||||||
|
ExecDBus=/usr/bin/org.monich.harbour.books %u
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
Copyright (C) 2015-2023 Slava Monich <slava@monich.com>
|
||||||
Copyright (C) 2015-2022 Jolla Ltd.
|
Copyright (C) 2015-2022 Jolla Ltd.
|
||||||
Copyright (C) 2015-2022 Slava Monich <slava.monich@jolla.com>
|
|
||||||
|
|
||||||
You may use this file under the terms of BSD license as follows:
|
You may use this file under the terms of BSD license as follows:
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtFeedback 5.0
|
import QtFeedback 5.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import org.nemomobile.notifications 1.0
|
import Nemo.Notifications 1.0
|
||||||
import harbour.books 1.0
|
import harbour.books 1.0
|
||||||
|
|
||||||
import "harbour"
|
import "harbour"
|
||||||
|
@ -280,8 +280,6 @@ Item {
|
||||||
pager.setPage(currentPage)
|
pager.setPage(currentPage)
|
||||||
}
|
}
|
||||||
|
|
||||||
onCurrentIndexChanged: updateModel()
|
|
||||||
|
|
||||||
onMovingChanged: updateModel()
|
onMovingChanged: updateModel()
|
||||||
|
|
||||||
delegate: BooksPageView {
|
delegate: BooksPageView {
|
||||||
|
@ -368,9 +366,9 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateModel() {
|
function updateModel() {
|
||||||
if (completed && !moving && currentIndex >= 0 && !bookViewWatcher.updatingViewPosition) {
|
if (completed && !moving && bookViewWatcher.currentIndex >= 0 && !bookViewWatcher.updatingViewPosition) {
|
||||||
hideViews()
|
hideViews()
|
||||||
stackModel.currentPage = currentIndex
|
stackModel.currentPage = bookViewWatcher.currentIndex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -378,6 +376,7 @@ Item {
|
||||||
id: bookViewWatcher
|
id: bookViewWatcher
|
||||||
|
|
||||||
listView: bookView
|
listView: bookView
|
||||||
|
onCurrentIndexChanged: bookView.updateModel()
|
||||||
}
|
}
|
||||||
|
|
||||||
NumberAnimation {
|
NumberAnimation {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
Copyright (C) 2015-2023 Slava Monich <slava@monich.com>
|
||||||
Copyright (C) 2015-2021 Jolla Ltd.
|
Copyright (C) 2015-2021 Jolla Ltd.
|
||||||
Copyright (C) 2015-2021 Slava Monich <slava.monich@jolla.com>
|
|
||||||
|
|
||||||
You may use this file under the terms of BSD license as follows:
|
You may use this file under the terms of BSD license as follows:
|
||||||
|
|
||||||
|
@ -8,27 +8,25 @@
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
are met:
|
are met:
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright
|
1. Redistributions of source code must retain the above copyright
|
||||||
notice, this list of conditions and the following disclaimer.
|
notice, this list of conditions and the following disclaimer.
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
notice, this list of conditions and the following disclaimer
|
notice, this list of conditions and the following disclaimer
|
||||||
in the documentation and/or other materials provided with the
|
in the documentation and/or other materials provided with the
|
||||||
distribution.
|
distribution.
|
||||||
3. Neither the names of the copyright holders nor the names of its
|
3. Neither the names of the copyright holders nor the names of its
|
||||||
contributors may be used to endorse or promote products derived
|
contributors may be used to endorse or promote products derived
|
||||||
from this software without specific prior written permission.
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
IN ANY WAY OUT OF THE USE OR INABILITY TO USE THIS SOFTWARE, EVEN
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
|
@ -52,10 +50,12 @@ ApplicationWindow {
|
||||||
|
|
||||||
property variant currentShelf: mainPage.currentShelf
|
property variant currentShelf: mainPage.currentShelf
|
||||||
|
|
||||||
DisplayBlanking {
|
HarbourDisplayBlanking {
|
||||||
pauseRequested: Qt.application.active &&
|
pauseRequested: Qt.application.active &&
|
||||||
Settings.currentBook &&
|
Settings.currentBook && Settings.keepDisplayOn &&
|
||||||
Settings.keepDisplayOn
|
(HarbourBattery.batteryState === HarbourBattery.BatteryStateCharging ||
|
||||||
|
HarbourBattery.batteryLevel === 0 || // Zero if unknown (not reported by mce)
|
||||||
|
HarbourBattery.batteryLevel >= Settings.lowBatteryLevel)
|
||||||
}
|
}
|
||||||
|
|
||||||
Binding {
|
Binding {
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import org.nemomobile.configuration 1.0
|
import Nemo.Configuration 1.0
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: actionComboBox
|
id: actionComboBox
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import org.nemomobile.configuration 1.0
|
import Nemo.Configuration 1.0
|
||||||
|
|
||||||
import "../qml/Books.js" as Books
|
import "../qml/Books.js" as Books
|
||||||
import "../qml/harbour"
|
import "../qml/harbour"
|
||||||
|
@ -64,11 +64,11 @@ Page {
|
||||||
var parts = Qt.resolvedUrl("dummy").split('/')
|
var parts = Qt.resolvedUrl("dummy").split('/')
|
||||||
if (parts.length > 2) {
|
if (parts.length > 2) {
|
||||||
var name = parts[parts.length-3]
|
var name = parts[parts.length-3]
|
||||||
if (name.indexOf("-books") >= 0) {
|
if (name.indexOf(".books") >= 0) {
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return "harbour-books"
|
return "org.monich.harbour.books"
|
||||||
}
|
}
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2015-2021 Jolla Ltd.
|
* Copyright (C) 2015-2023 Slava Monich <slava@monich.com>
|
||||||
* Copyright (C) 2015-2021 Slava Monich <slava.monich@jolla.com>
|
* Copyright (C) 2015-2022 Jolla Ltd.
|
||||||
*
|
*
|
||||||
* You may use this file under the terms of the BSD license as follows:
|
* You may use this file under the terms of the BSD license as follows:
|
||||||
*
|
*
|
||||||
|
@ -8,27 +8,25 @@
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
* are met:
|
* are met:
|
||||||
*
|
*
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer
|
* notice, this list of conditions and the following disclaimer
|
||||||
* in the documentation and/or other materials provided with the
|
* in the documentation and/or other materials provided with the
|
||||||
* distribution.
|
* distribution.
|
||||||
* 3. Neither the names of the copyright holders nor the names of its
|
* 3. Neither the names of the copyright holders nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
* IN ANY WAY OUT OF THE USE OR INABILITY TO USE THIS SOFTWARE, EVEN
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "BooksBookModel.h"
|
#include "BooksBookModel.h"
|
||||||
|
@ -153,7 +151,7 @@ BooksPos::List BooksBookModel::PagingTask::loadPageMarks() const
|
||||||
uchar* map = file.map(0, size);
|
uchar* map = file.map(0, size);
|
||||||
if (map) {
|
if (map) {
|
||||||
HDEBUG("reading" << qPrintable(iPageMarksFile));
|
HDEBUG("reading" << qPrintable(iPageMarksFile));
|
||||||
if (size > sizeof(MarksHeader)) {
|
if (size > (int) sizeof(MarksHeader)) {
|
||||||
const qint64 dataSize = size - sizeof(MarksHeader);
|
const qint64 dataSize = size - sizeof(MarksHeader);
|
||||||
const MarksHeader* hdr = (MarksHeader*)map;
|
const MarksHeader* hdr = (MarksHeader*)map;
|
||||||
if (!memcmp(hdr->magic, MarksFileMagic, sizeof(hdr->magic)) &&
|
if (!memcmp(hdr->magic, MarksFileMagic, sizeof(hdr->magic)) &&
|
||||||
|
|
|
@ -278,7 +278,7 @@ private:
|
||||||
static bool iMissing;
|
static bool iMissing;
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* BooksCoverWidget::DefaultImage::iImageName = "default-cover.jpg";
|
const char* BooksCoverWidget::DefaultImage::iImageName = "../qml/images/default-cover.jpg";
|
||||||
QImage* BooksCoverWidget::DefaultImage::iImage = NULL;
|
QImage* BooksCoverWidget::DefaultImage::iImage = NULL;
|
||||||
QImage* BooksCoverWidget::DefaultImage::iScaledImage = NULL;
|
QImage* BooksCoverWidget::DefaultImage::iScaledImage = NULL;
|
||||||
int BooksCoverWidget::DefaultImage::iRefCount = 0;
|
int BooksCoverWidget::DefaultImage::iRefCount = 0;
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
# define BOOKS_APP_NAME "openrepos-books"
|
# define BOOKS_APP_NAME "openrepos-books"
|
||||||
# define BOOKS_SETTINGS_MENU false
|
# define BOOKS_SETTINGS_MENU false
|
||||||
#else
|
#else
|
||||||
# define BOOKS_APP_NAME "harbour-books"
|
# define BOOKS_APP_NAME "org.monich.harbour.books"
|
||||||
# define BOOKS_SETTINGS_MENU true
|
# define BOOKS_SETTINGS_MENU true
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2015-2023 Slava Monich <slava@monich.com>
|
||||||
* Copyright (C) 2015-2022 Jolla Ltd.
|
* Copyright (C) 2015-2022 Jolla Ltd.
|
||||||
* Copyright (C) 2015-2022 Slava Monich <slava.monich@jolla.com>
|
|
||||||
*
|
*
|
||||||
* You may use this file under the terms of the BSD license as follows:
|
* You may use this file under the terms of the BSD license as follows:
|
||||||
*
|
*
|
||||||
|
@ -8,27 +8,25 @@
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
* are met:
|
* are met:
|
||||||
*
|
*
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer
|
* notice, this list of conditions and the following disclaimer
|
||||||
* in the documentation and/or other materials provided with the
|
* in the documentation and/or other materials provided with the
|
||||||
* distribution.
|
* distribution.
|
||||||
* 3. Neither the names of the copyright holders nor the names of its
|
* 3. Neither the names of the copyright holders nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
* IN ANY WAY OUT OF THE USE OR INABILITY TO USE THIS SOFTWARE, EVEN
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "BooksSettings.h"
|
#include "BooksSettings.h"
|
||||||
|
@ -54,8 +52,9 @@
|
||||||
#define KEY_CURRENT_BOOK DCONF_PATH_("currentBook")
|
#define KEY_CURRENT_BOOK DCONF_PATH_("currentBook")
|
||||||
#define KEY_CURRENT_FOLDER DCONF_PATH_("currentFolder")
|
#define KEY_CURRENT_FOLDER DCONF_PATH_("currentFolder")
|
||||||
#define KEY_REMOVABLE_ROOT DCONF_PATH_("removableRoot")
|
#define KEY_REMOVABLE_ROOT DCONF_PATH_("removableRoot")
|
||||||
#define KEY_KEEP_DISPLAY_ON DCONF_PATH_("keepDisplayOn")
|
|
||||||
#define KEY_BOOK_PULL_DOWN_MENU DCONF_PATH_("bookPullDownMenu")
|
#define KEY_BOOK_PULL_DOWN_MENU DCONF_PATH_("bookPullDownMenu")
|
||||||
|
#define KEY_KEEP_DISPLAY_ON DCONF_PATH_("keepDisplayOn")
|
||||||
|
#define KEY_LOW_BATTERY_LEVEL DCONF_PATH_("lowBatteryLevel")
|
||||||
#define KEY_VOLUME_UP_ACTION DCONF_PATH_("volumeUpAction")
|
#define KEY_VOLUME_UP_ACTION DCONF_PATH_("volumeUpAction")
|
||||||
#define KEY_VOLUME_DOWN_ACTION DCONF_PATH_("volumeDownAction")
|
#define KEY_VOLUME_DOWN_ACTION DCONF_PATH_("volumeDownAction")
|
||||||
#define KEY_ORIENTATION DCONF_PATH_("orientation")
|
#define KEY_ORIENTATION DCONF_PATH_("orientation")
|
||||||
|
@ -69,11 +68,12 @@
|
||||||
#define DEFAULT_CURRENT_BOOK QString()
|
#define DEFAULT_CURRENT_BOOK QString()
|
||||||
#define DEFAULT_CURRENT_FOLDER QString()
|
#define DEFAULT_CURRENT_FOLDER QString()
|
||||||
#define DEFAULT_REMOVABLE_ROOT "Books"
|
#define DEFAULT_REMOVABLE_ROOT "Books"
|
||||||
#define DEFAULT_KEEP_DISPLAY_ON false
|
|
||||||
#define DEFAULT_BOOK_PULL_DOWN_MENU true
|
#define DEFAULT_BOOK_PULL_DOWN_MENU true
|
||||||
#define DEFAULT_VOLUME_UP_ACTION (BooksSettings::ActionNextPage)
|
#define DEFAULT_KEEP_DISPLAY_ON false
|
||||||
#define DEFAULT_VOLUME_DOWN_ACTION (BooksSettings::ActionPreviousPage)
|
#define DEFAULT_LOW_BATTERY_LEVEL 20 // percent
|
||||||
#define DEFAULT_ORIENTATION (BooksSettings::OrientationAny)
|
#define DEFAULT_VOLUME_UP_ACTION BooksSettings::ActionNextPage
|
||||||
|
#define DEFAULT_VOLUME_DOWN_ACTION BooksSettings::ActionPreviousPage
|
||||||
|
#define DEFAULT_ORIENTATION BooksSettings::OrientationAny
|
||||||
|
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
// BooksSettings::TextStyle
|
// BooksSettings::TextStyle
|
||||||
|
@ -257,8 +257,9 @@ public:
|
||||||
MGConfItem* iPageDetailsFixedConf;
|
MGConfItem* iPageDetailsFixedConf;
|
||||||
MGConfItem* iTurnPageByTapConf;
|
MGConfItem* iTurnPageByTapConf;
|
||||||
MGConfItem* iSampleBookCopiedConf;
|
MGConfItem* iSampleBookCopiedConf;
|
||||||
MGConfItem* iKeepDisplayOnConf;
|
|
||||||
MGConfItem* iBookPullDownMenuConf;
|
MGConfItem* iBookPullDownMenuConf;
|
||||||
|
MGConfItem* iKeepDisplayOnConf;
|
||||||
|
MGConfItem* iLowBatteryLevelConf;
|
||||||
MGConfItem* iVolumeUpActionConf;
|
MGConfItem* iVolumeUpActionConf;
|
||||||
MGConfItem* iVolumeDownActionConf;
|
MGConfItem* iVolumeDownActionConf;
|
||||||
MGConfItem* iCurrentFolderConf;
|
MGConfItem* iCurrentFolderConf;
|
||||||
|
@ -282,8 +283,9 @@ BooksSettings::Private::Private(BooksSettings* aParent) :
|
||||||
iPageDetailsFixedConf(new MGConfItem(KEY_PAGE_DETAILS_FIXED, this)),
|
iPageDetailsFixedConf(new MGConfItem(KEY_PAGE_DETAILS_FIXED, this)),
|
||||||
iTurnPageByTapConf(new MGConfItem(KEY_TURN_PAGE_BY_TAP, this)),
|
iTurnPageByTapConf(new MGConfItem(KEY_TURN_PAGE_BY_TAP, this)),
|
||||||
iSampleBookCopiedConf(new MGConfItem(KEY_SAMPLE_BOOK_COPIED, this)),
|
iSampleBookCopiedConf(new MGConfItem(KEY_SAMPLE_BOOK_COPIED, this)),
|
||||||
iKeepDisplayOnConf(new MGConfItem(KEY_KEEP_DISPLAY_ON, this)),
|
|
||||||
iBookPullDownMenuConf(new MGConfItem(KEY_BOOK_PULL_DOWN_MENU, this)),
|
iBookPullDownMenuConf(new MGConfItem(KEY_BOOK_PULL_DOWN_MENU, this)),
|
||||||
|
iKeepDisplayOnConf(new MGConfItem(KEY_KEEP_DISPLAY_ON, this)),
|
||||||
|
iLowBatteryLevelConf(new MGConfItem(KEY_LOW_BATTERY_LEVEL, this)),
|
||||||
iVolumeUpActionConf(new MGConfItem(KEY_VOLUME_UP_ACTION, this)),
|
iVolumeUpActionConf(new MGConfItem(KEY_VOLUME_UP_ACTION, this)),
|
||||||
iVolumeDownActionConf(new MGConfItem(KEY_VOLUME_DOWN_ACTION, this)),
|
iVolumeDownActionConf(new MGConfItem(KEY_VOLUME_DOWN_ACTION, this)),
|
||||||
iCurrentFolderConf(new MGConfItem(KEY_CURRENT_FOLDER, this)),
|
iCurrentFolderConf(new MGConfItem(KEY_CURRENT_FOLDER, this)),
|
||||||
|
@ -303,8 +305,9 @@ BooksSettings::Private::Private(BooksSettings* aParent) :
|
||||||
connect(iPageDetailsFixedConf, SIGNAL(valueChanged()), aParent, SIGNAL(pageDetailsFixedChanged()));
|
connect(iPageDetailsFixedConf, SIGNAL(valueChanged()), aParent, SIGNAL(pageDetailsFixedChanged()));
|
||||||
connect(iTurnPageByTapConf, SIGNAL(valueChanged()), aParent, SIGNAL(turnPageByTapChanged()));
|
connect(iTurnPageByTapConf, SIGNAL(valueChanged()), aParent, SIGNAL(turnPageByTapChanged()));
|
||||||
connect(iSampleBookCopiedConf, SIGNAL(valueChanged()), aParent, SIGNAL(sampleBookCopiedChanged()));
|
connect(iSampleBookCopiedConf, SIGNAL(valueChanged()), aParent, SIGNAL(sampleBookCopiedChanged()));
|
||||||
connect(iKeepDisplayOnConf, SIGNAL(valueChanged()), aParent, SIGNAL(keepDisplayOnChanged()));
|
|
||||||
connect(iBookPullDownMenuConf, SIGNAL(valueChanged()), aParent, SIGNAL(bookPullDownMenuChanged()));
|
connect(iBookPullDownMenuConf, SIGNAL(valueChanged()), aParent, SIGNAL(bookPullDownMenuChanged()));
|
||||||
|
connect(iKeepDisplayOnConf, SIGNAL(valueChanged()), aParent, SIGNAL(keepDisplayOnChanged()));
|
||||||
|
connect(iLowBatteryLevelConf, SIGNAL(valueChanged()), aParent, SIGNAL(lowBatteryLevelChanged()));
|
||||||
connect(iVolumeUpActionConf, SIGNAL(valueChanged()), aParent, SIGNAL(volumeUpActionChanged()));
|
connect(iVolumeUpActionConf, SIGNAL(valueChanged()), aParent, SIGNAL(volumeUpActionChanged()));
|
||||||
connect(iVolumeDownActionConf, SIGNAL(valueChanged()), aParent, SIGNAL(volumeDownActionChanged()));
|
connect(iVolumeDownActionConf, SIGNAL(valueChanged()), aParent, SIGNAL(volumeDownActionChanged()));
|
||||||
connect(iOrientationConf, SIGNAL(valueChanged()), aParent, SIGNAL(orientationChanged()));
|
connect(iOrientationConf, SIGNAL(valueChanged()), aParent, SIGNAL(orientationChanged()));
|
||||||
|
@ -686,20 +689,6 @@ BooksSettings::setTurnPageByTap(
|
||||||
iPrivate->iTurnPageByTapConf->set(aValue);
|
iPrivate->iTurnPageByTapConf->set(aValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
BooksSettings::keepDisplayOn() const
|
|
||||||
{
|
|
||||||
return iPrivate->iKeepDisplayOnConf->value(DEFAULT_KEEP_DISPLAY_ON).toBool();
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
BooksSettings::setKeepDisplayOn(
|
|
||||||
bool aValue)
|
|
||||||
{
|
|
||||||
HDEBUG(aValue);
|
|
||||||
iPrivate->iKeepDisplayOnConf->set(aValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
BooksSettings::bookPullDownMenu() const
|
BooksSettings::bookPullDownMenu() const
|
||||||
{
|
{
|
||||||
|
@ -727,6 +716,33 @@ BooksSettings::setSampleBookCopied()
|
||||||
iPrivate->iSampleBookCopiedConf->set(true);
|
iPrivate->iSampleBookCopiedConf->set(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
BooksSettings::keepDisplayOn() const
|
||||||
|
{
|
||||||
|
return iPrivate->iKeepDisplayOnConf->value(DEFAULT_KEEP_DISPLAY_ON).toBool();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
BooksSettings::setKeepDisplayOn(
|
||||||
|
bool aValue)
|
||||||
|
{
|
||||||
|
HDEBUG(aValue);
|
||||||
|
iPrivate->iKeepDisplayOnConf->set(aValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
BooksSettings::lowBatteryLevel() const
|
||||||
|
{
|
||||||
|
return iPrivate->iLowBatteryLevelConf->value(DEFAULT_LOW_BATTERY_LEVEL).toInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
BooksSettings::setLowBatteryLevel(
|
||||||
|
int aValue)
|
||||||
|
{
|
||||||
|
HDEBUG(aValue);
|
||||||
|
iPrivate->iLowBatteryLevelConf->set(aValue);
|
||||||
|
}
|
||||||
|
|
||||||
BooksSettings::Action
|
BooksSettings::Action
|
||||||
BooksSettings::volumeUpAction() const
|
BooksSettings::volumeUpAction() const
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
* Copyright (C) 2015-2023 Slava Monich <slava@monich.com>
|
||||||
* Copyright (C) 2015-2022 Jolla Ltd.
|
* Copyright (C) 2015-2022 Jolla Ltd.
|
||||||
* Copyright (C) 2015-2022 Slava Monich <slava.monich@jolla.com>
|
|
||||||
*
|
*
|
||||||
* You may use this file under the terms of the BSD license as follows:
|
* You may use this file under the terms of the BSD license as follows:
|
||||||
*
|
*
|
||||||
|
@ -8,27 +8,25 @@
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
* are met:
|
* are met:
|
||||||
*
|
*
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer
|
* notice, this list of conditions and the following disclaimer
|
||||||
* in the documentation and/or other materials provided with the
|
* in the documentation and/or other materials provided with the
|
||||||
* distribution.
|
* distribution.
|
||||||
* 3. Neither the names of the copyright holders nor the names of its
|
* 3. Neither the names of the copyright holders nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
* IN ANY WAY OUT OF THE USE OR INABILITY TO USE THIS SOFTWARE, EVEN
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BOOKS_SETTINGS_H
|
#ifndef BOOKS_SETTINGS_H
|
||||||
|
@ -54,8 +52,9 @@ class BooksSettings : public BooksSettingsBase
|
||||||
Q_PROPERTY(bool pageDetailsFixed READ pageDetailsFixed WRITE setPageDetailsFixed NOTIFY pageDetailsFixedChanged)
|
Q_PROPERTY(bool pageDetailsFixed READ pageDetailsFixed WRITE setPageDetailsFixed NOTIFY pageDetailsFixedChanged)
|
||||||
Q_PROPERTY(bool turnPageByTap READ turnPageByTap WRITE setTurnPageByTap NOTIFY turnPageByTapChanged)
|
Q_PROPERTY(bool turnPageByTap READ turnPageByTap WRITE setTurnPageByTap NOTIFY turnPageByTapChanged)
|
||||||
Q_PROPERTY(bool sampleBookCopied READ sampleBookCopied NOTIFY sampleBookCopiedChanged)
|
Q_PROPERTY(bool sampleBookCopied READ sampleBookCopied NOTIFY sampleBookCopiedChanged)
|
||||||
Q_PROPERTY(bool keepDisplayOn READ keepDisplayOn WRITE setKeepDisplayOn NOTIFY keepDisplayOnChanged)
|
|
||||||
Q_PROPERTY(bool bookPullDownMenu READ bookPullDownMenu WRITE setBookPullDownMenu NOTIFY bookPullDownMenuChanged)
|
Q_PROPERTY(bool bookPullDownMenu READ bookPullDownMenu WRITE setBookPullDownMenu NOTIFY bookPullDownMenuChanged)
|
||||||
|
Q_PROPERTY(bool keepDisplayOn READ keepDisplayOn WRITE setKeepDisplayOn NOTIFY keepDisplayOnChanged)
|
||||||
|
Q_PROPERTY(int lowBatteryLevel READ lowBatteryLevel WRITE setLowBatteryLevel NOTIFY lowBatteryLevelChanged)
|
||||||
Q_PROPERTY(int volumeUpAction READ volumeUpAction WRITE setVolumeUpAction NOTIFY volumeUpActionChanged)
|
Q_PROPERTY(int volumeUpAction READ volumeUpAction WRITE setVolumeUpAction NOTIFY volumeUpActionChanged)
|
||||||
Q_PROPERTY(int volumeDownAction READ volumeDownAction WRITE setVolumeDownAction NOTIFY volumeDownActionChanged)
|
Q_PROPERTY(int volumeDownAction READ volumeDownAction WRITE setVolumeDownAction NOTIFY volumeDownActionChanged)
|
||||||
Q_PROPERTY(QObject* currentBook READ currentBook WRITE setCurrentBook NOTIFY currentBookChanged)
|
Q_PROPERTY(QObject* currentBook READ currentBook WRITE setCurrentBook NOTIFY currentBookChanged)
|
||||||
|
@ -111,15 +110,18 @@ public:
|
||||||
bool turnPageByTap() const;
|
bool turnPageByTap() const;
|
||||||
void setTurnPageByTap(bool);
|
void setTurnPageByTap(bool);
|
||||||
|
|
||||||
bool keepDisplayOn() const;
|
|
||||||
void setKeepDisplayOn(bool);
|
|
||||||
|
|
||||||
bool bookPullDownMenu() const;
|
bool bookPullDownMenu() const;
|
||||||
void setBookPullDownMenu(bool);
|
void setBookPullDownMenu(bool);
|
||||||
|
|
||||||
bool sampleBookCopied() const;
|
bool sampleBookCopied() const;
|
||||||
void setSampleBookCopied();
|
void setSampleBookCopied();
|
||||||
|
|
||||||
|
bool keepDisplayOn() const;
|
||||||
|
void setKeepDisplayOn(bool);
|
||||||
|
|
||||||
|
int lowBatteryLevel() const;
|
||||||
|
void setLowBatteryLevel(int);
|
||||||
|
|
||||||
Action volumeUpAction() const;
|
Action volumeUpAction() const;
|
||||||
void setVolumeUpAction(int);
|
void setVolumeUpAction(int);
|
||||||
|
|
||||||
|
@ -150,8 +152,9 @@ Q_SIGNALS:
|
||||||
void pageDetailsFixedChanged();
|
void pageDetailsFixedChanged();
|
||||||
void turnPageByTapChanged();
|
void turnPageByTapChanged();
|
||||||
void sampleBookCopiedChanged();
|
void sampleBookCopiedChanged();
|
||||||
void keepDisplayOnChanged();
|
|
||||||
void bookPullDownMenuChanged();
|
void bookPullDownMenuChanged();
|
||||||
|
void keepDisplayOnChanged();
|
||||||
|
void lowBatteryLevelChanged();
|
||||||
void volumeUpActionChanged();
|
void volumeUpActionChanged();
|
||||||
void volumeDownActionChanged();
|
void volumeDownActionChanged();
|
||||||
void currentBookChanged();
|
void currentBookChanged();
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
#include "formats/xhtml/XHTMLReader.h"
|
#include "formats/xhtml/XHTMLReader.h"
|
||||||
#include "library/Tag.h"
|
#include "library/Tag.h"
|
||||||
|
|
||||||
#include <sailfishapp.h>
|
#include <auroraapp.h>
|
||||||
#include <MGConfItem>
|
#include <MGConfItem>
|
||||||
|
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2015-2022 Jolla Ltd.
|
* Copyright (C) 2015-2022 Jolla Ltd.
|
||||||
* Copyright (C) 2015-2022 Slava Monich <slava.monich@jolla.com>
|
* Copyright (C) 2015-2023 Slava Monich <slava@monich.com>
|
||||||
*
|
*
|
||||||
* You may use this file under the terms of the BSD license as follows:
|
* You may use this file under the terms of the BSD license as follows:
|
||||||
*
|
*
|
||||||
|
@ -52,6 +52,7 @@
|
||||||
#include "BooksHints.h"
|
#include "BooksHints.h"
|
||||||
#include "BooksUtil.h"
|
#include "BooksUtil.h"
|
||||||
|
|
||||||
|
#include "HarbourBattery.h"
|
||||||
#include "HarbourColorEditorModel.h"
|
#include "HarbourColorEditorModel.h"
|
||||||
#include "HarbourDisplayBlanking.h"
|
#include "HarbourDisplayBlanking.h"
|
||||||
#include "HarbourDebug.h"
|
#include "HarbourDebug.h"
|
||||||
|
@ -60,7 +61,7 @@
|
||||||
#include "ZLibrary.h"
|
#include "ZLibrary.h"
|
||||||
#include "ZLLanguageUtil.h"
|
#include "ZLLanguageUtil.h"
|
||||||
|
|
||||||
#include <sailfishapp.h>
|
#include <auroraapp.h>
|
||||||
|
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
#include <QQuickView>
|
#include <QQuickView>
|
||||||
|
@ -82,7 +83,7 @@
|
||||||
|
|
||||||
Q_DECL_EXPORT int main(int argc, char **argv)
|
Q_DECL_EXPORT int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
QGuiApplication* app = SailfishApp::application(argc, argv);
|
QGuiApplication* app = Aurora::Application::application(argc, argv);
|
||||||
|
|
||||||
qRegisterMetaType<BooksPos>();
|
qRegisterMetaType<BooksPos>();
|
||||||
qRegisterMetaType<BooksColorScheme>();
|
qRegisterMetaType<BooksColorScheme>();
|
||||||
|
@ -96,14 +97,15 @@ Q_DECL_EXPORT int main(int argc, char **argv)
|
||||||
BOOKS_QML_REGISTER_(BooksPageWidget, "PageWidget");
|
BOOKS_QML_REGISTER_(BooksPageWidget, "PageWidget");
|
||||||
BOOKS_QML_REGISTER_(BooksListWatcher, "ListWatcher");
|
BOOKS_QML_REGISTER_(BooksListWatcher, "ListWatcher");
|
||||||
BOOKS_QML_REGISTER_(BooksCoverWidget, "BookCover");
|
BOOKS_QML_REGISTER_(BooksCoverWidget, "BookCover");
|
||||||
BOOKS_QML_REGISTER_(HarbourDisplayBlanking, "DisplayBlanking");
|
|
||||||
|
|
||||||
// But these do (and I think it's a good idea)
|
// But these do (and I think it's a good idea)
|
||||||
BOOKS_QML_REGISTER(HarbourColorEditorModel);
|
BOOKS_QML_REGISTER(HarbourColorEditorModel);
|
||||||
|
BOOKS_QML_REGISTER(HarbourDisplayBlanking);
|
||||||
BOOKS_QML_REGISTER(BooksColorSchemeModel);
|
BOOKS_QML_REGISTER(BooksColorSchemeModel);
|
||||||
BOOKS_QML_REGISTER(BooksImportModel);
|
BOOKS_QML_REGISTER(BooksImportModel);
|
||||||
BOOKS_QML_REGISTER(BooksPathModel);
|
BOOKS_QML_REGISTER(BooksPathModel);
|
||||||
BOOKS_QML_REGISTER(BooksPageStack);
|
BOOKS_QML_REGISTER(BooksPageStack);
|
||||||
|
BOOKS_QML_REGISTER_SINGLETON(HarbourBattery);
|
||||||
BOOKS_QML_REGISTER_SINGLETON(HarbourUtil);
|
BOOKS_QML_REGISTER_SINGLETON(HarbourUtil);
|
||||||
BOOKS_QML_REGISTER_SINGLETON(BooksHints);
|
BOOKS_QML_REGISTER_SINGLETON(BooksHints);
|
||||||
BOOKS_QML_REGISTER_SINGLETON(BooksUtil);
|
BOOKS_QML_REGISTER_SINGLETON(BooksUtil);
|
||||||
|
@ -114,9 +116,10 @@ Q_DECL_EXPORT int main(int argc, char **argv)
|
||||||
#ifdef OPENREPOS
|
#ifdef OPENREPOS
|
||||||
QString transDir("/usr/share/translations");
|
QString transDir("/usr/share/translations");
|
||||||
#else
|
#else
|
||||||
QString transDir = SailfishApp::pathTo("translations").toLocalFile();
|
QString transDir = Aurora::Application::pathTo("translations").toLocalFile();
|
||||||
#endif
|
#endif
|
||||||
QString transFile(BOOKS_APP_NAME);
|
QString transFile(BOOKS_APP_NAME);
|
||||||
|
|
||||||
if (translator->load(locale, transFile, "-", transDir) ||
|
if (translator->load(locale, transFile, "-", transDir) ||
|
||||||
translator->load(transFile, transDir)) {
|
translator->load(transFile, transDir)) {
|
||||||
app->installTranslator(translator);
|
app->installTranslator(translator);
|
||||||
|
@ -135,7 +138,7 @@ Q_DECL_EXPORT int main(int argc, char **argv)
|
||||||
BOOKS_QML_FILE));
|
BOOKS_QML_FILE));
|
||||||
HDEBUG("qml file" << qPrintable(qml));
|
HDEBUG("qml file" << qPrintable(qml));
|
||||||
|
|
||||||
QQuickView* view = SailfishApp::createView();
|
QQuickView* view = Aurora::Application::createView();
|
||||||
QQmlContext* root = view->rootContext();
|
QQmlContext* root = view->rootContext();
|
||||||
QQmlEngine* engine = root->engine();
|
QQmlEngine* engine = root->engine();
|
||||||
QSharedPointer<BooksSettings> settings = BooksSettings::sharedInstance();
|
QSharedPointer<BooksSettings> settings = BooksSettings::sharedInstance();
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 323fc6b6c98f85265e55425c22d617991178cc44
|
Subproject commit 6f745a05d05a236fa8053a4c2f40a807f83141ab
|
|
@ -1,16 +1,16 @@
|
||||||
Name: harbour-books
|
Name: org.monich.harbour.books
|
||||||
Summary: E-book reader
|
Summary: E-book reader
|
||||||
Version: 1.1.5
|
Version: 1.1.5
|
||||||
Release: 1
|
Release: 2
|
||||||
License: BSD
|
License: BSD
|
||||||
Group: Applications/File
|
Group: Applications/File
|
||||||
URL: http://github.com/monich/harbour-books
|
URL: https://github.com/sprainbrains/harbour-books/tree/auroraos
|
||||||
Source0: %{name}-%{version}.tar.gz
|
Source0: %{name}-%{version}.tar.gz
|
||||||
|
|
||||||
Requires: sailfishsilica-qt5
|
Requires: sailfishsilica-qt5
|
||||||
Requires: qt5-qtsvg-plugin-imageformat-svg
|
Requires: qt5-qtsvg-plugin-imageformat-svg
|
||||||
BuildRequires: pkgconfig(glib-2.0)
|
BuildRequires: pkgconfig(glib-2.0)
|
||||||
BuildRequires: pkgconfig(sailfishapp)
|
BuildRequires: pkgconfig(auroraapp)
|
||||||
BuildRequires: pkgconfig(Qt5Quick)
|
BuildRequires: pkgconfig(Qt5Quick)
|
||||||
BuildRequires: pkgconfig(Qt5Core)
|
BuildRequires: pkgconfig(Qt5Core)
|
||||||
BuildRequires: pkgconfig(Qt5Svg)
|
BuildRequires: pkgconfig(Qt5Svg)
|
||||||
|
@ -22,6 +22,7 @@ BuildRequires: file-devel
|
||||||
BuildRequires: bzip2-devel
|
BuildRequires: bzip2-devel
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
BuildRequires: qt5-qttools-linguist
|
BuildRequires: qt5-qttools-linguist
|
||||||
|
BuildRequires: librsvg-tools
|
||||||
|
|
||||||
%{!?qtc_qmake5:%define qtc_qmake5 %qmake5}
|
%{!?qtc_qmake5:%define qtc_qmake5 %qmake5}
|
||||||
%{!?qtc_make:%define qtc_make make}
|
%{!?qtc_make:%define qtc_make make}
|
||||||
|
@ -34,7 +35,7 @@ FBReader-based e-book reader.
|
||||||
%setup -q -n %{name}-%{version}
|
%setup -q -n %{name}-%{version}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%qtc_qmake5 harbour-books.pro
|
%qtc_qmake5 %{name}.pro
|
||||||
%qtc_make %{?_smp_mflags}
|
%qtc_make %{?_smp_mflags}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
@ -46,6 +47,15 @@ desktop-file-install --delete-original \
|
||||||
--dir %{buildroot}%{_datadir}/applications \
|
--dir %{buildroot}%{_datadir}/applications \
|
||||||
%{buildroot}%{_datadir}/applications/*.desktop
|
%{buildroot}%{_datadir}/applications/*.desktop
|
||||||
|
|
||||||
|
for size in 86 108 128 172
|
||||||
|
do
|
||||||
|
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/
|
||||||
|
|
||||||
|
rsvg-convert --width=${size} --height=${size} --output \
|
||||||
|
%{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/%{name}.png \
|
||||||
|
%{_sourcedir}/../app/icons/harbour-books.svg
|
||||||
|
done
|
||||||
|
|
||||||
%check
|
%check
|
||||||
#make -C test test
|
#make -C test test
|
||||||
|
|
Loading…
Reference in a new issue