harbour-tooter/qml/pages/components/ItemUser.qml

112 lines
4.3 KiB
QML
Raw Normal View History

2017-10-27 17:44:35 +03:00
import QtQuick 2.0
import Sailfish.Silica 1.0
2017-10-27 17:44:35 +03:00
BackgroundItem {
id: delegate
signal openUser (string notice)
2017-10-27 17:44:35 +03:00
width: parent.width
height: Theme.itemSizeMedium
2017-10-27 17:44:35 +03:00
Rectangle {
2017-10-27 17:44:35 +03:00
id: avatar
width: Theme.itemSizeExtraSmall
height: width
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: Theme.horizontalPageMargin
color: Theme.highlightDimmerColor
Image {
id: img
opacity: status === Image.Ready ? 1.0 : 0.0
Behavior on opacity { FadeAnimator {} }
anchors.fill: parent
source: model.account_avatar
}
BusyIndicator {
size: BusyIndicatorSize.Small
opacity: img.status === Image.Ready ? 0.0 : 1.0
Behavior on opacity { FadeAnimator {} }
running: avatar.status !== Image.Ready
anchors.centerIn: parent
}
2017-10-27 17:44:35 +03:00
MouseArea {
anchors.fill: parent
onClicked: pageStack.push(Qt.resolvedUrl("./../ProfilePage.qml"), {
2020-01-16 00:27:37 +03:00
"display_name": model.account_display_name,
2017-10-27 17:44:35 +03:00
"username": model.account_acct,
"user_id": model.account_id,
"profileImage": model.account_avatar,
"profileBackground": model.account_header,
"note": model.account_note,
"url": model.account_url,
"followers_count": model.account_followers_count,
"following_count": model.account_following_count,
"statuses_count": model.account_statuses_count,
"locked": model.account_locked,
"bot": model.account_bot
2017-10-27 17:44:35 +03:00
})
}
}
2020-06-18 09:32:52 +03:00
Item {
2017-10-27 17:44:35 +03:00
anchors.left: avatar.right
anchors.leftMargin: Theme.paddingLarge
anchors.verticalCenter: parent.verticalCenter
height: account_acct.height + display_name.height
2020-06-15 11:42:10 +03:00
2017-10-27 17:44:35 +03:00
Label {
id: display_name
2020-06-18 09:32:52 +03:00
text: account_display_name ? account_display_name : account_username.split('@')[0]
2020-06-15 11:42:10 +03:00
color: !pressed ? Theme.primaryColor : Theme.highlightColor
2017-10-27 17:44:35 +03:00
font.pixelSize: Theme.fontSizeSmall
2020-06-18 09:32:52 +03:00
anchors.top: parent.top
}
Image {
id: icnBot
visible: account_bot
source: "../../images/icon-s-bot.svg?" + ( pressed ? Theme.highlightColor : Theme.primaryColor )
width: account_bot ? Theme.iconSizeExtraSmall : 0
height: width
y: Theme.paddingLarge
anchors {
left: display_name.right
leftMargin: Theme.paddingSmall
verticalCenter: display_name.verticalCenter
}
2017-10-27 17:44:35 +03:00
}
2020-06-15 11:42:10 +03:00
2017-10-27 17:44:35 +03:00
Label {
id: account_acct
text: "@"+model.account_acct
color: !pressed ? Theme.secondaryColor : Theme.secondaryHighlightColor
anchors.leftMargin: Theme.paddingMedium
font.pixelSize: Theme.fontSizeExtraSmall
2020-06-18 09:32:52 +03:00
anchors.top: display_name.bottom
2017-10-27 17:44:35 +03:00
}
}
2020-06-15 11:42:10 +03:00
onClicked: openUser( {
2020-01-16 00:27:37 +03:00
"display_name": model.account_display_name,
"username": model.account_acct,
"user_id": model.account_id,
"profileImage": model.account_avatar,
"profileBackground": model.account_header,
"note": model.account_note,
"url": model.account_url,
"followers_count": model.account_followers_count,
"following_count": model.account_following_count,
"statuses_count": model.account_statuses_count,
"locked": model.account_locked,
"bot": model.account_bot,
"group": model.account_group
2020-06-15 11:42:10 +03:00
} )
2017-10-27 17:44:35 +03:00
}