Qt World Summit Conference App
import Felgo 4.0
import QtQuick 2.2
SocialUserDelegate {
id: scoreItem
x: dp(Theme.navigationBar.defaultBarItemPadding)
width: parent ? parent.width - x : 0
height: dp(48)
property bool higlightFriendPlayersWithColor: contextItem && contextItem.friendsOnly && socialViewItem.higlightFriendPlayersWithColorEnabled || false
property bool isLoggedInPlayer: (!!gameNetworkUser && gameNetworkUser.userId === gameNetworkItem.user.userId) ? true : false
property bool isFriendPlayer: (higlightFriendPlayersWithColor && !!gameNetworkUser && gameNetworkUser.isFriend) ? true : false
property real defaultSpacing: (scoreItem.x / 3)
property var userCustomData: gameNetworkUser.customData ? JSON.parse(gameNetworkUser.customData) : ({})
function getCustomDataString(fieldName) {
return userCustomData[fieldName] ? userCustomData[fieldName] : ""
}
Rectangle {
width: parent ? parent.width + defaultSpacing : 0
anchors{
right: parent ? parent.right : undefined
top: parent ? parent.top : undefined
bottom: parent ? parent.bottom : undefined
}
color: getHighlightColor()
visible: isLoggedInPlayer || isFriendPlayer
opacity: visible ? 0.3 : 1
}
function getHighlightColor() {
if(isLoggedInPlayer)
return socialViewItem.tintLightColor
else if(isFriendPlayer) {
return socialViewItem.tintFriendPlayerHighlightColor
} else
return "white"
}
SocialFlagImage {
id: flagImage
locale: gameNetworkUser && gameNetworkUser.locale || ""
anchors.verticalCenter: parent ? parent.verticalCenter : undefined
anchors.right: parent ? parent.right : undefined
anchors.rightMargin: dp(Theme.navigationBar.defaultBarItemPadding)
height: parent.height * 0.4
visible: socialViewItem.countryCodeEnabled
}
Row {
id: row
spacing: dp(Theme.navigationBar.defaultBarItemPadding)
height: dp(38)
anchors.verticalCenter: parent ? parent.verticalCenter : undefined
Column {
id: rank
anchors.verticalCenter: parent.verticalCenter
spacing: -dp(5)
Text {
id: pos
anchors.horizontalCenter: parent.horizontalCenter
text: modelData ? modelData.pos + 1 : "-1"
font.pixelSize: sp(24)
font.family: socialViewItem.bodyFontName
color: socialViewItem.bodyColor
}
Row {
spacing: dp(2)
anchors.horizontalCenter: parent.horizontalCenter
AppIcon {
iconType: IconType.trophy
color: socialViewItem.tintColor
size: dp(6)
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: 1
}
Text {
id: score
text: modelData ? Math.floor(modelData.value) : 0
font.pixelSize: sp(9)
font.family: socialViewItem.bodyFontName
font.bold: true
color: socialViewItem.tintColor
anchors.verticalCenter: parent.verticalCenter
}
}
}
SocialUserImage {
id: userImage
placeholderImage: "\uf007"
width: row.height
height: row.height
anchors.verticalCenter: parent.verticalCenter
source: modelData && modelData.user && modelData.user.profile_picture || ""
}
Column {
id: col
y: defaultSpacing
spacing: dp(2)
anchors.verticalCenter: parent.verticalCenter
Text {
id: userName
text: !!gameNetworkUser ? gameNetworkItem.getDisplayNameFromUserName(modelData.user.name, modelData.user) : ""
font.pixelSize: sp(14)
font.family: socialViewItem.bodyFontName
color: socialViewItem.bodyColor
width: scoreItem.width - row.spacing * 3 - rank.width - userImage.width - (flagImage.visible && flagImage.locale !== "" ? flagImage.width + row.spacing : 0)
elide: Text.ElideRight
wrapMode: Text.WrapAnywhere
maximumLineCount: 1
}
Flow {
width: userName.width
spacing: dp(6)
Repeater {
model: [
{"text" : getCustomDataString("companyName"), "icon" : IconType.building},
{"text" : getCustomDataString("jobFunction"), "icon" : IconType.suitcase},
{"text" : getCustomDataString("qtInterest"), "icon" : IconType.tag},
{"text" : getCustomDataString("qtExperience"), "icon" : IconType.graduationcap}
]
Row {
spacing: dp(2)
height: detailIcon.height
visible: modelData.text
AppIcon {
id: detailIcon
iconType: modelData.iconType
color: socialViewItem.bodyLightColor
size: dp(6)
textItem.width: width
anchors.verticalCenter: parent.verticalCenter
}
Text {
font.pixelSize: sp(8)
text: modelData.text
color: socialViewItem.bodyLightColor
anchors.verticalCenter: parent.verticalCenter
}
}
}
}
}
}
MouseArea {
anchors.fill: parent
onClicked: {
parentPage.scoreSelected(gameNetworkUser, modelData)