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 2.12
import QtQuick.Controls 2.12 import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12 import QtQuick.Layouts 1.12
import org.kde.kirigami 2.13 as Kirigami
import NeoChat.Component 1.0 import NeoChat.Component 1.0
import org.kde.neochat 1.0 import org.kde.neochat 1.0
Dialog { Kirigami.OverlaySheet {
anchors.centerIn: parent
width: 360
id: root id: root
title: i18n("Create a Room") parent: applicationWindow().overlay
contentItem: ColumnLayout { header: Kirigami.Heading {
AutoTextField { text: i18n("Create a Room")
Layout.fillWidth: true }
contentItem: Kirigami.FormLayout {
TextField {
id: roomNameField id: roomNameField
Kirigami.FormData.label: i18n("Room Name")
placeholderText: i18n("Room Name") onAccepted: roomTopixField.forceActiveFocus();
} }
AutoTextField { TextField {
Layout.fillWidth: true
id: roomTopicField id: roomTopicField
Kirigami.FormData.label: i18n("Room Topic")
placeholderText: i18n("Room Topic") onAccepted: okButton.forceActiveFocus();
}
} }
standardButtons: Dialog.Ok | Dialog.Cancel Button {
id: okButton
onAccepted: Controller.createRoom(Controller.activeConnection, roomNameField.text, roomTopicField.text) text: i18nc("@action:button", "Ok")
onClicked: {
onClosed: destroy() 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") 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 { Kirigami.Action {
text: i18n("Accounts") text: i18n("Accounts")
icon.name: "im-user" icon.name: "im-user"
@@ -191,4 +201,10 @@ Kirigami.ApplicationWindow {
RoomPage {} RoomPage {}
} }
Component {
id: createRoomDialog
CreateRoomDialog {}
}
} }