mirror of
https://github.com/monero-project/monero-gui.git
synced 2025-01-05 18:39:38 +00:00
Merge pull request #3859
346913f
SettingsWallet: lock wallet on demand (reemuru)
This commit is contained in:
commit
b12ad939ad
5 changed files with 77 additions and 0 deletions
|
@ -7,6 +7,7 @@ import "../components" as MoneroComponents
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: settingsListItem
|
id: settingsListItem
|
||||||
property alias iconText: iconLabel.text
|
property alias iconText: iconLabel.text
|
||||||
|
property alias symbol: symbolText.text
|
||||||
property alias description: area.text
|
property alias description: area.text
|
||||||
property alias title: header.text
|
property alias title: header.text
|
||||||
property bool isLast: false
|
property bool isLast: false
|
||||||
|
@ -114,5 +115,17 @@ ColumnLayout {
|
||||||
settingsListItem.clicked()
|
settingsListItem.clicked()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MoneroComponents.TextPlain {
|
||||||
|
id: symbolText
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: 44
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
font.pixelSize: 12
|
||||||
|
font.bold: true
|
||||||
|
color: MoneroComponents.Style.menuButtonTextColor
|
||||||
|
visible: appWindow.ctrlPressed
|
||||||
|
themeTransition: false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,7 @@ Rectangle {
|
||||||
signal minimizeClicked
|
signal minimizeClicked
|
||||||
signal languageClicked
|
signal languageClicked
|
||||||
signal closeWalletClicked
|
signal closeWalletClicked
|
||||||
|
signal lockWalletClicked
|
||||||
|
|
||||||
state: "default"
|
state: "default"
|
||||||
states: [
|
states: [
|
||||||
|
@ -91,6 +92,46 @@ Rectangle {
|
||||||
spacing: 0
|
spacing: 0
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
||||||
|
// lock wallet
|
||||||
|
Rectangle {
|
||||||
|
id: btnLockWallet
|
||||||
|
color: "transparent"
|
||||||
|
Layout.preferredWidth: parent.height
|
||||||
|
Layout.preferredHeight: parent.height
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: FontAwesome.lock
|
||||||
|
font.family: FontAwesome.fontFamilySolid
|
||||||
|
font.pixelSize: 16
|
||||||
|
color: MoneroComponents.Style.defaultFontColor
|
||||||
|
font.styleName: "Solid"
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
opacity: 0.75
|
||||||
|
}
|
||||||
|
|
||||||
|
MoneroComponents.Tooltip {
|
||||||
|
id: btnLockWalletTooltip
|
||||||
|
anchors.fill: parent
|
||||||
|
text: qsTr("Lock this wallet") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
onEntered: {
|
||||||
|
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
|
||||||
|
btnLockWalletTooltip.tooltipPopup.open()
|
||||||
|
}
|
||||||
|
onExited: {
|
||||||
|
parent.color = "transparent"
|
||||||
|
btnLockWalletTooltip.tooltipPopup.close()
|
||||||
|
}
|
||||||
|
onClicked: root.lockWalletClicked(leftPanel.visible)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// collapse sidebar
|
// collapse sidebar
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: btnCloseWallet
|
id: btnCloseWallet
|
||||||
|
|
|
@ -53,6 +53,7 @@ Object {
|
||||||
property string info : "\uf129"
|
property string info : "\uf129"
|
||||||
property string key : "\uf084"
|
property string key : "\uf084"
|
||||||
property string language : "\uf1ab"
|
property string language : "\uf1ab"
|
||||||
|
property string lock : "\uf023"
|
||||||
property string minus : "\uf068"
|
property string minus : "\uf068"
|
||||||
property string minusCircle : "\uf056"
|
property string minusCircle : "\uf056"
|
||||||
property string moonO : "\uf186"
|
property string moonO : "\uf186"
|
||||||
|
|
14
main.qml
14
main.qml
|
@ -131,6 +131,17 @@ ApplicationWindow {
|
||||||
leftPanel.selectItem(page)
|
leftPanel.selectItem(page)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function lock() {
|
||||||
|
passwordDialog.onRejectedCallback = function() { appWindow.showWizard(); }
|
||||||
|
passwordDialog.onAcceptedCallback = function() {
|
||||||
|
if(walletPassword === passwordDialog.password)
|
||||||
|
passwordDialog.close();
|
||||||
|
else
|
||||||
|
passwordDialog.showError(qsTr("Wrong password") + translationManager.emptyString);
|
||||||
|
}
|
||||||
|
passwordDialog.open(usefulName(persistentSettings.wallet_path));
|
||||||
|
}
|
||||||
|
|
||||||
function sequencePressed(obj, seq) {
|
function sequencePressed(obj, seq) {
|
||||||
if(seq === undefined || !leftPanel.enabled)
|
if(seq === undefined || !leftPanel.enabled)
|
||||||
return
|
return
|
||||||
|
@ -139,6 +150,8 @@ ApplicationWindow {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// lock wallet on demand
|
||||||
|
if(seq === "Ctrl+L" && !passwordDialog.visible) lock()
|
||||||
if(seq === "Ctrl+S") middlePanel.state = "Transfer"
|
if(seq === "Ctrl+S") middlePanel.state = "Transfer"
|
||||||
else if(seq === "Ctrl+R") middlePanel.state = "Receive"
|
else if(seq === "Ctrl+R") middlePanel.state = "Receive"
|
||||||
else if(seq === "Ctrl+H") middlePanel.state = "History"
|
else if(seq === "Ctrl+H") middlePanel.state = "History"
|
||||||
|
@ -1923,6 +1936,7 @@ ApplicationWindow {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
onCloseClicked: appWindow.close();
|
onCloseClicked: appWindow.close();
|
||||||
|
onLockWalletClicked: appWindow.lock();
|
||||||
onLanguageClicked: appWindow.toggleLanguageView();
|
onLanguageClicked: appWindow.toggleLanguageView();
|
||||||
onCloseWalletClicked: appWindow.showWizard();
|
onCloseWalletClicked: appWindow.showWizard();
|
||||||
onMaximizeClicked: appWindow.visibility = appWindow.visibility !== Window.Maximized ? Window.Maximized : Window.Windowed
|
onMaximizeClicked: appWindow.visibility = appWindow.visibility !== Window.Maximized ? Window.Maximized : Window.Windowed
|
||||||
|
|
|
@ -50,6 +50,14 @@ Rectangle {
|
||||||
anchors.topMargin: 0
|
anchors.topMargin: 0
|
||||||
spacing: 0
|
spacing: 0
|
||||||
|
|
||||||
|
MoneroComponents.SettingsListItem {
|
||||||
|
iconText: FontAwesome.lock
|
||||||
|
description: qsTr("Locks the wallet on demand.") + translationManager.emptyString
|
||||||
|
title: qsTr("Lock this wallet") + translationManager.emptyString
|
||||||
|
symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "L" + translationManager.emptyString
|
||||||
|
onClicked: appWindow.lock();
|
||||||
|
}
|
||||||
|
|
||||||
MoneroComponents.SettingsListItem {
|
MoneroComponents.SettingsListItem {
|
||||||
iconText: FontAwesome.signOutAlt
|
iconText: FontAwesome.signOutAlt
|
||||||
description: qsTr("Logs out of this wallet.") + translationManager.emptyString
|
description: qsTr("Logs out of this wallet.") + translationManager.emptyString
|
||||||
|
|
Loading…
Reference in a new issue