diff --git a/electrum/gui/qml/components/Preferences.qml b/electrum/gui/qml/components/Preferences.qml index fe560d37f..3bbcff0d8 100644 --- a/electrum/gui/qml/components/Preferences.qml +++ b/electrum/gui/qml/components/Preferences.qml @@ -157,6 +157,92 @@ Pane { } } + RowLayout { + Layout.columnSpan: 2 + Layout.fillWidth: true + spacing: 0 + Switch { + id: syncLabels + onCheckedChanged: { + if (activeFocus) + AppController.setPluginEnabled('labels', checked) + } + } + Label { + Layout.fillWidth: true + text: qsTr('Synchronize labels') + wrapMode: Text.Wrap + } + } + + RowLayout { + Layout.columnSpan: 2 + Layout.fillWidth: true + spacing: 0 + Switch { + id: psbtNostr + onCheckedChanged: { + if (activeFocus) + AppController.setPluginEnabled('psbt_nostr', checked) + } + } + Label { + Layout.fillWidth: true + text: qsTr('Nostr Cosigner') + wrapMode: Text.Wrap + } + } + + RowLayout { + Layout.columnSpan: 2 + Layout.fillWidth: true + spacing: 0 + Switch { + id: setMaxBrightnessOnQrDisplay + onCheckedChanged: { + if (activeFocus) + Config.setMaxBrightnessOnQrDisplay = checked + } + } + Label { + Layout.fillWidth: true + text: qsTr('Set display to max brightness when displaying QR codes') + wrapMode: Text.Wrap + } + } + + PrefsHeading { + Layout.columnSpan: 2 + text: qsTr('Security') + } + + RowLayout { + Layout.columnSpan: 2 + Layout.fillWidth: true + spacing: 0 + + property bool noWalletPassword: Daemon.currentWallet ? Daemon.currentWallet.verifyPassword('') : true + enabled: Daemon.currentWallet && !noWalletPassword + + Switch { + id: paymentAuthentication + // showing the toggle as checked even if the wallet has no password would be misleading + checked: Config.paymentAuthentication && !(Daemon.currentWallet && parent.noWalletPassword) + onCheckedChanged: { + if (activeFocus) { + // will request authentication when checked = false + console.log('paymentAuthentication: ' + checked) + Config.paymentAuthentication = checked; + } + } + } + Label { + Layout.fillWidth: true + text: qsTr('Request authentication for payments') + wrapMode: Text.Wrap + } + } + RowLayout { Layout.columnSpan: 2 Layout.fillWidth: true @@ -214,79 +300,16 @@ Pane { Layout.columnSpan: 2 Layout.fillWidth: true spacing: 0 - - property bool noWalletPassword: Daemon.currentWallet ? Daemon.currentWallet.verifyPassword('') : true - enabled: Daemon.currentWallet && !noWalletPassword - Switch { - id: paymentAuthentication - // showing the toggle as checked even if the wallet has no password would be misleading - checked: Config.paymentAuthentication && !(Daemon.currentWallet && parent.noWalletPassword) - onCheckedChanged: { - if (activeFocus) { - // will request authentication when checked = false - console.log('paymentAuthentication: ' + checked) - Config.paymentAuthentication = checked; - } - } - } - Label { - Layout.fillWidth: true - text: qsTr('Payment authentication') - wrapMode: Text.Wrap - } - } - - RowLayout { - Layout.columnSpan: 2 - Layout.fillWidth: true - spacing: 0 - Switch { - id: syncLabels + id: disableScreenshots onCheckedChanged: { if (activeFocus) - AppController.setPluginEnabled('labels', checked) + Config.alwaysAllowScreenshots = !checked } } Label { Layout.fillWidth: true - text: qsTr('Synchronize labels') - wrapMode: Text.Wrap - } - } - - RowLayout { - Layout.columnSpan: 2 - Layout.fillWidth: true - spacing: 0 - Switch { - id: psbtNostr - onCheckedChanged: { - if (activeFocus) - AppController.setPluginEnabled('psbt_nostr', checked) - } - } - Label { - Layout.fillWidth: true - text: qsTr('Nostr Cosigner') - wrapMode: Text.Wrap - } - } - - RowLayout { - Layout.columnSpan: 2 - Layout.fillWidth: true - spacing: 0 - Switch { - id: setMaxBrightnessOnQrDisplay - onCheckedChanged: { - if (activeFocus) - Config.setMaxBrightnessOnQrDisplay = checked - } - } - Label { - Layout.fillWidth: true - text: qsTr('Set display to max brightness when displaying QR codes') + text: qsTr('Protect secrets from screenshots') wrapMode: Text.Wrap } } @@ -463,24 +486,6 @@ Pane { wrapMode: Text.Wrap } } - - RowLayout { - Layout.columnSpan: 2 - Layout.fillWidth: true - spacing: 0 - Switch { - id: alwaysAllowScreenshots - onCheckedChanged: { - if (activeFocus) - Config.alwaysAllowScreenshots = checked - } - } - Label { - Layout.fillWidth: true - text: qsTr('Always allow screenshots') - wrapMode: Text.Wrap - } - } } } } @@ -498,7 +503,7 @@ Pane { freezeReusedAddressUtxos.checked = Config.freezeReusedAddressUtxos useTrampolineRouting.checked = !Config.useGossip enableDebugLogs.checked = Config.enableDebugLogs - alwaysAllowScreenshots.checked = Config.alwaysAllowScreenshots + disableScreenshots.checked = !Config.alwaysAllowScreenshots setMaxBrightnessOnQrDisplay.checked = Config.setMaxBrightnessOnQrDisplay useRecoverableChannels.checked = Config.useRecoverableChannels syncLabels.checked = AppController.isPluginEnabled('labels')