diff --git a/imports/NeoChat/Dialog/CreateRoomDialog.qml b/imports/NeoChat/Dialog/CreateRoomDialog.qml index c05ee74a0..ff9b0c6a6 100644 --- a/imports/NeoChat/Dialog/CreateRoomDialog.qml +++ b/imports/NeoChat/Dialog/CreateRoomDialog.qml @@ -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(); + } + } + } } diff --git a/qml/main.qml b/qml/main.qml index f1a4acfb6..f5443e491 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -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 {} + } }