1
0

qml: improve validation of pubkey/connectstring

This commit is contained in:
Sander van Grieken
2024-10-23 16:09:28 +02:00
parent f89fd96e22
commit 96f7d91e3a
2 changed files with 23 additions and 4 deletions

View File

@@ -82,6 +82,11 @@ ElDialog {
font.family: FixedFont font.family: FixedFont
wrapMode: Text.Wrap wrapMode: Text.Wrap
placeholderText: qsTr('Paste or scan node uri/pubkey') placeholderText: qsTr('Paste or scan node uri/pubkey')
inputMethodHints: Qt.ImhSensitiveData | Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase
onTextChanged: {
if (activeFocus)
channelopener.connectStr = text
}
onActiveFocusChanged: { onActiveFocusChanged: {
if (!activeFocus) if (!activeFocus)
channelopener.connectStr = text channelopener.connectStr = text
@@ -96,9 +101,17 @@ ElDialog {
icon.height: constants.iconSizeMedium icon.height: constants.iconSizeMedium
icon.width: constants.iconSizeMedium icon.width: constants.iconSizeMedium
onClicked: { onClicked: {
if (channelopener.validateConnectString(AppController.clipboardToText())) { var cliptext = AppController.clipboardToText()
channelopener.connectStr = AppController.clipboardToText() if (!cliptext)
return
if (channelopener.validateConnectString(cliptext)) {
channelopener.connectStr = cliptext
node.text = channelopener.connectStr node.text = channelopener.connectStr
} else {
var dialog = app.messageDialog.createObject(app, {
text: qsTr('Invalid node-id or connect string')
})
dialog.open()
} }
} }
} }
@@ -109,12 +122,17 @@ ElDialog {
scale: 1.2 scale: 1.2
onClicked: { onClicked: {
var dialog = app.scanDialog.createObject(app, { var dialog = app.scanDialog.createObject(app, {
hint: qsTr('Scan a channel connect string') hint: qsTr('Scan a node-id or a connect string')
}) })
dialog.onFound.connect(function() { dialog.onFound.connect(function() {
if (channelopener.validateConnectString(dialog.scanData)) { if (channelopener.validateConnectString(dialog.scanData)) {
channelopener.connectStr = dialog.scanData channelopener.connectStr = dialog.scanData
node.text = channelopener.connectStr node.text = channelopener.connectStr
} else {
var errdialog = app.messageDialog.createObject(app, {
text: qsTr('Invalid node-id or connect string')
})
errdialog.open()
} }
dialog.close() dialog.close()
}) })

View File

@@ -240,7 +240,8 @@ class QEAppController(BaseCrashReporter, QObject):
@pyqtSlot(result='QString') @pyqtSlot(result='QString')
def clipboardToText(self): def clipboardToText(self):
return QGuiApplication.clipboard().text() clip = QGuiApplication.clipboard()
return clip.text() if clip.mimeData().hasText() else ''
@pyqtSlot(str, result=QObject) @pyqtSlot(str, result=QObject)
def plugin(self, plugin_name): def plugin(self, plugin_name):