Add "+" button to account delegates
This commit is contained in:
parent
83ff9bf61d
commit
45951554a5
|
@ -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()
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 {} }
|
||||||
|
|
Loading…
Reference in New Issue
Block a user