[app] Use HarbourLib QML components
This commit is contained in:
parent
9422fa4f68
commit
85473cb2b4
7 changed files with 70 additions and 175 deletions
11
app/app.pro
11
app/app.pro
|
@ -32,6 +32,7 @@ HARBOUR_LIB_DIR = $$_PRO_FILE_PWD_/../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
|
||||||
|
HARBOUR_LIB_QML = $$HARBOUR_LIB_DIR/qml
|
||||||
|
|
||||||
# Libraries
|
# Libraries
|
||||||
FBREADER_LIB = $$OUT_PWD/../fbreader/libfbreader.a
|
FBREADER_LIB = $$OUT_PWD/../fbreader/libfbreader.a
|
||||||
|
@ -191,6 +192,16 @@ SOURCES += \
|
||||||
$$HARBOUR_SRC_DIR/HarbourPluginLoader.cpp \
|
$$HARBOUR_SRC_DIR/HarbourPluginLoader.cpp \
|
||||||
$$HARBOUR_SRC_DIR/HarbourTask.cpp
|
$$HARBOUR_SRC_DIR/HarbourTask.cpp
|
||||||
|
|
||||||
|
HARBOUR_QML_COMPONENTS = \
|
||||||
|
$$HARBOUR_LIB_QML/HarbourFitLabel.qml \
|
||||||
|
$$HARBOUR_LIB_QML/HarbourHorizontalSwipeHint.qml
|
||||||
|
|
||||||
|
OTHER_FILES += $${HARBOUR_QML_COMPONENTS}
|
||||||
|
|
||||||
|
qml_components.files = $${HARBOUR_QML_COMPONENTS}
|
||||||
|
qml_components.path = /usr/share/$${TARGET}/qml/harbour
|
||||||
|
INSTALLS += qml_components
|
||||||
|
|
||||||
# Icons
|
# Icons
|
||||||
ICON_SIZES = 86 108 128 256
|
ICON_SIZES = 86 108 128 256
|
||||||
for(s, ICON_SIZES) {
|
for(s, ICON_SIZES) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2015-2018 Jolla Ltd.
|
Copyright (C) 2015-2019 Jolla Ltd.
|
||||||
Copyright (C) 2015-2018 Slava Monich <slava.monich@jolla.com>
|
Copyright (C) 2015-2019 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,14 +8,15 @@
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
are met:
|
are met:
|
||||||
|
|
||||||
* 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.
|
||||||
* 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 in the
|
notice, this list of conditions and the following disclaimer
|
||||||
documentation and/or other materials provided with the distribution.
|
in the documentation and/or other materials provided with the
|
||||||
* Neither the name of Jolla Ltd nor the names of its contributors may
|
distribution.
|
||||||
be used to endorse or promote products derived from this software
|
3. Neither the names of the copyright holders nor the names of its
|
||||||
without specific prior written permission.
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
@ -38,6 +39,8 @@ import harbour.books 1.0
|
||||||
//import Sailfish.Media 1.0 // Not allowed
|
//import Sailfish.Media 1.0 // Not allowed
|
||||||
//import org.nemomobile.policy 1.0 // Not allowed
|
//import org.nemomobile.policy 1.0 // Not allowed
|
||||||
|
|
||||||
|
import "harbour"
|
||||||
|
|
||||||
SilicaFlickable {
|
SilicaFlickable {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
@ -362,7 +365,7 @@ SilicaFlickable {
|
||||||
running: loading
|
running: loading
|
||||||
}
|
}
|
||||||
|
|
||||||
BooksFitLabel {
|
HarbourFitLabel {
|
||||||
anchors.fill: busyIndicator
|
anchors.fill: busyIndicator
|
||||||
text: bookModel.progress > 0 ? bookModel.progress : ""
|
text: bookModel.progress > 0 ? bookModel.progress : ""
|
||||||
opacity: (loading && bookModel.progress > 0) ? 1 : 0
|
opacity: (loading && bookModel.progress > 0) ? 1 : 0
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright (C) 2015 Jolla Ltd.
|
|
||||||
Contact: Slava Monich <slava.monich@jolla.com>
|
|
||||||
|
|
||||||
You may use this file under the terms of BSD license as follows:
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions
|
|
||||||
are met:
|
|
||||||
* Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
* Neither the name of the Jolla Ltd nor the
|
|
||||||
names of its contributors may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
||||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
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 Sailfish.Silica 1.0
|
|
||||||
|
|
||||||
Label {
|
|
||||||
property int minFontSize: Theme.fontSizeTiny
|
|
||||||
property int maxFontSize: Theme.fontSizeMedium
|
|
||||||
|
|
||||||
smooth: true
|
|
||||||
visible: opacity > 0
|
|
||||||
color: Theme.highlightColor
|
|
||||||
anchors.margins: Theme.paddingMedium
|
|
||||||
verticalAlignment: Text.AlignVCenter
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
|
|
||||||
Behavior on opacity { FadeAnimation {} }
|
|
||||||
|
|
||||||
Component.onCompleted: refitText()
|
|
||||||
|
|
||||||
onWidthChanged: refitText()
|
|
||||||
onHeightChanged: refitText()
|
|
||||||
onTextChanged: refitText()
|
|
||||||
onMaxFontSizeChanged: refitText()
|
|
||||||
onMinFontSizeChanged: refitText()
|
|
||||||
|
|
||||||
function refitText() {
|
|
||||||
if (paintedHeight > 0 && paintedWidth > 0) {
|
|
||||||
if (font.pixelSize % 2) font.pixelSize++
|
|
||||||
while (paintedWidth > width || paintedHeight > height) {
|
|
||||||
if ((font.pixelSize -= 2) <= minFontSize)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
while (paintedWidth < width && paintedHeight < height) {
|
|
||||||
font.pixelSize += 2
|
|
||||||
}
|
|
||||||
font.pixelSize -= 2
|
|
||||||
if (font.pixelSize >= maxFontSize) {
|
|
||||||
font.pixelSize = maxFontSize
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2015-2017 Jolla Ltd.
|
Copyright (C) 2015-2019 Jolla Ltd.
|
||||||
Contact: Slava Monich <slava.monich@jolla.com>
|
Copyright (C) 2015-2019 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,14 +8,15 @@
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
are met:
|
are met:
|
||||||
|
|
||||||
* 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.
|
||||||
* 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 in the
|
notice, this list of conditions and the following disclaimer
|
||||||
documentation and/or other materials provided with the distribution.
|
in the documentation and/or other materials provided with the
|
||||||
* Neither the name of Jolla Ltd nor the names of its contributors may
|
distribution.
|
||||||
be used to endorse or promote products derived from this software
|
3. Neither the names of the copyright holders nor the names of its
|
||||||
without specific prior written permission.
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
@ -34,6 +35,8 @@ import QtQuick 2.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import harbour.books 1.0
|
import harbour.books 1.0
|
||||||
|
|
||||||
|
import "harbour"
|
||||||
|
|
||||||
Dialog {
|
Dialog {
|
||||||
id: root
|
id: root
|
||||||
allowedOrientations: window.allowedOrientations
|
allowedOrientations: window.allowedOrientations
|
||||||
|
@ -117,7 +120,7 @@ Dialog {
|
||||||
running: _loading && !importModel.count
|
running: _loading && !importModel.count
|
||||||
}
|
}
|
||||||
|
|
||||||
BooksFitLabel {
|
HarbourFitLabel {
|
||||||
anchors.fill: busyIndicator
|
anchors.fill: busyIndicator
|
||||||
text: importModel.progress > 0 ? importModel.progress : ""
|
text: importModel.progress > 0 ? importModel.progress : ""
|
||||||
opacity: (busyIndicator.running && importModel.progress > 0) ? 1 : 0
|
opacity: (busyIndicator.running && importModel.progress > 0) ? 1 : 0
|
||||||
|
|
|
@ -1,40 +1,42 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2015-2016 Jolla Ltd.
|
Copyright (C) 2015-2019 Jolla Ltd.
|
||||||
Contact: Slava Monich <slava.monich@jolla.com>
|
Copyright (C) 2015-2019 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 BSD license as follows:
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
are met:
|
are met:
|
||||||
|
|
||||||
* 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.
|
||||||
* 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 in
|
notice, this list of conditions and the following disclaimer
|
||||||
the documentation and/or other materials provided with the
|
in the documentation and/or other materials provided with the
|
||||||
distribution.
|
distribution.
|
||||||
* Neither the name of Jolla Ltd nor the names of its contributors
|
3. Neither the names of the copyright holders nor the names of its
|
||||||
may be used to endorse or promote products derived from this
|
contributors may be used to endorse or promote products derived
|
||||||
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 BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
||||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import harbour.books 1.0
|
import harbour.books 1.0
|
||||||
|
|
||||||
|
import "harbour"
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: shelfView
|
id: shelfView
|
||||||
|
|
||||||
|
@ -314,22 +316,18 @@ Item {
|
||||||
active: globalHints.storageLeftSwipe < MaximumHintCount || running
|
active: globalHints.storageLeftSwipe < MaximumHintCount || running
|
||||||
property bool running
|
property bool running
|
||||||
sourceComponent: Component {
|
sourceComponent: Component {
|
||||||
BooksStorageLeftSwipeHint {
|
HarbourHorizontalSwipeHint {
|
||||||
property bool hintCanBeEnabled: !_loading &&
|
hintEnabled: !_loading &&
|
||||||
storageView.visible &&
|
storageView.visible &&
|
||||||
shelfIndex == storageListWatcher.currentIndex &&
|
shelfIndex == storageListWatcher.currentIndex &&
|
||||||
(shelfIndex+1) < storageModel.count &&
|
(shelfIndex+1) < storageModel.count &&
|
||||||
globalHints.storageLeftSwipe < MaximumHintCount
|
globalHints.storageLeftSwipe < MaximumHintCount
|
||||||
|
|
||||||
hintEnabled: hintCanBeEnabled && !hintDelayTimer.running
|
//% "Swipe left to see what's on the SD-card"
|
||||||
|
text: qsTrId("harbour-books-storage-view-swipe_left_hint")
|
||||||
|
swipeRight: false
|
||||||
onHintShown: globalHints.storageLeftSwipe++
|
onHintShown: globalHints.storageLeftSwipe++
|
||||||
onHintRunningChanged: leftSwipeHintLoader.running = hintRunning
|
onHintRunningChanged: leftSwipeHintLoader.running = hintRunning
|
||||||
onHintCanBeEnabledChanged: if (hintCanBeEnabled) hintDelayTimer.restart()
|
|
||||||
Component.onCompleted: if (hintCanBeEnabled) hintDelayTimer.restart()
|
|
||||||
Timer {
|
|
||||||
id: hintDelayTimer
|
|
||||||
interval: 1000
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
import QtQuick 2.0
|
|
||||||
import Sailfish.Silica 1.0
|
|
||||||
|
|
||||||
Loader {
|
|
||||||
id: root
|
|
||||||
anchors.fill: parent
|
|
||||||
active: hintEnabled || hintRunning
|
|
||||||
|
|
||||||
property bool hintEnabled
|
|
||||||
property bool hintRunning
|
|
||||||
signal hintShown()
|
|
||||||
|
|
||||||
sourceComponent: Component {
|
|
||||||
Item {
|
|
||||||
anchors.fill: parent
|
|
||||||
property bool cancelled
|
|
||||||
function showHint() {
|
|
||||||
hintRunning = true
|
|
||||||
hintShownTimer.restart()
|
|
||||||
touchInteractionHint.start()
|
|
||||||
}
|
|
||||||
Connections {
|
|
||||||
target: root
|
|
||||||
onHintEnabledChanged: if (root.hintEnabled) showHint();
|
|
||||||
}
|
|
||||||
Component.onCompleted: if (root.hintEnabled) showHint();
|
|
||||||
InteractionHintLabel {
|
|
||||||
//% "Swipe left to see what's on the SD-card"
|
|
||||||
text: qsTrId("harbour-books-storage-view-swipe_left_hint")
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
opacity: touchInteractionHint.running ? 1.0 : 0.0
|
|
||||||
Behavior on opacity { FadeAnimation { duration: 1000 } }
|
|
||||||
}
|
|
||||||
TouchInteractionHint {
|
|
||||||
id: touchInteractionHint
|
|
||||||
direction: TouchInteraction.Left
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
onRunningChanged: hintRunning = running
|
|
||||||
}
|
|
||||||
Timer {
|
|
||||||
id: hintShownTimer
|
|
||||||
interval: 1000
|
|
||||||
onTriggered: root.hintShown()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 1ee8f17898e140bc160f1222d3f1c502ea0b30e0
|
Subproject commit 0aac36828346324bb8ab99f821ac90361bc82ec9
|
Loading…
Reference in a new issue