Add "+" button to account delegates

This commit is contained in:
miruka 2019-11-07 06:44:53 -04:00
parent 83ff9bf61d
commit 45951554a5
3 changed files with 88 additions and 57 deletions

View File

@ -1,5 +1,6 @@
import QtQuick 2.12 import QtQuick 2.12
import QtQuick.Layouts 1.12 import QtQuick.Layouts 1.12
import "../utils.js" as Utils
HButton { HButton {
id: tile id: tile
@ -7,7 +8,7 @@ HButton {
signal leftClicked() signal leftClicked()
signal rightClicked() signal rightClicked()
default property var additionalItems: [] default property alias additionalData: contentItem.data
readonly property alias title: title readonly property alias title: title
readonly property alias additionalInfo: additionalInfo readonly property alias additionalInfo: additionalInfo
@ -16,9 +17,18 @@ HButton {
property HMenu contextMenu: HMenu {} property HMenu contextMenu: HMenu {}
property Item image property Component image
property Item details: HColumnLayout {
contentItem: HRowLayout {
id: contentItem
spacing: tile.spacing
HLoader {
sourceComponent: image
}
HColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
HRowLayout { HRowLayout {
@ -65,13 +75,13 @@ HButton {
Behavior on Layout.maximumHeight { HNumberAnimation {} } Behavior on Layout.maximumHeight { HNumberAnimation {} }
} }
} }
contentItem: HRowLayout {
spacing: tile.spacing
children: [image, details].concat(additionalItems)
} }
// Binding { target: details; property: "parent"; value: contentItem }
// Binding { target: image; property: "parent"; value: contentItem }
TapHandler { TapHandler {
acceptedButtons: Qt.LeftButton acceptedButtons: Qt.LeftButton
onTapped: leftClicked() onTapped: leftClicked()

View File

@ -11,8 +11,6 @@ HTileDelegate {
userId: model.user_id userId: model.user_id
displayName: model.display_name displayName: model.display_name
mxc: model.avatar_url mxc: model.avatar_url
width: height
height: memberDelegate.height
} }
title.text: model.display_name || model.user_id title.text: model.display_name || model.user_id

View File

@ -57,22 +57,45 @@ HTileDelegate {
title.font.pixelSize: theme.fontSize.big title.font.pixelSize: theme.fontSize.big
title.leftPadding: sidePane.currentSpacing title.leftPadding: sidePane.currentSpacing
HButton {
id: addChat
iconItem.dimension: 16
icon.name: "add-account" // TODO
backgroundColor: "transparent"
toolTip.text: qsTr("Add new chat")
// onClicked: accountDelegate.toggleCollapse()
leftPadding: theme.spacing / 2
rightPadding: leftPadding
visible: opacity > 0
opacity: expand.loading ? 0 : 1
Layout.fillHeight: true
Behavior on opacity { HNumberAnimation {} }
}
HButton { HButton {
id: expand id: expand
loading: ! model.data.first_sync_done || ! model.data.profile_updated loading: ! model.data.first_sync_done || ! model.data.profile_updated
iconItem.dimension: 16
icon.name: "expand" icon.name: "expand"
backgroundColor: "transparent" backgroundColor: "transparent"
padding: sidePane.currentSpacing / 1.5
rightPadding: leftPadding
toolTip.text: collapsed ? qsTr("Expand") : qsTr("Collapse") toolTip.text: collapsed ? qsTr("Expand") : qsTr("Collapse")
onClicked: accountDelegate.toggleCollapse() onClicked: accountDelegate.toggleCollapse()
leftPadding: theme.spacing / 2
rightPadding: leftPadding
visible: opacity > 0 visible: opacity > 0
opacity: ! loading && accountDelegate.forceExpand ? 0 : 1 opacity: ! loading && accountDelegate.forceExpand ? 0 : 1
Layout.fillHeight: true
iconItem.transform: Rotation { iconItem.transform: Rotation {
origin.x: expand.iconItem.dimension / 2 origin.x: expand.iconItem.width / 2
origin.y: expand.iconItem.dimension / 2 origin.y: expand.iconItem.height / 2
angle: expand.loading ? 0 : collapsed ? 180 : 90 angle: expand.loading ? 0 : collapsed ? 180 : 90
Behavior on angle { HNumberAnimation {} } Behavior on angle { HNumberAnimation {} }