1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2025-09-05 10:12:46 +00:00

Implemented series and final for touches alpha release

This commit is contained in:
Chris Josten 2020-09-26 02:51:37 +02:00
parent 020c968f9c
commit 14a99c3342
30 changed files with 1213 additions and 114 deletions

View file

@ -1,22 +1,140 @@
import QtQuick 2.0
import Sailfish.Silica 1.0
import nl.netsoj.chris.Jellyfin 1.0
import "../components"
import "../Utils.js" as Utils
CoverBackground {
id: cover
Label {
id: label
anchors.centerIn: parent
text: qsTr("My Cover")
text: qsTr("Sailfin")
}
property int rowCount: 8
UserItemModel {
id: randomItems1
apiClient: ApiClient
limit: cover.rowCount
imageTypes: ["Primary"]
sortBy: ["IsFavoriteOrLiked", "Random"]
recursive: true
Component.onCompleted: reload()
}
CoverActionList {
id: coverAction
UserItemModel {
id: randomItems2
apiClient: ApiClient
limit: cover.rowCount
imageTypes: ["Primary"]
sortBy: ["IsFavoriteOrLiked", "Random"]
recursive: true
Component.onCompleted: reload()
}
CoverAction {
iconSource: "image://theme/icon-cover-next"
Row {
id: row1
property bool movingRight: true
property int moveCount: 0
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
transform: [
Translate {
x: -row1.height// + (row1.width - row1.height) / 2;
},
Translate {
id: row1Translate;
Behavior on x { NumberAnimation { duration: 500; easing.type: Easing.InOutQuad }}
}
]
height: parent.height / 2
width: parent.width
Repeater {
model: randomItems1
RemoteImage {
clip: true
height: row1.height
width: height
source: Utils.itemModelImageUrl(ApiClient.baseUrl, model.id, model.imageTags["Primary"], "Primary", {"maxHeight": row1.height})
fillMode: Image.PreserveAspectCrop
Component.onCompleted: console.log(JSON.stringify(model.imageTags))
}
}
CoverAction {
iconSource: "image://theme/icon-cover-pause"
function move() {
if (movingRight) {
row1Translate.x -= row1.height
moveCount++;
} else {
row1Translate.x += row1.height
moveCount--;
}
if (moveCount == 0) movingRight = true;
if (moveCount == rowCount - 3) movingRight = false;
}
}
Row {
id: row2
property bool movingRight: false
property int moveCount: rowCount - 3
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
transform: [
Translate {
x: -row2.height * (rowCount - 2) + (row2.width - row2.height);
},
Translate {
id: row2Translate;
Behavior on x { NumberAnimation { duration: 500; easing.type: Easing.InOutQuad }}
}
]
height: parent.height / 2
width: parent.width
Repeater {
model: randomItems2
RemoteImage {
clip: true
height: row2.height
width: height
source: Utils.itemModelImageUrl(ApiClient.baseUrl, model.id, model.imageTags["Primary"], "Primary", {"maxHeight": row1.height})
fillMode: Image.PreserveAspectCrop
Component.onCompleted: console.log(JSON.stringify(model.imageTags))
}
}
function move() {
if (movingRight) {
row2Translate.x -= row1.height
moveCount++;
} else {
row2Translate.x += row1.height
moveCount--;
}
if (moveCount == 0) movingRight = true;
if (moveCount == rowCount - 3) movingRight = false;
}
}
Timer {
property bool odd: false
running: true
interval: 5000
repeat: true
onTriggered: {
if (odd) {
row1.move()
} else {
row2.move()
}
odd = !odd
}
}
}