Update SidePane componants, add Base.HColumnLayout

This commit is contained in:
miruka 2019-04-28 12:40:18 -04:00
parent 2e8e042808
commit 87c72e32db
10 changed files with 50 additions and 38 deletions

View File

@ -3,21 +3,20 @@ import QtQuick.Controls 2.0
import QtQuick.Layouts 1.4 import QtQuick.Layouts 1.4
import "../base" as Base import "../base" as Base
ColumnLayout { Base.HColumnLayout {
id: accountDelegate id: accountDelegate
spacing: 0
width: parent.width width: parent.width
RowLayout { property string roomListUserId: userId
Base.HRowLayout {
id: row id: row
spacing: 0
Base.HAvatar { id: avatar; name: displayName; dimension: 36 } Base.HAvatar { id: avatar; name: displayName; dimension: 36 }
ColumnLayout { Base.HColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true Layout.fillHeight: true
spacing: 0
Base.HLabel { Base.HLabel {
id: accountLabel id: accountLabel
@ -29,22 +28,20 @@ ColumnLayout {
rightPadding: leftPadding rightPadding: leftPadding
} }
TextField { Base.HTextField {
id: statusEdit id: statusEdit
text: statusMessage || "" text: statusMessage || ""
placeholderText: qsTr("Set status message") placeholderText: qsTr("Set status message")
font.pixelSize: Base.HStyle.fontSize.small
background: null background: null
color: "black"
selectByMouse: true
font.family: "Roboto"
font.pixelSize: 12
Layout.fillWidth: true
padding: 0 padding: 0
leftPadding: accountLabel.leftPadding leftPadding: accountLabel.leftPadding
rightPadding: leftPadding rightPadding: leftPadding
Layout.fillWidth: true
onEditingFinished: { onEditingFinished: {
Backend.setStatusMessage(userId, text) //Backend.setStatusMessage(userId, text)
pageStack.forceActiveFocus() pageStack.forceActiveFocus()
} }
} }
@ -65,17 +62,12 @@ ColumnLayout {
id: roomList id: roomList
visible: true visible: true
interactive: false // no scrolling interactive: false // no scrolling
forUserId: userId userId: roomListUserId
Layout.minimumHeight: Layout.preferredHeight: roomList.visible ? roomList.contentHeight : 0
roomList.visible ?
roomList.contentHeight :
0
Layout.maximumHeight: Layout.minimumHeight
Layout.minimumWidth: Layout.preferredWidth:
parent.width - Layout.leftMargin - Layout.rightMargin parent.width - Layout.leftMargin - Layout.rightMargin
Layout.maximumWidth: Layout.minimumWidth
Layout.margins: accountList.spacing Layout.margins: accountList.spacing
Layout.leftMargin: Layout.leftMargin:

View File

@ -4,8 +4,13 @@ import QtQuick.Layouts 1.4
ListView { ListView {
id: accountList id: accountList
clip: true
spacing: 8 spacing: 8
Layout.leftMargin: spacing
topMargin: spacing
bottomMargin: spacing
model: Backend.models.accounts model: Backend.models.accounts
delegate: AccountDelegate {} delegate: AccountDelegate {}
clip: true
} }

View File

@ -5,29 +5,32 @@ import "../base" as Base
import "utils.js" as SidePaneJS import "utils.js" as SidePaneJS
MouseArea { MouseArea {
id: root id: roomDelegate
width: roomList.width width: roomList.width
height: roomList.childrenHeight height: roomList.childrenHeight
onClicked: pageStack.showRoom(roomList.forUserId, roomId) onClicked: pageStack.showRoom(roomList.userId, roomId)
RowLayout { Base.HRowLayout {
anchors.fill: parent anchors.fill: parent
id: row id: row
spacing: 1 spacing: 1
Base.HAvatar { id: avatar; name: displayName; dimension: root.height } Base.HAvatar {
id: roomAvatar
ColumnLayout { name: displayName
spacing: 0 dimension: roomDelegate.height
}
Base.HColumnLayout {
Base.HLabel { Base.HLabel {
id: roomLabel id: roomLabel
text: displayName ? displayName : "<i>Empty room</i>" text: displayName ? displayName : "<i>Empty room</i>"
textFormat: Text.StyledText textFormat: Text.StyledText
elide: Text.ElideRight elide: Text.ElideRight
maximumLineCount: 1 maximumLineCount: 1
Layout.maximumWidth: row.width - row.spacing - avatar.width Layout.maximumWidth:
row.width - row.totalSpacing - roomAvatar.width
verticalAlignment: Qt.AlignVCenter verticalAlignment: Qt.AlignVCenter
topPadding: -2 topPadding: -2
@ -35,10 +38,11 @@ MouseArea {
leftPadding: 5 leftPadding: 5
rightPadding: leftPadding rightPadding: leftPadding
} }
Base.HLabel { Base.HLabel {
function getText() { function getText() {
return SidePaneJS.getLastRoomEventText( return SidePaneJS.getLastRoomEventText(
roomId, roomList.forUserId roomId, roomList.userId
) )
} }

View File

@ -4,7 +4,7 @@ import QtQuick.Layouts 1.4
import "../base" as Base import "../base" as Base
ListView { ListView {
property var forUserId: null property var userId: null
property int childrenHeight: 36 property int childrenHeight: 36
property int sectionHeight: 16 + spacing property int sectionHeight: 16 + spacing
@ -31,7 +31,7 @@ ListView {
id: roomList id: roomList
spacing: 8 spacing: 8
model: Backend.models.rooms.get(forUserId) model: Backend.models.rooms.get(userId)
delegate: RoomDelegate {} delegate: RoomDelegate {}
section.property: "category" section.property: "category"

View File

@ -10,15 +10,14 @@ Base.HGlassRectangle {
isPageStackDescendant: false isPageStackDescendant: false
ColumnLayout { Base.HColumnLayout {
anchors.fill: parent anchors.fill: parent
spacing: 0
AccountList { AccountList {
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true Layout.fillHeight: true
} }
HToolBar {} PaneToolBar {}
} }
} }

View File

@ -0,0 +1,11 @@
import QtQuick 2.7
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
ColumnLayout {
id: columnLayout
spacing: 0
property int totalSpacing:
spacing * Math.max(0, (columnLayout.visibleChildren.length - 1))
}

View File

@ -4,6 +4,7 @@ import QtQuick.Controls 2.0
TextField { TextField {
font.family: HStyle.fontFamily.sans font.family: HStyle.fontFamily.sans
font.pixelSize: HStyle.fontSize.normal font.pixelSize: HStyle.fontSize.normal
color: HStyle.colors.foreground
selectByMouse: true selectByMouse: true
} }