426 lines
15 KiB
QML
426 lines
15 KiB
QML
import QtQuick 2.0
|
|
import Sailfish.Silica 1.0
|
|
import "../JSONListModel"
|
|
|
|
ListItem {
|
|
id: showDelegate
|
|
width: ListView.view.width
|
|
contentHeight: showImg.height + showName.height + (Theme.paddingLarge * 4)
|
|
|
|
property bool favorite: getFav(model.id)
|
|
property string prev: ""
|
|
property string next: ""
|
|
property string nextse: ""
|
|
property string genretext: ""
|
|
|
|
ListModel{id: sgenres}
|
|
|
|
function getArrary(ent, model) {
|
|
if (ent) {
|
|
console.log("LEN: "+ent.count)
|
|
for (var i = 0; i < ent.count; i ++) {
|
|
console.log(ent.get(i))
|
|
model.append(ent.get(i))
|
|
}
|
|
}
|
|
}
|
|
|
|
JSONSimple {
|
|
id: nextshow
|
|
onReadyChanged: {
|
|
if (ready) {
|
|
simple.airdate ? next = simple.airdate : next = "?"
|
|
next !== "" ? nextse = "S"+simple.season+"E"+simple.number : nextse = ""
|
|
}
|
|
}
|
|
}
|
|
|
|
JSONSimple {
|
|
id: prevshow
|
|
onReadyChanged: {
|
|
if (ready) {
|
|
simple.airdate ? prev = simple.airdate : prev = "?"
|
|
if (model._links.nextepisode) {
|
|
nextshow.source = model._links.nextepisode.href
|
|
} else {
|
|
next = "?"
|
|
nextse = ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
RemorseItem {
|
|
id: remorse
|
|
wrapMode: Text.WordWrap
|
|
}
|
|
|
|
function showRemorseItem() {
|
|
var idx = index
|
|
remorseAction( "Removing "+name+" from favorites!", function() {delFav(model.id);favorite = false})
|
|
}
|
|
|
|
OpacityRampEffect {
|
|
sourceItem: showRect
|
|
direction: OpacityRamp.TopToBottom
|
|
offset: 0.0
|
|
slope: 1.0
|
|
}
|
|
|
|
Rectangle {
|
|
id: showRect
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
width: parent.width
|
|
height: showName.height + Theme.paddingLarge
|
|
color: Theme.rgba(Theme.highlightBackgroundColor, Theme.highlightBackgroundOpacity)
|
|
}
|
|
|
|
Image {
|
|
id: nextIcon
|
|
anchors.verticalCenter: showRect.verticalCenter
|
|
anchors.right: showRect.right
|
|
anchors.rightMargin: Theme.paddingMedium
|
|
source: "image://theme/icon-m-right"
|
|
}
|
|
|
|
Image {
|
|
id: seenIcon
|
|
visible: false
|
|
anchors.right: parent.right
|
|
anchors.bottom: showImg.bottom
|
|
anchors.rightMargin: Theme.paddingMedium
|
|
source: "image://theme/icon-m-acknowledge"
|
|
}
|
|
|
|
Text {
|
|
id: showName
|
|
text: model.name !== null ? model.name : ""
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
anchors.rightMargin: Theme.paddingMedium
|
|
anchors.left: parent.left
|
|
anchors.right: nextIcon.left
|
|
anchors.verticalCenter: showRect.verticalCenter
|
|
wrapMode: Text.ElideRight
|
|
font.pixelSize: Theme.fontSizeLarge
|
|
maximumLineCount: 1
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
// console.log("COMPLETED")
|
|
//sgenres.clear()
|
|
// getArrary(model.genres,sgenres)
|
|
//blahh = model.get(0).genres
|
|
//console.log("GENRES: "+blahh.get(1))
|
|
if (model._links.previousepisode) {
|
|
prevshow.source = model._links.previousepisode.href
|
|
} else {
|
|
prev = "";
|
|
next = "";
|
|
nextse = ""
|
|
}
|
|
//sgenres = model.genres
|
|
//console.log("GENRE: "+sgenres.get(0)[0])
|
|
//var temp = [] //model.genres.count
|
|
//temp = model.genres
|
|
//var genretext = ""
|
|
//console.log("LOG: "+ genres.get(1).modelData)
|
|
//var genre = temp.split(",")
|
|
// for(var i = 0; i < model.genres.count; i++) {
|
|
//fruitModel.get(0).attributes.get(1).value
|
|
//genretext = genretext + "|" + model.genres.get(i) //model.genres.sublist(i)
|
|
|
|
|
|
// }
|
|
//return genretext
|
|
|
|
}
|
|
|
|
Image {
|
|
id: showImg
|
|
anchors.top: showRect.bottom
|
|
anchors.margins: Theme.paddingLarge
|
|
anchors.left: parent.left
|
|
fillMode: Image.PreserveAspectFit
|
|
source: model.image ? model.image.medium : "../No-Image-.png"
|
|
width: height * 0.8
|
|
// height: (showName.height + showStatus.height + showPrem.height + showRating.height + showNext.height + showPrev.height + Theme.paddingMedium) * showImg.scale
|
|
height: (showName.height + showS.height + showP.height + showR.height + showN.height + showPr.height + Theme.paddingLarge) * showImg.scale
|
|
scale: 1.1
|
|
|
|
BusyIndicator {
|
|
id: imgBysy
|
|
running: showImg.progress !== 1.0
|
|
size: BusyIndicatorSize.Large
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
}
|
|
}
|
|
|
|
Image {
|
|
id: favIcon
|
|
//visible: false
|
|
anchors.right: parent.right
|
|
anchors.top: showImg.top
|
|
//anchors.verticalCenter: showStatus.verticalCenter
|
|
height: showStatus.height + (showStatus.height/2)
|
|
width: height
|
|
anchors.rightMargin: Theme.paddingMedium
|
|
source: favorite ? "image://theme/icon-m-favorite-selected" : "image://theme/icon-m-favorite"
|
|
MouseArea {
|
|
anchors.fill: favIcon
|
|
onClicked: if (getFav(model.id)) {showRemorseItem()} else {
|
|
console.log("ID: "+model.id)
|
|
var network
|
|
model.webChannel ? network = model.webChannel.name : network = model.network.name
|
|
addFav(model.id, model.name, showImg.source, model.summary, model.status, model.premiered, model.rating.average, network, model.updated, prev, next, nextse, model.externals.imdb);
|
|
reloadFav()
|
|
favorite=true
|
|
}
|
|
}
|
|
BusyIndicator {
|
|
id: addBusy
|
|
running: false
|
|
size: BusyIndicatorSize.Medium
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
}
|
|
}
|
|
|
|
Text {
|
|
id: showS
|
|
text: "Status:"
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.WordWrap
|
|
anchors.topMargin: Theme.paddingMedium
|
|
anchors.bottom: showP.top
|
|
anchors.left: showImg.right
|
|
//anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
|
|
Text {
|
|
id: showStatus
|
|
text: model.status !== null ? model.status : ""
|
|
//color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
color: {//highlighted ? Theme.highlightColor : running && f_next !== "?" ? Theme.primaryColor : ended ? Theme.errorColor : Theme.secondaryColor
|
|
if (highlighted) Theme.highlightColor;
|
|
else if (model.status === "Ended") Theme.errorColor;
|
|
else if (model.status === "Running" && next !== "?") Theme.highlightColor
|
|
else if (model.status === "Running" && next === "?") Theme.primaryColor
|
|
else Theme.secondaryColor
|
|
}
|
|
wrapMode: Text.WordWrap
|
|
anchors.topMargin: Theme.paddingMedium
|
|
anchors.bottom: showP.top
|
|
//anchors.left: showImg.right
|
|
anchors.left: showS.right
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
font.bold: true
|
|
}
|
|
|
|
Text {
|
|
id: showP
|
|
text: "Premiered:"
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.WordWrap
|
|
anchors.bottom: showR.top
|
|
anchors.left: showImg.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
|
|
Text {
|
|
id: showPrem
|
|
text: model.premiered !== null ? model.premiered : ""
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.WordWrap
|
|
anchors.bottom: showR.top
|
|
anchors.left: showP.right
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
font.bold: true
|
|
}
|
|
|
|
/* Text {
|
|
id: showPrem
|
|
text: model.premiered !== null ? "Premiered: <b>" + model.premiered + "</b>" : ""
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.WordWrap
|
|
anchors.top: showStatus.bottom
|
|
anchors.left: showImg.right
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
*/
|
|
|
|
Text {
|
|
id: showR
|
|
text: "Average rating:"
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.WordWrap
|
|
anchors.bottom: showN.top
|
|
anchors.left: showImg.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
|
|
Text {
|
|
id: showRating
|
|
text: model.rating.average ? model.rating.average : "?"
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.WordWrap
|
|
anchors.bottom: showN.top
|
|
anchors.left: showR.right
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
font.bold: true
|
|
}
|
|
/*
|
|
Text {
|
|
id: showRating
|
|
text: model.rating.average ? "Average rating: <b>" + model.rating.average + "</b>" : "Average rating: <b>?</b>"
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.WordWrap
|
|
anchors.top: showPrem.bottom
|
|
anchors.left: showImg.right
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
*/
|
|
Text {
|
|
id: showN
|
|
text: "Network:"
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.ElideRight
|
|
maximumLineCount: 1
|
|
anchors.bottom: showPr.top
|
|
anchors.left: showImg.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
|
|
Text {
|
|
id: showNetwork
|
|
text: model.webChannel ? model.webChannel.name : model.network.name
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.ElideRight
|
|
maximumLineCount: 1
|
|
anchors.bottom: showPr.top
|
|
anchors.left: showN.right
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
font.bold: true
|
|
}
|
|
/*
|
|
Text {
|
|
id: showNetwork
|
|
text: model.webChannel ? "Network: <b>" + model.webChannel.name + "</b>" : "Network: <b>" + model.network.name + "</b>"
|
|
//enabled: model.network.name ? true : false
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.ElideRight
|
|
maximumLineCount: 1
|
|
anchors.top: showRating.bottom
|
|
anchors.left: showImg.right
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
*/
|
|
Text {
|
|
id: showPr
|
|
text: "Previous:"
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.ElideRight
|
|
maximumLineCount: 1
|
|
anchors.bottom: showNe.top
|
|
anchors.left: showImg.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
|
|
Text {
|
|
id: showPrev
|
|
text: prev
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.ElideRight
|
|
maximumLineCount: 1
|
|
anchors.bottom: showNe.top
|
|
anchors.left: showPr.right
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
font.bold: prev !== "Unknown" ? true : false
|
|
}
|
|
|
|
Text {
|
|
id: showNe
|
|
text: nextse !== "" ? "Next: ("+nextse+")" : "Next: "
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.ElideRight
|
|
maximumLineCount: 1
|
|
anchors.bottom: showImg.bottom
|
|
anchors.bottomMargin: Theme.paddingSmall
|
|
anchors.left: showImg.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
|
|
Text {
|
|
id: showNext
|
|
text: next
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.ElideRight
|
|
maximumLineCount: 1
|
|
anchors.bottom: showImg.bottom
|
|
anchors.bottomMargin: Theme.paddingSmall
|
|
anchors.left: showNe.right
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
font.bold: next !== "Unknown" ? true : false
|
|
}
|
|
|
|
/* Text {
|
|
id: showGenre
|
|
text: ""//sgenres.get(1)[0]//genre() //model.network ? "Network: <b>" + model.network.name + "</b>" : "Network:"
|
|
color: highlighted ? Theme.highlightColor : Theme.primaryColor
|
|
wrapMode: Text.ElideRight
|
|
maximumLineCount: 1
|
|
anchors.top: showImg.bottom
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: Theme.paddingMedium
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
} */
|
|
|
|
onPressAndHold: {
|
|
pageStack.push(Qt.resolvedUrl("../pages/ShowImg.qml"),{"img": model.image ? model.image.medium : "../No-Image-.png"})
|
|
//pageStack.push(Qt.resolvedUrl("SeasonsPage.qml"),{"showid": model.id,"showname": model.name,"showimage": showImg.source} )
|
|
}
|
|
|
|
onClicked: {
|
|
//frompage === undefined ?
|
|
var network
|
|
model.webChannel ? network = model.webChannel.name : network = model.network.name
|
|
pageStack.push(Qt.resolvedUrl("../pages/InfoPage.qml"),
|
|
{"showid": model.id,"showname": model.name, "showimage": showImg.source, "summary": model.summary, "showstatus": model.status, "showprem": model.premiered, "showrating": model.rating.average, "shownetwork": network, "showupdated": model.updated, "showprev": model.previousepisode, "shownext": model.nextepisode, "simdb": model.externals.imdb, "sofficial": model.officialSite})
|
|
|
|
|
|
//:
|
|
//pageStack.pop(frompage,PageStackAction.Immediate)
|
|
//frompage = undefined
|
|
//pageStack.push(Qt.resolvedUrl("../pages/InfoPage.qml"),{"showid": model.id,"showname": model.name, "showimage": showImg.source, "summary": model.summary, "showstatus": model.status, "showprem": model.premiered, "showrating": model.rating.average, "shownetwork": model.network.name, "showupdated": model.updated, "showprev": model.previousepisode, "shownext": model.nextepisode})//pageStack.clear();pageStack.push(Qt.resolvedUrl("SearchPage.qml")),{};
|
|
}
|
|
}
|
|
|