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

@ -58,6 +58,16 @@ HFlickableColumnPage {
}
function cancel() {
if (
! nameField.item.changed &&
! aliasFieldItem.changed &&
! fileDialog.selectedFile &&
! fileDialog.file
) {
pageLoader.showPrevious() || mainUI.mainPane.toggleFocus()
return
}
nameField.item.reset()
aliasFieldItem.reset()
fileDialog.selectedFile = ""
@ -82,7 +92,7 @@ HFlickableColumnPage {
}
CancelButton {
enabled: saveButton.enabled && ! saveButton.loading
enabled: ! saveButton.loading
onClicked: cancel()
}
}

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:

View File

@ -47,7 +47,7 @@ HFlickableColumnPage {
blockOtherServersCheckBox.reset()
errorMessage.text = ""
pageLoader.showPrevious()
pageLoader.showPrevious() || mainUI.mainPane.toggleFocus()
}
enabled: account && account.presence !== "offline"

View File

@ -58,7 +58,7 @@ HFlickableColumnPage {
userField.item.reset()
errorMessage.text = ""
pageLoader.showPrevious()
pageLoader.showPrevious() || mainUI.mainPane.toggleFocus()
}
enabled: account && account.presence !== "offline"
@ -73,12 +73,8 @@ HFlickableColumnPage {
}
CancelButton {
onClicked: {
userField.item.reset()
errorMessage.text = ""
pageLoader.showPrevious()
}
enabled: main
onClicked: page.cancel()
}
}

View File

@ -51,7 +51,7 @@ HFlickableColumnPage {
roomField.item.reset()
errorMessage.text = ""
pageLoader.showPrevious()
pageLoader.showPrevious() || mainUI.mainPane.toggleFocus()
}
enabled: account && account.presence !== "offline"