Split RoomPane into Base/MultiviewPane
This commit is contained in:
parent
191e86530f
commit
c49f9b98b2
65
src/gui/Base/MultiviewPane.qml
Normal file
65
src/gui/Base/MultiviewPane.qml
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
|
||||||
|
import QtQuick 2.12
|
||||||
|
import QtQuick.Controls 2.12
|
||||||
|
import QtQuick.Layouts 1.12
|
||||||
|
|
||||||
|
HDrawer {
|
||||||
|
id: pane
|
||||||
|
|
||||||
|
defaultSize: buttonRepeater.summedImplicitWidth
|
||||||
|
minimumSize:
|
||||||
|
buttonRepeater.count > 0 ? buttonRepeater.itemAt(0).implicitWidth : 0
|
||||||
|
|
||||||
|
background: HColumnLayout{
|
||||||
|
Rectangle {
|
||||||
|
color: buttonsBackgroundColor
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: buttonFlow.height
|
||||||
|
|
||||||
|
Behavior on Layout.preferredHeight { HNumberAnimation {} }
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
color: backgroundColor
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.fillHeight: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
property color buttonsBackgroundColor
|
||||||
|
property color backgroundColor
|
||||||
|
|
||||||
|
readonly property alias buttonRepeater: buttonRepeater
|
||||||
|
readonly property alias swipeView: swipeView
|
||||||
|
|
||||||
|
default property alias swipeViewData: swipeView.contentData
|
||||||
|
|
||||||
|
|
||||||
|
HColumnLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
HFlow {
|
||||||
|
id: buttonFlow
|
||||||
|
populate: null
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
HRepeater {
|
||||||
|
id: buttonRepeater
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
HSwipeView {
|
||||||
|
id: swipeView
|
||||||
|
clip: true
|
||||||
|
interactive: ! pane.collapsed
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.fillHeight: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,58 +1,23 @@
|
||||||
// SPDX-License-Identifier: LGPL-3.0-or-later
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
|
||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtQuick.Controls 2.12
|
|
||||||
import QtQuick.Layouts 1.12
|
|
||||||
import "../../../Base"
|
import "../../../Base"
|
||||||
|
import "../../.."
|
||||||
|
|
||||||
HDrawer {
|
MultiviewPane {
|
||||||
id: roomPane
|
id: roomPane
|
||||||
saveName: "roomPane"
|
saveName: "roomPane"
|
||||||
|
|
||||||
edge: Qt.RightEdge
|
edge: Qt.RightEdge
|
||||||
defaultSize: buttonRepeater.summedImplicitWidth
|
|
||||||
minimumSize:
|
|
||||||
buttonRepeater.count > 0 ? buttonRepeater.itemAt(0).implicitWidth : 0
|
|
||||||
|
|
||||||
background: HColumnLayout{
|
buttonsBackgroundColor: theme.chat.roomPaneButtons.background
|
||||||
Rectangle {
|
backgroundColor: theme.chat.roomPane.background
|
||||||
color: theme.chat.roomPaneButtons.background
|
|
||||||
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.preferredHeight: buttonFlow.height
|
|
||||||
|
|
||||||
Behavior on Layout.preferredHeight { HNumberAnimation {} }
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
color: theme.chat.roomPane.background
|
|
||||||
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.fillHeight: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
readonly property alias buttonRepeater: buttonRepeater
|
buttonRepeater.model: [
|
||||||
readonly property alias swipeView: swipeView
|
|
||||||
|
|
||||||
|
|
||||||
HColumnLayout {
|
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
HFlow {
|
|
||||||
id: buttonFlow
|
|
||||||
populate: null
|
|
||||||
|
|
||||||
Layout.fillWidth: true
|
|
||||||
|
|
||||||
HRepeater {
|
|
||||||
id: buttonRepeater
|
|
||||||
model: [
|
|
||||||
"members", "files", "notifications", "history", "settings"
|
"members", "files", "notifications", "history", "settings"
|
||||||
]
|
]
|
||||||
|
|
||||||
HButton {
|
buttonRepeater.delegate: HButton {
|
||||||
height: theme.baseElementsHeight
|
height: theme.baseElementsHeight
|
||||||
backgroundColor: "transparent"
|
backgroundColor: "transparent"
|
||||||
icon.name: "room-view-" + modelData
|
icon.name: "room-view-" + modelData
|
||||||
|
@ -68,22 +33,7 @@ HDrawer {
|
||||||
|
|
||||||
onClicked: swipeView.currentIndex = Math.min(index, 1)
|
onClicked: swipeView.currentIndex = Math.min(index, 1)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
HSwipeView {
|
|
||||||
id: swipeView
|
|
||||||
clip: true
|
|
||||||
interactive: ! roomPane.collapsed
|
|
||||||
|
|
||||||
saveName: "roomPaneView"
|
|
||||||
saveId: chat.roomId
|
|
||||||
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.fillHeight: true
|
|
||||||
|
|
||||||
MemberView {}
|
MemberView {}
|
||||||
SettingsView { fillAvailableHeight: true }
|
SettingsView { fillAvailableHeight: true }
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user