Added a form for entering a passphrase for a private ssh key and the corresponding logic for processing a private key

This commit is contained in:
vladimir.kuznetsov 2023-04-02 09:09:20 +03:00
parent f6ca22ecdd
commit f3aef67be6
10 changed files with 161 additions and 8 deletions

View file

@ -0,0 +1,62 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
Popup {
id: root
property alias text: textField.text
property alias placeholderText: textField.placeholderText
property string yesText: "yes"
property string noText: "no"
property var yesFunc
property var noFunc
signal editingFinished()
anchors.centerIn: Overlay.overlay
modal: true
closePolicy: Popup.NoAutoClose
width: parent.width - 20
ColumnLayout {
width: parent.width
TextField {
id: textField
horizontalAlignment: Text.AlignHCenter
Layout.fillWidth: true
font.pixelSize: 16
echoMode: TextInput.Password
}
RowLayout {
Layout.fillWidth: true
BlueButtonType {
id: yesButton
Layout.preferredWidth: parent.width / 2
Layout.fillWidth: true
text: yesText
onClicked: {
root.enabled = false
if (yesFunc && typeof yesFunc === "function") {
yesFunc()
}
root.enabled = true
}
}
BlueButtonType {
id: noButton
Layout.preferredWidth: parent.width / 2
Layout.fillWidth: true
text: noText
onClicked: {
if (noFunc && typeof noFunc === "function") {
noFunc()
}
}
}
}
}
}

View file

@ -234,6 +234,9 @@ Window {
popupWarning.popupWarningText = message
popupWarning.open()
}
function onShowPassphraseRequestMessage() {
popupWithInputField.open()
}
}
MessageDialog {
@ -355,4 +358,21 @@ Window {
PopupWarning {
id: popupWarning
}
PopupWithInputField {
id: popupWithInputField
placeholderText: "Enter private key passphrase"
yesFunc: function() {
editingFinished()
close()
UiLogic.passphraseDialogClosed()
text = ""
}
noFunc: function() {
close()
UiLogic.passphraseDialogClosed()
}
onEditingFinished: {
UiLogic.privateKeyPassphrase = text
}
}
}