"word mnemonic input" with clipboard button and hint is reusable

component;
pull/2/head
Ilya Kitaev 8 years ago
parent 556de8f346
commit e3bea0dd4a

@ -27,7 +27,7 @@ TRANSLATIONS = monero-core_en.ts \ # English (could be untranslated)
# extra make targets for lupdate and lrelease invocation # extra make targets for lupdate and lrelease invocation
lupdate.commands = lupdate $$_PRO_FILE_ lupdate.commands = lupdate $$_PRO_FILE_
lupdate.depends = $$SOURCES $$HEADERS $$TRANSLATIONS lupdate.depends = $$SOURCES $$HEADERS
lrelease.commands = lrelease $$_PRO_FILE_ lrelease.commands = lrelease $$_PRO_FILE_
lrelease.depends = lupdate lrelease.depends = lupdate
translate.commands = $(COPY) *.qm ${DESTDIR} translate.commands = $(COPY) *.qm ${DESTDIR}
@ -56,5 +56,6 @@ include(deployment.pri)
DISTFILES += \ DISTFILES += \
wizard/WizardManageWalletUI.qml \ wizard/WizardManageWalletUI.qml \
.gitignore .gitignore \
wizard/WizardMemoTextInput.qml

@ -109,5 +109,6 @@
<file>lang/flags/usa.png</file> <file>lang/flags/usa.png</file>
<file>wizard/WizardManageWalletUI.qml</file> <file>wizard/WizardManageWalletUI.qml</file>
<file>wizard/WizardRecoveryWallet.qml</file> <file>wizard/WizardRecoveryWallet.qml</file>
<file>wizard/WizardMemoTextInput.qml</file>
</qresource> </qresource>
</RCC> </RCC>

@ -49,6 +49,10 @@ Item {
WizardManageWalletUI { WizardManageWalletUI {
id: uiItem id: uiItem
titleText: qsTr("A new wallet has been created for you") titleText: qsTr("A new wallet has been created for you")
wordsTextTitle: qsTr("This is the 24 word mnemonic for your wallet") wordsTextTitle: qsTr("This is the 25 word mnemonic for your wallet")
wordsTextItem.clipboardButtonVisible: true
wordsTextItem.tipTextVisible: true
wordsTextItem.memoTextReadOnly: true
} }
} }

