Highlight currently select account/room delegate

This commit is contained in:
miruka
2019-08-17 16:59:13 -04:00
parent 2e89dcae9e
commit 7319c8d7b4
7 changed files with 24 additions and 10 deletions

View File

@@ -2,6 +2,9 @@ import QtQuick 2.12
import QtQuick.Controls 2.12
ListView {
interactive: false
currentIndex: -1
add: Transition {
HNumberAnimation { properties: "x,y"; from: 100 }
}
@@ -20,6 +23,4 @@ ListView {
HNumberAnimation { properties: "x,y"; to: 100 }
}
}
interactive: false
}

View File

@@ -3,5 +3,7 @@ import QtQuick.Controls 2.12
HFixedListView {
interactive: true
keyNavigationWraps: true
ScrollBar.vertical: ScrollBar {}
}

View File

@@ -28,6 +28,10 @@ Column {
height: childrenRect.height
color: theme.sidePane.account.background
checked:
window.uiState.page == "Pages/EditAccount/EditAccount.qml" &&
window.uiState.pageProperties.userId == model.user_id
TapHandler {
onTapped: pageStack.showPage(
"EditAccount/EditAccount", { "userId": model.user_id }

View File

@@ -12,6 +12,11 @@ HInteractiveRectangle {
opacity: model.left ? theme.sidePane.room.leftRoomOpacity : 1
Behavior on opacity { HNumberAnimation {} }
checked:
window.uiState.page == "Chat/Chat.qml" &&
window.uiState.pageProperties.userId == userId &&
window.uiState.pageProperties.roomId == model.room_id
TapHandler { onTapped: pageStack.showRoom(userId, model.room_id) }
HRowLayout {

View File

@@ -10,6 +10,7 @@ HRectangle {
color: theme.sidePane.background
property alias accountList: accountList
property alias paneToolBar: paneToolBar
property real autoWidthRatio: theme.sidePane.autoWidthRatio
@@ -73,6 +74,7 @@ HRectangle {
anchors.fill: parent
AccountList {
id: accountList
Layout.fillWidth: true
Layout.fillHeight: true

View File

@@ -79,17 +79,17 @@ HRectangle {
if (page == "Chat/Chat.qml") {
pageStack.showRoom(props.userId, props.roomId)
} else {
pageStack.show(page, props)
pageStack._show(page, props)
}
}
function show(componentUrl, properties={}) {
function _show(componentUrl, properties={}) {
pageStack.replace(componentUrl, properties)
}
function showPage(name, properties={}) {
let path = "Pages/" + name + ".qml"
show(path, properties)
_show(path, properties)
window.uiState.page = path
window.uiState.pageProperties = properties
@@ -97,7 +97,7 @@ HRectangle {
}
function showRoom(userId, roomId) {
show("Chat/Chat.qml", {userId, roomId})
_show("Chat/Chat.qml", {userId, roomId})
window.uiState.page = "Chat/Chat.qml"
window.uiState.pageProperties = {userId, roomId}