New HTabbedBoxes component, base AddChat on it
This commit is contained in:
parent
883d1c095b
commit
28b3727e88
42
src/qml/Base/HTabbedBoxes.qml
Normal file
42
src/qml/Base/HTabbedBoxes.qml
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
import QtQuick 2.12
|
||||||
|
import QtQuick.Controls 2.12
|
||||||
|
import QtQuick.Layouts 1.12
|
||||||
|
|
||||||
|
HColumnLayout {
|
||||||
|
implicitWidth: Math.min(
|
||||||
|
parent.width,
|
||||||
|
Math.max(tabBar.contentWidth, swipeView.contentWidth),
|
||||||
|
)
|
||||||
|
|
||||||
|
Layout.alignment: Qt.AlignCenter
|
||||||
|
Layout.fillWidth: false
|
||||||
|
Layout.fillHeight: false
|
||||||
|
|
||||||
|
property alias tabIndex: tabBar.currentIndex
|
||||||
|
property alias tabModel: tabRepeater.model
|
||||||
|
default property alias boxes: swipeView.contentData
|
||||||
|
|
||||||
|
HTabBar {
|
||||||
|
id: tabBar
|
||||||
|
Component.onCompleted: shortcuts.tabsTarget = this
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
id: tabRepeater
|
||||||
|
HTabButton { text: modelData }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SwipeView {
|
||||||
|
id: swipeView
|
||||||
|
clip: true
|
||||||
|
currentIndex: tabBar.currentIndex
|
||||||
|
interactive: false
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
Behavior on implicitWidth { HNumberAnimation {} }
|
||||||
|
Behavior on implicitHeight { HNumberAnimation {} }
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,7 +6,6 @@ import "../../utils.js" as Utils
|
||||||
|
|
||||||
HPage {
|
HPage {
|
||||||
id: addChatPage
|
id: addChatPage
|
||||||
onFocusChanged: findSomeone.forceActiveFocus()
|
|
||||||
|
|
||||||
|
|
||||||
property string userId
|
property string userId
|
||||||
|
@ -15,48 +14,13 @@ HPage {
|
||||||
Utils.getItem(modelSources["Account"] || [], "user_id", userId)
|
Utils.getItem(modelSources["Account"] || [], "user_id", userId)
|
||||||
|
|
||||||
|
|
||||||
HColumnLayout {
|
HTabbedBoxes {
|
||||||
Layout.alignment: Qt.AlignCenter
|
tabModel: [
|
||||||
Layout.minimumWidth: Layout.maximumWidth
|
qsTr("Find someone"), qsTr("Join room"), qsTr("Create room"),
|
||||||
Layout.maximumWidth: Math.min(
|
|
||||||
parent.width,
|
|
||||||
Math.max(tabBar.contentWidth, swipeView.contentWidth),
|
|
||||||
)
|
|
||||||
|
|
||||||
HTabBar {
|
|
||||||
id: tabBar
|
|
||||||
currentIndex: 0
|
|
||||||
Component.onCompleted: shortcuts.tabsTarget = this
|
|
||||||
|
|
||||||
Layout.fillWidth: true
|
|
||||||
|
|
||||||
Repeater {
|
|
||||||
model: [
|
|
||||||
qsTr("Find someone"),
|
|
||||||
qsTr("Join room"),
|
|
||||||
qsTr("Create room"),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
HTabButton {
|
FindSomeone { Component.onCompleted: forceActiveFocus() }
|
||||||
text: modelData
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SwipeView {
|
|
||||||
id: swipeView
|
|
||||||
clip: true
|
|
||||||
currentIndex: tabBar.currentIndex
|
|
||||||
interactive: false
|
|
||||||
|
|
||||||
Layout.fillWidth: true
|
|
||||||
|
|
||||||
Behavior on implicitWidth { HNumberAnimation {} }
|
|
||||||
Behavior on implicitHeight { HNumberAnimation {} }
|
|
||||||
|
|
||||||
FindSomeone { id: findSomeone }
|
|
||||||
JoinRoom {}
|
JoinRoom {}
|
||||||
CreateRoom {}
|
CreateRoom {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user