Add create room dialog

This commit is contained in:
Carl Schwan
2020-11-27 15:06:29 +01:00
parent b0bbd3631f
commit c1dccf7a7e
2 changed files with 43 additions and 24 deletions

View File

@@ -6,40 +6,43 @@
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import org.kde.kirigami 2.13 as Kirigami
import NeoChat.Component 1.0
import org.kde.neochat 1.0
Dialog {
anchors.centerIn: parent
width: 360
Kirigami.OverlaySheet {
id: root
title: i18n("Create a Room")
parent: applicationWindow().overlay
contentItem: ColumnLayout {
AutoTextField {
Layout.fillWidth: true
id: roomNameField
placeholderText: i18n("Room Name")
}
AutoTextField {
Layout.fillWidth: true
id: roomTopicField
placeholderText: i18n("Room Topic")
}
header: Kirigami.Heading {
text: i18n("Create a Room")
}
standardButtons: Dialog.Ok | Dialog.Cancel
contentItem: Kirigami.FormLayout {
TextField {
id: roomNameField
Kirigami.FormData.label: i18n("Room Name")
onAccepted: roomTopixField.forceActiveFocus();
}
onAccepted: Controller.createRoom(Controller.activeConnection, roomNameField.text, roomTopicField.text)
TextField {
id: roomTopicField
Kirigami.FormData.label: i18n("Room Topic")
onAccepted: okButton.forceActiveFocus();
}
onClosed: destroy()
Button {
id: okButton
text: i18nc("@action:button", "Ok")
onClicked: {
Controller.createRoom(Controller.activeConnection, roomNameField.text, roomTopicField.text)
root.close();
// TODO investigate how to join the new room automatically
root.destroy();
}
}
}
}

View File

@@ -111,6 +111,16 @@ Kirigami.ApplicationWindow {
enabled: pageStack.layers.currentItem.title !== i18n("Start a Chat")
},
Kirigami.Action {
text: i18n("Create a Room")
icon.name: "irc-join-channel"
onTriggered: {
let dialog = createRoomDialog.createObject(root.overlay);
dialog.open();
}
enabled: pageStack.layers.currentItem.title !== i18n("Start a Chat")
},
Kirigami.Action {
text: i18n("Accounts")
icon.name: "im-user"
@@ -191,4 +201,10 @@ Kirigami.ApplicationWindow {
RoomPage {}
}
Component {
id: createRoomDialog
CreateRoomDialog {}
}
}