@ -37,9 +37,8 @@ Item {
property alias titleText: titleText.text property alias titleText: titleText.text
property alias accountNameText: accountName.text property alias accountNameText: accountName.text
property alias wordsTextTitle: frameHeader.text property alias wordsTextTitle: frameHeader.text
property alias wordsText: wordsText.text
property alias wordsTextTip: tipRect
property alias walletPath: fileUrlInput.text property alias walletPath: fileUrlInput.text
property alias wordsTextItem : memoTextItem
// TODO extend properties if needed // TODO extend properties if needed
@ -147,81 +146,21 @@ Item {
//renderType: Text.NativeRendering //renderType: Text.NativeRendering
color: "#4A4646" color: "#4A4646"
elide: Text.ElideRight elide: Text.ElideRight
horizontalAlignment: Text.AlignHCenter
} }
Rectangle {
id: wordsRect
anchors.left: parent.left
anchors.right: parent.right
anchors.top: frameHeader.bottom
anchors.topMargin: 16
height: 182
border.width: 1
border.color: "#DBDBDB"
TextEdit {
id: wordsText
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: tipRect.top
anchors.margins: 16
font.family: "Arial"
font.pixelSize: 24
wrapMode: Text.Wrap
selectByMouse: true
readOnly: true
color: "#3F3F3F"
text: "bound class paint gasp task soul forgot past pleasure physical circle appear shore bathroom glove women crap busy beauty bliss idea give needle burden"
}
Image {
anchors.right: parent.right
anchors.bottom: tipRect.top
source: "qrc:///images/greyTriangle.png"
Image {
anchors.centerIn: parent
source: "qrc:///images/copyToClipboard.png"
}
Clipboard { id: clipboard } WizardMemoTextInput {
MouseArea { id : memoTextItem
anchors.fill: parent width: parent.width
cursorShape: Qt.PointingHandCursor anchors.top : frameHeader.bottom
onClicked: clipboard.setText(wordsText.text) anchors.topMargin: 16
}
}
Rectangle {
id: tipRect
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 65
color: "#DBDBDB"
property alias text: wordsTipText.text
Text {
id: wordsTipText
anchors.fill: parent
anchors.margins: 16
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.family: "Arial"
font.pixelSize: 15
color: "#4A4646"
wrapMode: Text.Wrap
text: qsTr("It is very important to write it down as this is the only backup you will need for your wallet. You will be asked to confirm the seed in the next screen to ensure it has copied down correctly.")
}
}
} }
Row { Row {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.top: wordsRect.bottom anchors.top: memoTextItem.bottom
anchors.topMargin: 24 anchors.topMargin: 24
spacing: 16 spacing: 16

@ -0,0 +1,80 @@
import QtQuick 2.0
import moneroComponents 1.0
Column {
property alias memoText : memoTextInput.text
property alias tipText: wordsTipText.text
property alias tipTextVisible: tipRect.visible
property alias memoTextReadOnly : memoTextInput.readOnly
property alias clipboardButtonVisible: clipboardButton.visible
Rectangle {
id: memoTextRect
width: parent.width
height: {
memoTextInput.height
// to have less gap between button and text input we reduce overall height by button height
//+ (clipboardButton.visible ? clipboardButton.height : 0)
+ (tipRect.visible ? tipRect.height : 0)
}
border.width: 1
border.color: "#DBDBDB"
TextEdit {
id: memoTextInput
textMargin: 8
text: "bound class paint gasp task soul forgot past pleasure physical circle appear shore bathroom glove women crap busy beauty bliss idea give needle burden"
font.family: "Arial"
font.pointSize: 16
wrapMode: TextInput.Wrap
width: parent.width
selectByMouse: true
property int minimumHeight: 100
height: contentHeight > minimumHeight ? contentHeight : minimumHeight
}
Image {
id : clipboardButton
anchors.right: parent.right
anchors.bottom: tipRect.top
source: "qrc:///images/greyTriangle.png"
Image {
anchors.centerIn: parent
source: "qrc:///images/copyToClipboard.png"
}
Clipboard { id: clipboard }
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: clipboard.setText(memoTextInput.text)
}
}
Rectangle {
id: tipRect
visible: true
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: memoTextRect.bottom
height: wordsTipText.contentHeight + wordsTipText.anchors.topMargin
color: "#DBDBDB"
property alias text: wordsTipText.text
Text {
id: wordsTipText
anchors.fill: parent
anchors.topMargin : 16
anchors.bottomMargin: 16
anchors.leftMargin: 16
anchors.rightMargin: 16
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.family: "Arial"
font.pixelSize: 15
color: "#4A4646"
wrapMode: Text.Wrap
text: qsTr("It is very important to write it down as this is the only backup you will need for your wallet. You will be asked to confirm the seed in the next screen to ensure it has copied down correctly.")
}
}
}
}

@ -50,6 +50,10 @@ Item {
id: uiItem id: uiItem
accountNameText: qsTr("My account name") accountNameText: qsTr("My account name")
titleText: qsTr("We're ready to recover your account") titleText: qsTr("We're ready to recover your account")
wordsTextTitle: qsTr("This is the 25 word mnemonic for your wallet") wordsTextTitle: qsTr("Please enter your 25 word private key")
wordsTextItem.clipboardButtonVisible: false
wordsTextItem.tipTextVisible: false
wordsTextItem.memoTextReadOnly: false
wordsTextItem.memoText: ""
} }
} }