fix: menu dropdowns not closing on button click and position

This commit is contained in:
Jonathan Rainville 2021-04-01 14:22:08 -04:00 committed by Iuri Matias
parent 62b0c63965
commit 6c0fce5b0c
4 changed files with 32 additions and 10 deletions

View File

@ -95,6 +95,7 @@ Rectangle {
ChannelContextMenu {
id: chatContextMenu
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
}
PopupMenu {

View File

@ -1,6 +1,7 @@
import QtQuick 2.13
import QtQuick.Controls 2.13
import QtQuick.Layouts 1.13
import "../../../../imports"
import "../../../../shared"
import "../../../../shared/status"
import "../components"
@ -13,15 +14,19 @@ StatusRoundButton {
width: 36
height: 36
onClicked: {
btnAdd.state = "pressed"
let x = btnAdd.iconX + btnAdd.icon.width / 2 - newChatMenu.width / 2
newChatMenu.popup(x, btnAdd.icon.height + 14)
if (newChatMenu.opened) {
newChatMenu.close()
} else {
let x = btnAdd.iconX + btnAdd.icon.width / 2 - newChatMenu.width / 2
newChatMenu.popup(x, btnAdd.height + 4)
}
}
PopupMenu {
id: newChatMenu
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
Action {
//% "Start new chat"
text: qsTrId("start-new-chat")
@ -57,6 +62,10 @@ StatusRoundButton {
openPopup(communitiesPopupComponent)
}
}
onAboutToShow: {
btnAdd.state = "pressed"
}
onAboutToHide: {
btnAdd.state = "default"
}

View File

@ -145,15 +145,19 @@ Item {
flipImage: true
text: ""
onClicked: function () {
// FIXME the button is too much on the right, so the arrow can never align
let x = settingsBtn.x + settingsBtn.width / 2 - newSettingsMenu.width / 2
newSettingsMenu.popup(x, settingsBtn.height)
if (newSettingsMenu.opened) {
newSettingsMenu.close()
} else {
let x = settingsBtn.x + settingsBtn.width / 2 - newSettingsMenu.width / 2
newSettingsMenu.popup(x, settingsBtn.height)
}
}
anchors.left: receiveBtn.right
anchors.leftMargin: walletMenu.btnOuterMargin
PopupMenu {
id: newSettingsMenu
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
width: 176
Action {
//% "Account Settings"

View File

@ -14,9 +14,12 @@ StatusRoundButton {
height: 36
onClicked: {
btnAdd.state = "pressed"
let x = btnAdd.iconX + btnAdd.icon.width / 2 - newAccountMenu.width / 2
newAccountMenu.popup(x, btnAdd.icon.height + 10)
if (newAccountMenu.opened) {
newAccountMenu.close()
} else {
let x = btnAdd.iconX + btnAdd.icon.width / 2 - newAccountMenu.width / 2
newAccountMenu.popup(x, btnAdd.height + 4)
}
}
GenerateAccountModal {
@ -35,6 +38,7 @@ StatusRoundButton {
PopupMenu {
id: newAccountMenu
width: 260
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
Action {
//% "Generate an account"
text: qsTrId("generate-a-new-account")
@ -75,6 +79,10 @@ StatusRoundButton {
addAccountWithPrivateKeydModal.open()
}
}
onAboutToShow: {
btnAdd.state = "pressed"
}
onAboutToHide: {
btnAdd.state = "default"
}