mirror of
https://github.com/monero-project/monero-gui.git
synced 2024-11-17 00:07:51 +00:00
Cleanup advanced pages
This commit is contained in:
parent
c7f3deb5cc
commit
a3128c9103
4 changed files with 230 additions and 264 deletions
|
@ -39,13 +39,13 @@ Rectangle {
|
|||
|
||||
ColumnLayout {
|
||||
id: mainLayout
|
||||
Layout.fillWidth: true
|
||||
anchors.margins: (isMobile)? 17 * scaleRatio : 20 * scaleRatio
|
||||
anchors.topMargin: 40 * scaleRatio
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
spacing: 20 * scaleRatio
|
||||
Layout.fillWidth: true
|
||||
|
||||
MoneroComponents.Label {
|
||||
id: soloTitleLabel
|
||||
|
@ -53,11 +53,9 @@ Rectangle {
|
|||
text: qsTr("Solo mining") + translationManager.emptyString
|
||||
}
|
||||
|
||||
MoneroComponents.Label {
|
||||
id: soloLocalDaemonsLabel
|
||||
fontSize: 18 * scaleRatio
|
||||
color: "#D02020"
|
||||
text: qsTr("(only available for local daemons)") + translationManager.emptyString
|
||||
MoneroComponents.WarningBox {
|
||||
Layout.bottomMargin: 8 * scaleRatio
|
||||
text: qsTr("Mining is only available on local daemons.") + translationManager.emptyString
|
||||
visible: !walletManager.isDaemonLocal(appWindow.currentDaemonAddress)
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ import QtQuick.Controls.Styles 1.4
|
|||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Dialogs 1.2
|
||||
|
||||
import "../components"
|
||||
import "../components" as MoneroComponents
|
||||
import moneroComponents.Clipboard 1.0
|
||||
|
||||
Rectangle {
|
||||
|
@ -79,6 +79,7 @@ Rectangle {
|
|||
/* main layout */
|
||||
ColumnLayout {
|
||||
id: mainLayout
|
||||
Layout.fillWidth: true
|
||||
anchors.margins: (isMobile)? 17 * scaleRatio : 20 * scaleRatio
|
||||
anchors.topMargin: 40 * scaleRatio
|
||||
|
||||
|
@ -87,16 +88,13 @@ Rectangle {
|
|||
anchors.right: parent.right
|
||||
|
||||
spacing: 20 * scaleRatio
|
||||
property int labelWidth: 120
|
||||
property int editWidth: 400
|
||||
property int lineEditFontSize: 14 * scaleRatio
|
||||
|
||||
MessageDialog {
|
||||
id: sharedRingDBDialog
|
||||
standardButtons: StandardButton.Ok
|
||||
}
|
||||
|
||||
Label {
|
||||
MoneroComponents.Label {
|
||||
id: signTitleLabel
|
||||
fontSize: 24 * scaleRatio
|
||||
text: qsTr("Shared RingDB") + translationManager.emptyString
|
||||
|
@ -107,12 +105,12 @@ Rectangle {
|
|||
"This database is meant for use by Monero wallets as well as wallets from Monero clones which reuse the Monero keys.") + translationManager.emptyString
|
||||
wrapMode: Text.Wrap
|
||||
Layout.fillWidth: true
|
||||
font.family: Style.fontRegular.name
|
||||
font.family: MoneroComponents.Style.fontRegular.name
|
||||
font.pixelSize: 14 * scaleRatio
|
||||
color: Style.defaultFontColor
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
}
|
||||
|
||||
LabelSubheader {
|
||||
MoneroComponents.LabelSubheader {
|
||||
Layout.fillWidth: true
|
||||
textFormat: Text.RichText
|
||||
text: "<style type='text/css'>a {text-decoration: none; color: #FF6C3C; font-size: 14px;}</style>" +
|
||||
|
@ -138,13 +136,13 @@ Rectangle {
|
|||
|
||||
Text {
|
||||
textFormat: Text.RichText
|
||||
font.family: Style.fontRegular.name
|
||||
font.family: MoneroComponents.Style.fontRegular.name
|
||||
font.pixelSize: 14 * scaleRatio
|
||||
text: qsTr("This sets which outputs are known to be spent, and thus not to be used as privacy placeholders in ring signatures. ") +
|
||||
qsTr("You should only have to load a file when you want to refresh the list. Manual adding/removing is possible if needed.") + translationManager.emptyString
|
||||
wrapMode: Text.Wrap
|
||||
Layout.fillWidth: true;
|
||||
color: Style.defaultFontColor
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
|
@ -155,35 +153,31 @@ Rectangle {
|
|||
id: loadBlackballFileDialog
|
||||
title: qsTr("Please choose a file from which to load outputs to mark as spent") + translationManager.emptyString;
|
||||
folder: "file://"
|
||||
nameFilters: [ "*"]
|
||||
nameFilters: ["*"]
|
||||
|
||||
onAccepted: {
|
||||
loadBlackballFileLine.text = walletManager.urlToLocalPath(loadBlackballFileDialog.fileUrl)
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
MoneroComponents.LineEdit {
|
||||
id: loadBlackballFileLine
|
||||
Layout.fillWidth: true
|
||||
|
||||
LineEdit {
|
||||
id: loadBlackballFileLine
|
||||
Layout.fillWidth: true
|
||||
fontSize: mainLayout.lineEditFontSize
|
||||
placeholderText: qsTr("Path to file") + "..." + translationManager.emptyString
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Filename with outputs to mark as spent") + ":" + translationManager.emptyString
|
||||
copyButton: true
|
||||
readOnly: false
|
||||
}
|
||||
fontSize: 16 * scaleRatio
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Path to file") + "..." + translationManager.emptyString
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Filename with outputs to mark as spent") + ":" + translationManager.emptyString
|
||||
copyButton: true
|
||||
readOnly: false
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 18
|
||||
|
||||
StandardButton {
|
||||
MoneroComponents.StandardButton {
|
||||
id: selectBlackballFileButton
|
||||
anchors.rightMargin: 17 * scaleRatio
|
||||
text: qsTr("Browse") + translationManager.emptyString
|
||||
enabled: true
|
||||
small: true
|
||||
|
@ -192,7 +186,7 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
StandardButton {
|
||||
MoneroComponents.StandardButton {
|
||||
id: loadBlackballFileButton
|
||||
text: qsTr("Load") + translationManager.emptyString
|
||||
small: true
|
||||
|
@ -202,55 +196,57 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.topMargin: 12
|
||||
GridLayout {
|
||||
Layout.fillWidth: true
|
||||
columnSpacing: 20 * scaleRatio
|
||||
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
id: blackballOutputAmountLine
|
||||
fontSize: mainLayout.lineEditFontSize
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Or manually mark a single output as spent/unspent:") + translationManager.emptyString
|
||||
placeholderText: qsTr("Paste output amount") + "..." + translationManager.emptyString
|
||||
readOnly: false
|
||||
width: mainLayout.editWidth / 2
|
||||
validator: IntValidator { bottom: 0 }
|
||||
}
|
||||
LineEdit {
|
||||
id: blackballOutputOffsetLine
|
||||
fontSize: mainLayout.lineEditFontSize
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: " "
|
||||
placeholderText: qsTr("Paste output offset") + "..." + translationManager.emptyString
|
||||
readOnly: false
|
||||
width: mainLayout.editWidth / 2
|
||||
validator: IntValidator { bottom: 0 }
|
||||
}
|
||||
MoneroComponents.LineEdit {
|
||||
id: blackballOutputAmountLine
|
||||
Layout.fillWidth: true
|
||||
fontSize: 16 * scaleRatio
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Or manually mark a single output as spent/unspent:") + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Paste output amount") + "..." + translationManager.emptyString
|
||||
readOnly: false
|
||||
validator: IntValidator { bottom: 0 }
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
MoneroComponents.LineEdit {
|
||||
id: blackballOutputOffsetLine
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 18
|
||||
|
||||
StandardButton {
|
||||
id: blackballButton
|
||||
text: qsTr("Mark as spent") + translationManager.emptyString
|
||||
small: true
|
||||
enabled: !!appWindow.currentWallet && validUnsigned(blackballOutputAmountLine.text) && validUnsigned(blackballOutputOffsetLine.text)
|
||||
onClicked: appWindow.currentWallet.blackballOutput(blackballOutputAmountLine.text, blackballOutputOffsetLine.text)
|
||||
}
|
||||
|
||||
StandardButton {
|
||||
id: unblackballButton
|
||||
text: qsTr("Mark as unspent") + translationManager.emptyString
|
||||
small: true
|
||||
enabled: !!appWindow.currentWallet && validUnsigned(blackballOutputAmountLine.text) && validUnsigned(blackballOutputOffsetLine.text)
|
||||
onClicked: appWindow.currentWallet.unblackballOutput(blackballOutputAmountLine.text, blackballOutputOffsetLine.text)
|
||||
}
|
||||
fontSize: 16 * scaleRatio
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: " "
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Paste output offset") + "..." + translationManager.emptyString
|
||||
readOnly: false
|
||||
validator: IntValidator { bottom: 0 }
|
||||
}
|
||||
}
|
||||
|
||||
LabelSubheader {
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 18
|
||||
|
||||
MoneroComponents.StandardButton {
|
||||
id: blackballButton
|
||||
text: qsTr("Mark as spent") + translationManager.emptyString
|
||||
small: true
|
||||
enabled: !!appWindow.currentWallet && validUnsigned(blackballOutputAmountLine.text) && validUnsigned(blackballOutputOffsetLine.text)
|
||||
onClicked: appWindow.currentWallet.blackballOutput(blackballOutputAmountLine.text, blackballOutputOffsetLine.text)
|
||||
}
|
||||
|
||||
MoneroComponents.StandardButton {
|
||||
id: unblackballButton
|
||||
text: qsTr("Mark as unspent") + translationManager.emptyString
|
||||
small: true
|
||||
enabled: !!appWindow.currentWallet && validUnsigned(blackballOutputAmountLine.text) && validUnsigned(blackballOutputOffsetLine.text)
|
||||
onClicked: appWindow.currentWallet.unblackballOutput(blackballOutputAmountLine.text, blackballOutputOffsetLine.text)
|
||||
}
|
||||
}
|
||||
|
||||
MoneroComponents.LabelSubheader {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 24 * scaleRatio
|
||||
textFormat: Text.RichText
|
||||
|
@ -278,26 +274,24 @@ Rectangle {
|
|||
|
||||
Text {
|
||||
textFormat: Text.RichText
|
||||
font.family: Style.fontRegular.name
|
||||
font.family: MoneroComponents.Style.fontRegular.name
|
||||
font.pixelSize: 14 * scaleRatio
|
||||
text: qsTr("This records rings used by outputs spent on Monero on a key reusing chain, so that the same ring may be reused to avoid privacy issues.") + translationManager.emptyString
|
||||
wrapMode: Text.Wrap
|
||||
Layout.fillWidth: true;
|
||||
color: Style.defaultFontColor
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
id: keyImageLine
|
||||
fontSize: mainLayout.lineEditFontSize
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Key image") + ":" + translationManager.emptyString
|
||||
placeholderText: qsTr("Paste key image") + "..." + translationManager.emptyString
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
width: mainLayout.editWidth
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
MoneroComponents.LineEdit {
|
||||
id: keyImageLine
|
||||
Layout.fillWidth: true
|
||||
fontSize: 16 * scaleRatio
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Key image") + ":" + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Paste key image") + "..." + translationManager.emptyString
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
}
|
||||
|
||||
GridLayout{
|
||||
|
@ -307,10 +301,10 @@ Rectangle {
|
|||
|
||||
ColumnLayout {
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
MoneroComponents.LineEdit {
|
||||
id: getRingLine
|
||||
Layout.fillWidth: true
|
||||
fontSize: mainLayout.lineEditFontSize
|
||||
fontSize: 16 * scaleRatio
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Get ring") + ":" + translationManager.emptyString
|
||||
readOnly: true
|
||||
|
@ -322,7 +316,7 @@ Rectangle {
|
|||
Layout.fillWidth: true
|
||||
Layout.topMargin: 18
|
||||
|
||||
StandardButton {
|
||||
MoneroComponents.StandardButton {
|
||||
id: getRingButton
|
||||
text: qsTr("Get Ring") + translationManager.emptyString
|
||||
small: true
|
||||
|
@ -342,11 +336,12 @@ Rectangle {
|
|||
|
||||
ColumnLayout {
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
MoneroComponents.LineEdit {
|
||||
id: setRingLine
|
||||
Layout.fillWidth: true
|
||||
fontSize: mainLayout.lineEditFontSize
|
||||
fontSize: 16 * scaleRatio
|
||||
labelFontSize: 14 * scaleRatio
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
labelText: qsTr("Set ring") + ":" + translationManager.emptyString
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
|
@ -357,7 +352,7 @@ Rectangle {
|
|||
Layout.fillWidth: true
|
||||
Layout.topMargin: 18
|
||||
|
||||
StandardButton {
|
||||
MoneroComponents.StandardButton {
|
||||
id: setRingButton
|
||||
text: qsTr("Set Ring") + translationManager.emptyString
|
||||
small: true
|
||||
|
@ -372,9 +367,10 @@ Rectangle {
|
|||
}
|
||||
|
||||
GridLayout {
|
||||
columnSpacing: 20 * scaleRatio
|
||||
columns: (isMobile) ? 1 : 2
|
||||
|
||||
CheckBox {
|
||||
MoneroComponents.CheckBox {
|
||||
id: segregatePreForkOutputs
|
||||
checked: persistentSettings.segregatePreForkOutputs
|
||||
text: qsTr("I intend to spend on key-reusing fork(s)") + translationManager.emptyString
|
||||
|
@ -388,7 +384,7 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
MoneroComponents.CheckBox {
|
||||
id: keyReuseMitigation2
|
||||
checked: persistentSettings.keyReuseMitigation2
|
||||
text: qsTr("I might want to spend on key-reusing fork(s)") + translationManager.emptyString
|
||||
|
@ -402,7 +398,7 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
MoneroComponents.CheckBox {
|
||||
id: setRingRelative
|
||||
checked: true
|
||||
text: qsTr("Relative") + translationManager.emptyString
|
||||
|
@ -416,13 +412,15 @@ Rectangle {
|
|||
Layout.topMargin: 17 * scaleRatio
|
||||
Layout.fillWidth: true
|
||||
|
||||
LineEdit {
|
||||
MoneroComponents.LineEdit {
|
||||
id: segregationHeightLine
|
||||
readOnly: false
|
||||
Layout.fillWidth: true
|
||||
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Segregation height:") + translationManager.emptyString
|
||||
Layout.fillWidth: true
|
||||
validator: IntValidator { bottom: 0 }
|
||||
readOnly: false
|
||||
onEditingFinished: {
|
||||
persistentSettings.segregationHeight = segregationHeightLine.text
|
||||
if (appWindow.currentWallet) {
|
||||
|
|
123
pages/Sign.qml
123
pages/Sign.qml
|
@ -37,7 +37,6 @@ import moneroComponents.WalletManager 1.0
|
|||
import "../components" as MoneroComponents
|
||||
|
||||
Rectangle {
|
||||
id: mainLayout
|
||||
property bool messageMode: true
|
||||
property bool fileMode: false
|
||||
|
||||
|
@ -86,48 +85,29 @@ Rectangle {
|
|||
|
||||
// sign / verify
|
||||
ColumnLayout {
|
||||
anchors.top: parent.top
|
||||
id: mainLayout
|
||||
Layout.fillWidth: true
|
||||
anchors.margins: (isMobile)? 17 * scaleRatio : 20 * scaleRatio
|
||||
anchors.topMargin: 40 * scaleRatio
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
|
||||
Rectangle {
|
||||
id: instructionsRect
|
||||
Layout.preferredHeight: (instructionsText.height + 26) * scaleRatio
|
||||
spacing: 20 * scaleRatio
|
||||
|
||||
MoneroComponents.Label {
|
||||
fontSize: 24 * scaleRatio
|
||||
text: qsTr("Sign/verify") + translationManager.emptyString
|
||||
}
|
||||
|
||||
Text {
|
||||
text: qsTr("This page lets you sign/verify a message (or file contents) with your address.") + translationManager.emptyString
|
||||
wrapMode: Text.Wrap
|
||||
Layout.fillWidth: true
|
||||
radius: 2 * scaleRatio
|
||||
border.color: Qt.rgba(255, 255, 255, 0.25)
|
||||
border.width: 1 * scaleRatio
|
||||
color: "transparent"
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: (instructionsText.height + 40) * scaleRatio
|
||||
|
||||
Image {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
Layout.preferredHeight: 22 * scaleRatio
|
||||
Layout.preferredWidth: 22 * scaleRatio
|
||||
Layout.leftMargin: 10 * scaleRatio
|
||||
Layout.topMargin: 10 * scaleRatio
|
||||
source: "../images/editIcon.png"
|
||||
}
|
||||
|
||||
Text {
|
||||
id: instructionsText
|
||||
Layout.topMargin: 12 * scaleRatio
|
||||
Layout.preferredWidth: (instructionsRect.width - 80) * scaleRatio
|
||||
Layout.leftMargin: 6 * scaleRatio
|
||||
text: qsTr("This page lets you sign/verify a message (or file contents) with your address.") + translationManager.emptyString
|
||||
wrapMode: Text.Wrap
|
||||
Layout.fillWidth: true
|
||||
font.family: MoneroComponents.Style.fontRegular.name
|
||||
font.pixelSize: 15 * scaleRatio
|
||||
textFormat: Text.RichText
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
}
|
||||
}
|
||||
font.family: MoneroComponents.Style.fontRegular.name
|
||||
font.pixelSize: 14 * scaleRatio
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
|
@ -173,23 +153,15 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
// divider
|
||||
Layout.preferredHeight: 1 * scaleRatio
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 8 * scaleRatio
|
||||
Layout.bottomMargin: 8 * scaleRatio
|
||||
color: MoneroComponents.Style.dividerColor
|
||||
opacity: MoneroComponents.Style.dividerOpacity
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: signSection
|
||||
spacing: 10 * scaleRatio
|
||||
|
||||
MoneroComponents.Label {
|
||||
id: signTitleLabel
|
||||
fontSize: 20 * scaleRatio
|
||||
MoneroComponents.LabelSubheader {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 12 * scaleRatio
|
||||
Layout.bottomMargin: 24 * scaleRatio
|
||||
textFormat: Text.RichText
|
||||
text: fileMode ? qsTr("Sign file") + translationManager.emptyString : qsTr("Sign message") + translationManager.emptyString
|
||||
}
|
||||
|
||||
|
@ -202,8 +174,10 @@ Rectangle {
|
|||
MoneroComponents.LineEditMulti{
|
||||
id: signMessageLine
|
||||
Layout.fillWidth: true
|
||||
placeholderText: qsTr("Enter a message to sign") + translationManager.emptyString;
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Message") + translationManager.emptyString;
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Enter a message to sign") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
onTextChanged: signSignatureLine.text = ''
|
||||
wrapMode: Text.WrapAnywhere
|
||||
|
@ -218,7 +192,9 @@ Rectangle {
|
|||
|
||||
MoneroComponents.LineEditMulti {
|
||||
id: signFileLine
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("File") + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Enter path to file") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
Layout.fillWidth: true
|
||||
|
@ -244,7 +220,9 @@ Rectangle {
|
|||
|
||||
MoneroComponents.LineEditMulti {
|
||||
id: signSignatureLine
|
||||
labelText: qsTr("Signature") + translationManager.emptyString;
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Signature") + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: messageMode ? qsTr("Click [Sign Message] to generate signature") + translationManager.emptyString : qsTr("Click [Sign File] to generate signature") + translationManager.emptyString;
|
||||
readOnly: true
|
||||
Layout.fillWidth: true
|
||||
|
@ -296,23 +274,14 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
// divider
|
||||
Layout.preferredHeight: 1 * scaleRatio
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 8 * scaleRatio
|
||||
Layout.bottomMargin: 8 * scaleRatio
|
||||
color: MoneroComponents.Style.dividerColor
|
||||
opacity: MoneroComponents.Style.dividerOpacity
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: verifySection
|
||||
spacing: 16 * scaleRatio
|
||||
|
||||
MoneroComponents.Label {
|
||||
id: verifyTitleLabel
|
||||
fontSize: 20 * scaleRatio
|
||||
MoneroComponents.LabelSubheader {
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 24 * scaleRatio
|
||||
textFormat: Text.RichText
|
||||
text: fileMode ? qsTr("Verify file") + translationManager.emptyString : qsTr("Verify message") + translationManager.emptyString
|
||||
}
|
||||
|
||||
|
@ -320,8 +289,10 @@ Rectangle {
|
|||
id: verifyMessageLine
|
||||
visible: messageMode
|
||||
Layout.fillWidth: true
|
||||
labelText: qsTr("Message") + translationManager.emptyString;
|
||||
placeholderText: qsTr("Enter the message to verify") + translationManager.emptyString;
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Message") + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Enter the message to verify") + translationManager.emptyString
|
||||
readOnly: false
|
||||
wrapMode: Text.WrapAnywhere
|
||||
text: ''
|
||||
|
@ -335,8 +306,10 @@ Rectangle {
|
|||
|
||||
MoneroComponents.LineEditMulti {
|
||||
id: verifyFileLine
|
||||
labelText: qsTr("File") + translationManager.emptyString;
|
||||
placeholderText: qsTr("Enter path to file") + translationManager.emptyString;
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("File") + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Enter path to file") + translationManager.emptyString
|
||||
readOnly: false
|
||||
Layout.fillWidth: true
|
||||
wrapMode: Text.WrapAnywhere
|
||||
|
@ -358,9 +331,11 @@ Rectangle {
|
|||
MoneroComponents.LineEditMulti {
|
||||
id: verifyAddressLine
|
||||
Layout.fillWidth: true
|
||||
labelText: qsTr("Address") + translationManager.emptyString;
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Address") + translationManager.emptyString
|
||||
addressValidation: true
|
||||
placeholderText: qsTr("Enter the Monero Address (example: 44AFFq5kSiGBoZ...)") + translationManager.emptyString;
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Enter the Monero Address (example: 44AFFq5kSiGBoZ...)") + translationManager.emptyString
|
||||
wrapMode: Text.WrapAnywhere
|
||||
text: ''
|
||||
pasteButton: true
|
||||
|
@ -368,8 +343,10 @@ Rectangle {
|
|||
|
||||
MoneroComponents.LineEditMulti {
|
||||
id: verifySignatureLine
|
||||
labelText: qsTr("Signature") + translationManager.emptyString;
|
||||
placeholderText: qsTr("Enter the signature to verify") + translationManager.emptyString;
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Signature") + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Enter the signature to verify") + translationManager.emptyString
|
||||
Layout.fillWidth: true
|
||||
pasteButton: true
|
||||
wrapMode: Text.WrapAnywhere
|
||||
|
|
175
pages/TxKey.qml
175
pages/TxKey.qml
|
@ -31,7 +31,7 @@ import QtQuick.Controls 1.4
|
|||
import QtQuick.Controls.Styles 1.4
|
||||
import QtQuick.Layouts 1.1
|
||||
|
||||
import "../components"
|
||||
import "../components" as MoneroComponents
|
||||
import moneroComponents.Clipboard 1.0
|
||||
|
||||
import "../js/TxUtils.js" as TxUtils
|
||||
|
@ -57,62 +57,60 @@ Rectangle {
|
|||
id: soloBox
|
||||
spacing: 20 * scaleRatio
|
||||
|
||||
Label {
|
||||
MoneroComponents.Label {
|
||||
id: soloTitleLabel
|
||||
fontSize: 24 * scaleRatio
|
||||
text: qsTr("Prove Transaction") + translationManager.emptyString
|
||||
}
|
||||
|
||||
Text {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Generate a proof of your incoming/outgoing payment by supplying the transaction ID, the recipient address and an optional message. \n" +
|
||||
"For the case of outgoing payments, you can get a 'Spend Proof' that proves the authorship of a transaction. In this case, you don't need to specify the recipient address.") + translationManager.emptyString
|
||||
wrapMode: Text.Wrap
|
||||
Layout.fillWidth: true
|
||||
font.family: Style.fontRegular.name
|
||||
font.family: MoneroComponents.Style.fontRegular.name
|
||||
font.pixelSize: 14 * scaleRatio
|
||||
color: Style.defaultFontColor
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
labelText: qsTr("Transaction ID") + translationManager.emptyString
|
||||
id: getProofTxIdLine
|
||||
fontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Paste tx ID") + translationManager.emptyString
|
||||
readOnly: false
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
}
|
||||
MoneroComponents.LineEdit {
|
||||
id: getProofTxIdLine
|
||||
Layout.fillWidth: true
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Transaction ID") + translationManager.emptyString
|
||||
fontSize: 16 * scaleRatio
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Paste tx ID") + translationManager.emptyString
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
id: getProofAddressLine
|
||||
labelText: qsTr("Address") + translationManager.emptyString
|
||||
fontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Recipient's wallet address") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
}
|
||||
MoneroComponents.LineEdit {
|
||||
id: getProofAddressLine
|
||||
Layout.fillWidth: true
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Address") + translationManager.emptyString
|
||||
fontSize: 16 * scaleRatio
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Recipient's wallet address") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
id: getProofMessageLine
|
||||
fontSize: 16 * scaleRatio
|
||||
labelText: qsTr("Message") + translationManager.emptyString
|
||||
placeholderText: qsTr("Optional message against which the signature is signed") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
width: mainLayout.editWidth
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
}
|
||||
MoneroComponents.LineEdit {
|
||||
id: getProofMessageLine
|
||||
Layout.fillWidth: true
|
||||
fontSize: 16 * scaleRatio
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Message") + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Optional message against which the signature is signed") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
}
|
||||
|
||||
StandardButton {
|
||||
Layout.topMargin: 17 * scaleRatio
|
||||
width: 60 * scaleRatio
|
||||
MoneroComponents.StandardButton {
|
||||
Layout.topMargin: 16 * scaleRatio
|
||||
small: true
|
||||
text: qsTr("Generate") + translationManager.emptyString
|
||||
enabled: TxUtils.checkTxID(getProofTxIdLine.text) && (getProofAddressLine.text.length == 0 || TxUtils.checkAddress(getProofAddressLine.text, appWindow.persistentSettings.nettype))
|
||||
|
@ -131,7 +129,7 @@ Rectangle {
|
|||
anchors.bottomMargin: 3 * scaleRatio
|
||||
}
|
||||
|
||||
Label {
|
||||
MoneroComponents.Label {
|
||||
id: soloTitleLabel2
|
||||
fontSize: 24 * scaleRatio
|
||||
text: qsTr("Check Transaction") + translationManager.emptyString
|
||||
|
@ -142,66 +140,61 @@ Rectangle {
|
|||
"For the case with Spend Proof, you don't need to specify the recipient address.") + translationManager.emptyString
|
||||
wrapMode: Text.Wrap
|
||||
Layout.fillWidth: true
|
||||
font.family: Style.fontRegular.name
|
||||
font.family: MoneroComponents.Style.fontRegular.name
|
||||
font.pixelSize: 14 * scaleRatio
|
||||
color: Style.defaultFontColor
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
id: checkProofTxIdLine
|
||||
labelText: qsTr("Transaction ID") + translationManager.emptyString
|
||||
fontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Paste tx ID") + translationManager.emptyString
|
||||
readOnly: false
|
||||
width: mainLayout.editWidth
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
}
|
||||
MoneroComponents.LineEdit {
|
||||
id: checkProofTxIdLine
|
||||
Layout.fillWidth: true
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Transaction ID") + translationManager.emptyString
|
||||
fontSize: 16 * scaleRatio
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Paste tx ID") + translationManager.emptyString
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
id: checkProofAddressLine
|
||||
labelText: qsTr("Address") + translationManager.emptyString
|
||||
fontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Recipient's wallet address") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
width: mainLayout.editWidth
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
}
|
||||
MoneroComponents.LineEdit {
|
||||
id: checkProofAddressLine
|
||||
Layout.fillWidth: true
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Address") + translationManager.emptyString
|
||||
fontSize: 16 * scaleRatio
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Recipient's wallet address") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
id: checkProofMessageLine
|
||||
fontSize: 16 * scaleRatio
|
||||
labelText: qsTr("Message") + translationManager.emptyString
|
||||
placeholderText: qsTr("Optional message against which the signature is signed") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
width: mainLayout.editWidth
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
}
|
||||
MoneroComponents.LineEdit {
|
||||
id: checkProofMessageLine
|
||||
Layout.fillWidth: true
|
||||
fontSize: 16 * scaleRatio
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Message") + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Optional message against which the signature is signed") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
LineEdit {
|
||||
id: checkProofSignatureLine
|
||||
fontSize: 16 * scaleRatio
|
||||
labelText: qsTr("Signature") + translationManager.emptyString
|
||||
placeholderText: qsTr("Paste tx proof") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
width: mainLayout.editWidth
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
}
|
||||
MoneroComponents.LineEdit {
|
||||
id: checkProofSignatureLine
|
||||
Layout.fillWidth: true
|
||||
fontSize: 16 * scaleRatio
|
||||
labelFontSize: 14 * scaleRatio
|
||||
labelText: qsTr("Signature") + translationManager.emptyString
|
||||
placeholderFontSize: 16 * scaleRatio
|
||||
placeholderText: qsTr("Paste tx proof") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
copyButton: true
|
||||
}
|
||||
|
||||
StandardButton {
|
||||
Layout.topMargin: 17 * scaleRatio
|
||||
width: 60
|
||||
MoneroComponents.StandardButton {
|
||||
Layout.topMargin: 16 * scaleRatio
|
||||
small: true
|
||||
text: qsTr("Check") + translationManager.emptyString
|
||||
enabled: TxUtils.checkTxID(checkProofTxIdLine.text) && TxUtils.checkSignature(checkProofSignatureLine.text) && ((checkProofSignatureLine.text.indexOf("SpendProofV") === 0 && checkProofAddressLine.text.length == 0) || (checkProofSignatureLine.text.indexOf("SpendProofV") !== 0 && TxUtils.checkAddress(checkProofAddressLine.text, appWindow.persistentSettings.nettype)))
|
||||
|
@ -225,9 +218,9 @@ Rectangle {
|
|||
text: qsTr("If a payment had several transactions then each must be checked and the results combined.") + translationManager.emptyString
|
||||
wrapMode: Text.Wrap
|
||||
Layout.fillWidth: true
|
||||
font.family: Style.fontRegular.name
|
||||
font.family: MoneroComponents.Style.fontRegular.name
|
||||
font.pixelSize: 14 * scaleRatio
|
||||
color: Style.defaultFontColor
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue