CreateRoom dialog in QML

pull/1019/head
Malte E 3 years ago
parent 9bac429eae
commit b8b31cb36d
  1. 13
      resources/qml/RoomList.qml
  2. 81
      resources/qml/dialogs/CreateRoom.qml
  3. 1
      resources/res.qrc

@ -26,6 +26,13 @@ Page {
} }
Component {
id: createRoomComponent
CreateRoom {
}
}
ListView { ListView {
id: roomlist id: roomlist
@ -648,7 +655,11 @@ Page {
Platform.MenuItem { Platform.MenuItem {
text: qsTr("Create a new room") text: qsTr("Create a new room")
onTriggered: Nheko.openCreateRoomDialog() onTriggered: {
var createRoom = createRoomComponent.createObject(timelineRoot);
createRoom.show();
timelineRoot.destroyOnClose(createRoom);
}
} }
} }

@ -0,0 +1,81 @@
// SPDX-FileCopyrightText: 2021 Nheko Contributors
// SPDX-FileCopyrightText: 2022 Nheko Contributors
//
// SPDX-License-Identifier: GPL-3.0-or-later
import ".."
import QtQuick 2.15
import QtQuick.Window 2.13
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.3
import im.nheko 1.0
ApplicationWindow {
id: createRoomRoot
title: qsTr("Create Room")
minimumWidth: rootLayout.implicitWidth+2*rootLayout.anchors.margins
minimumHeight: rootLayout.implicitHeight+footer.implicitHeight+2*rootLayout.anchors.margins
GridLayout {
id: rootLayout
anchors.fill: parent
anchors.margins: Nheko.paddingSmall
columns: 2
MatrixTextField {
id: newRoomName
Layout.columnSpan: 2
Layout.fillWidth: true
focus: true
placeholderText: qsTr("Name")
}
MatrixTextField {
id: newRoomTopic
Layout.columnSpan: 2
Layout.fillWidth: true
focus: true
placeholderText: qsTr("Topic")
}
MatrixTextField {
id: newRoomAlias
Layout.columnSpan: 2
Layout.fillWidth: true
focus: true
placeholderText: qsTr("Alias")
}
Label {
Layout.preferredWidth: implicitWidth
Layout.alignment: Qt.AlignLeft
text: qsTr("Room Visibility")
color: Nheko.colors.text
}
ComboBox {
id: newRoomVisibility
Layout.preferredWidth: implicitWidth
Layout.alignment: Qt.AlignRight
model: [qsTr("Private"), qsTr("Public")]
}
Label {
Layout.preferredWidth: implicitWidth
Layout.alignment: Qt.AlignLeft
text: qsTr("Room Preset")
color: Nheko.colors.text
}
ComboBox {
id: newRoomPreset
Layout.preferredWidth: implicitWidth
Layout.alignment: Qt.AlignRight
model: [qsTr("Private Chat"), qsTr("Public Chat"), qsTr("Trusted Private Chat")]
}
}
footer: DialogButtonBox {
standardButtons: DialogButtonBox.Cancel
Button {
text: "CreateRoom"
DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole
}
onRejected: createRoomRoot.close();
//onAccepted: createRoom(newRoomName.text, newRoomTopic.text, newRoomAlias.text, newRoomVisibility.index, newRoomPreset.index)
}
}

@ -143,6 +143,7 @@
<file>qml/device-verification/NewVerificationRequest.qml</file> <file>qml/device-verification/NewVerificationRequest.qml</file>
<file>qml/device-verification/Success.qml</file> <file>qml/device-verification/Success.qml</file>
<file>qml/device-verification/Waiting.qml</file> <file>qml/device-verification/Waiting.qml</file>
<file>qml/dialogs/CreateRoom.qml</file>
<file>qml/dialogs/ImageOverlay.qml</file> <file>qml/dialogs/ImageOverlay.qml</file>
<file>qml/dialogs/ImagePackEditorDialog.qml</file> <file>qml/dialogs/ImagePackEditorDialog.qml</file>
<file>qml/dialogs/ImagePackSettingsDialog.qml</file> <file>qml/dialogs/ImagePackSettingsDialog.qml</file>

Loading…
Cancel
Save