Unify cancel button & escape keybind for pages

AddChat and AccountSettings:

- When clicking the cancel button, if there's no previous back to go
  back to, focus the main pane instead of doing nothing

AccountSettings:

- Always enable the cancel button, not just when the form has been
  modified

AddChat, AccountSettings, ServerBrowser:

- Pressing escape will do the same thing as clicking the cancel button
This commit is contained in:
miruka
2021-04-10 01:52:25 -04:00
parent 01e7a1ac13
commit 20e8a19017
5 changed files with 22 additions and 15 deletions

View File

@@ -24,6 +24,9 @@ HBox {
property string connectFutureId: ""
property string fetchServersFutureId: ""
readonly property bool canFocusMainPane:
mainUI.mainPane.normalOrForceCollapse && mainUI.accountsPresent
signal accepted()
function takeFocus() { serverField.item.field.forceActiveFocus() }
@@ -162,11 +165,7 @@ HBox {
visible: Layout.preferredWidth > 0
Layout.fillHeight: true
Layout.preferredWidth:
mainUI.mainPane.normalOrForceCollapse &&
mainUI.accountsPresent ?
implicitWidth :
0
Layout.preferredWidth: box.canFocusMainPane ? implicitWidth : 0
Behavior on Layout.preferredWidth { HNumberAnimation {} }
}
@@ -221,6 +220,8 @@ HBox {
onKeyboardAccept:
if (serverField.item.apply.enabled) serverField.item.apply.clicked()
onKeyboardCancel: if (box.canFocusMainPane) mainUI.mainPane.toggleFocus()
onAccepted: window.saveState(this)
Component.onDestruction: