mirror of
https://github.com/monero-project/monero-gui.git
synced 2024-11-16 15:58:11 +00:00
Receive page development
This commit is contained in:
parent
de3fd183d8
commit
e5357c8a0b
5 changed files with 316 additions and 166 deletions
|
@ -43,6 +43,7 @@ Item {
|
|||
property bool copyButton: false
|
||||
property int fontSize: 18 * scaleRatio
|
||||
property bool showBorder: true
|
||||
property bool fontBold: true
|
||||
property bool error: false
|
||||
property alias labelText: inputLabel.text
|
||||
property alias labelColor: inputLabel.color
|
||||
|
@ -53,7 +54,7 @@ Item {
|
|||
property alias labelWrapMode: inputLabel.wrapMode
|
||||
property alias labelHorizontalAlignment: inputLabel.horizontalAlignment
|
||||
signal labelLinkActivated(); // input label, rich text <a> signal
|
||||
signal editingFinished()
|
||||
signal editingFinished();
|
||||
signal accepted();
|
||||
signal textUpdated();
|
||||
|
||||
|
@ -82,7 +83,7 @@ Item {
|
|||
id: inputLabel
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.topMargin: 2
|
||||
anchors.topMargin: 2 * scaleRatio
|
||||
font.family: Style.fontRegular.name
|
||||
font.pixelSize: labelFontSize
|
||||
font.bold: labelFontBold
|
||||
|
@ -97,53 +98,25 @@ Item {
|
|||
}
|
||||
}
|
||||
|
||||
Rectangle{
|
||||
id: copyButtonRect
|
||||
color: "#808080"
|
||||
radius: 3
|
||||
height: 20
|
||||
width: 44
|
||||
LabelButton {
|
||||
id: copyButtonId
|
||||
text: qsTr("Copy")
|
||||
anchors.right: parent.right
|
||||
visible: copyButton && input.text !== "" ? true : false
|
||||
|
||||
Text {
|
||||
id: copyButtonText
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
font.family: Style.fontRegular.name
|
||||
font.pixelSize: 12
|
||||
font.bold: true
|
||||
text: "Copy"
|
||||
color: "black"
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: {
|
||||
if (addressLine.text.length > 0) {
|
||||
console.log(addressLine.text + " copied to clipboard")
|
||||
clipboard.setText(addressLine.text)
|
||||
appWindow.showStatusMessage(qsTr("Address copied to clipboard"),3)
|
||||
}
|
||||
}
|
||||
onEntered: {
|
||||
copyButtonRect.color = "#707070";
|
||||
copyButtonText.opacity = 0.8;
|
||||
}
|
||||
onExited: {
|
||||
copyButtonRect.color = "#808080";
|
||||
copyButtonText.opacity = 1.0;
|
||||
if (input.text.length > 0) {
|
||||
console.log(input.text + " copied to clipboard")
|
||||
clipboard.setText(input.text)
|
||||
appWindow.showStatusMessage(qsTr("Copied to clipboard"),3)
|
||||
}
|
||||
}
|
||||
visible: input.text && copyButton ? true : false
|
||||
}
|
||||
|
||||
Item{
|
||||
id: inputItem
|
||||
height: 40 * scaleRatio
|
||||
anchors.top: inputLabel.bottom
|
||||
anchors.topMargin: 6
|
||||
anchors.topMargin: 6 * scaleRatio
|
||||
width: parent.width
|
||||
|
||||
Text {
|
||||
|
@ -151,7 +124,7 @@ Item {
|
|||
visible: input.text ? false : true
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: inlineIcon.visible ? 50 : 10
|
||||
anchors.leftMargin: inlineIcon.visible ? 50 * scaleRatio : 10 * scaleRatio
|
||||
opacity: 0.25
|
||||
color: Style.defaultFontColor
|
||||
font.family: Style.fontRegular.name
|
||||
|
@ -197,6 +170,7 @@ Item {
|
|||
anchors.fill: parent
|
||||
anchors.leftMargin: inlineIcon.visible ? 38 : 0
|
||||
font.pixelSize: item.fontSize
|
||||
font.bold: fontBold
|
||||
onEditingFinished: item.editingFinished()
|
||||
onAccepted: item.accepted();
|
||||
onTextChanged: item.textUpdated()
|
||||
|
@ -204,12 +178,11 @@ Item {
|
|||
|
||||
InlineButton {
|
||||
id: inlineButtonId
|
||||
onClicked: inlineButtonId.onClicked
|
||||
visible: item.inlineButtonText ? true : false
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 8
|
||||
anchors.rightMargin: 8 * scaleRatio
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 6
|
||||
anchors.topMargin: 6 * scaleRatio
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,11 +38,11 @@ Rectangle {
|
|||
property var model
|
||||
|
||||
ColumnLayout {
|
||||
anchors.margins: 17 * scaleRatio
|
||||
anchors.margins: (isMobile)? 17 : 40
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
spacing: 10 * scaleRatio
|
||||
spacing: 26 * scaleRatio
|
||||
|
||||
RowLayout {
|
||||
StandardButton {
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
||||
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 1.4
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.2
|
||||
import QtQuick.Controls.Styles 1.4
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Dialogs 1.2
|
||||
|
@ -43,7 +43,7 @@ import moneroComponents.SubaddressModel 1.0
|
|||
|
||||
Rectangle {
|
||||
id: pageReceive
|
||||
color: "#F0EEEE"
|
||||
color: "transparent"
|
||||
property alias addressText : addressLine.text
|
||||
property alias paymentIdText : paymentIdLine.text
|
||||
property alias integratedAddressText : integratedAddressLine.text
|
||||
|
@ -156,14 +156,14 @@ Rectangle {
|
|||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
|
||||
spacing: 20 * scaleRatio
|
||||
spacing: 26 * scaleRatio
|
||||
property int labelWidth: 120 * scaleRatio
|
||||
property int editWidth: 400 * scaleRatio
|
||||
property int lineEditFontSize: 12 * scaleRatio
|
||||
property int qrCodeSize: 240 * scaleRatio
|
||||
|
||||
|
||||
ColumnLayout {
|
||||
<<<<<<< HEAD
|
||||
id: addressRow
|
||||
Label {
|
||||
id: addressLabel
|
||||
|
@ -224,29 +224,99 @@ Rectangle {
|
|||
inputDialog.inputText = appWindow.currentWallet.getSubaddressLabel(appWindow.currentWallet.currentSubaddressAccount, table.currentIndex)
|
||||
inputDialog.onAcceptedCallback = function() {
|
||||
appWindow.currentWallet.subaddress.setLabel(appWindow.currentWallet.currentSubaddressAccount, table.currentIndex, inputDialog.inputText)
|
||||
}
|
||||
inputDialog.onRejectedCallback = null;
|
||||
inputDialog.open()
|
||||
=======
|
||||
id: addressLineRow
|
||||
|
||||
LineEditMulti {
|
||||
id: addressLine
|
||||
inputLabelText: qsTr("Address") + translationManager.emptyString
|
||||
placeholderText: qsTr("ReadOnly wallet address displayed here") + translationManager.emptyString;
|
||||
readOnly: true
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
}
|
||||
}
|
||||
|
||||
GridLayout {
|
||||
id: paymentIdRow
|
||||
columns:2
|
||||
|
||||
// @TODO: copy button copies the wrong input box
|
||||
LineEdit {
|
||||
id: paymentIdLine
|
||||
placeholderText: qsTr("16 hexadecimal characters") + translationManager.emptyString;
|
||||
readOnly: false
|
||||
onTextChanged: updatePaymentId(paymentIdLine.text)
|
||||
inlineButtonText: "Generate"
|
||||
inlineButton.onClicked: updatePaymentId()
|
||||
width: mainLayout.editWidth
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
labelText: qsTr("Payment ID") + qsTr("<style type='text/css'>a {text-decoration: none; color: #858585; font-size: 14px;}</style>\
|
||||
<font size='2'> ( </font><a href='#'>help</a><font size='2'> )</font> ")
|
||||
+ translationManager.emptyString
|
||||
onLabelLinkActivated: {
|
||||
trackingHowToUseDialog.title = qsTr("Tracking payments") + translationManager.emptyString;
|
||||
trackingHowToUseDialog.text = qsTr(
|
||||
"<p><font size='+2'>This is a simple sales tracker:</font></p>" +
|
||||
"<p>Click Generate to create a random payment id for a new customer</p> " +
|
||||
"<p>Let your customer scan that QR code to make a payment (if that customer has software which " +
|
||||
"supports QR code scanning).</p>" +
|
||||
"<p>This page will automatically scan the blockchain and the tx pool " +
|
||||
"for incoming transactions using this QR code. If you input an amount, it will also check " +
|
||||
"that incoming transactions total up to that amount.</p>" +
|
||||
"It's up to you whether to accept unconfirmed transactions or not. It is likely they'll be " +
|
||||
"confirmed in short order, but there is still a possibility they might not, so for larger " +
|
||||
"values you may want to wait for one or more confirmation(s).</p>"
|
||||
)
|
||||
trackingHowToUseDialog.icon = StandardIcon.Information
|
||||
trackingHowToUseDialog.open()
|
||||
}
|
||||
}
|
||||
|
||||
// @TODO: CLEAR BUTTON should be present as labelButton
|
||||
// StandardButton {
|
||||
// id: clearPaymentId
|
||||
// enabled: !!paymentIdLine.text
|
||||
// shadowReleasedColor: "#FF4304"
|
||||
// shadowPressedColor: "#B32D00"
|
||||
// releasedColor: "#FF6C3C"
|
||||
// pressedColor: "#FF4304"
|
||||
// text: qsTr("Clear") + translationManager.emptyString;
|
||||
// onClicked: updatePaymentId("")
|
||||
// }
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: amountRow
|
||||
Label {
|
||||
id: amountLabel
|
||||
text: qsTr("Amount") + translationManager.emptyString
|
||||
width: mainLayout.labelWidth
|
||||
id: integratedAddressRow
|
||||
|
||||
LineEditMulti {
|
||||
id: integratedAddressLine
|
||||
inputLabelText: qsTr("Integrated address") + translationManager.emptyString
|
||||
placeholderText: qsTr("Generate payment ID for integrated address") + translationManager.emptyString
|
||||
readOnly: true
|
||||
Layout.fillWidth: true
|
||||
copyButton: true
|
||||
}
|
||||
}
|
||||
|
||||
GridLayout {
|
||||
columns: (isMobile)? 1 : 2
|
||||
Layout.fillWidth: true
|
||||
columnSpacing: 32
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.minimumWidth: 200
|
||||
LineEdit {
|
||||
id: amountLine
|
||||
// fontSize: mainLayout.lineEditFontSize
|
||||
placeholderText: qsTr("Amount to receive") + translationManager.emptyString
|
||||
readOnly: false
|
||||
width: mainLayout.editWidth
|
||||
inlineIcon: true
|
||||
labelText: qsTr("Amount")
|
||||
Layout.fillWidth: true
|
||||
validator: DoubleValidator {
|
||||
bottom: 0.0
|
||||
|
@ -254,13 +324,23 @@ Rectangle {
|
|||
decimals: 12
|
||||
notation: DoubleValidator.StandardNotation
|
||||
locale: "C"
|
||||
>>>>>>> Receive page development
|
||||
}
|
||||
inputDialog.onRejectedCallback = null;
|
||||
inputDialog.open()
|
||||
}
|
||||
}
|
||||
}
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
id: trackingRow
|
||||
Layout.fillWidth: true
|
||||
visible: !isAndroid && !isIOS
|
||||
<<<<<<< HEAD
|
||||
Label {
|
||||
id: trackingLabel
|
||||
textFormat: Text.RichText
|
||||
|
@ -288,16 +368,39 @@ Rectangle {
|
|||
trackingHowToUseDialog.open()
|
||||
}
|
||||
}
|
||||
=======
|
||||
>>>>>>> Receive page development
|
||||
|
||||
TextEdit {
|
||||
id: trackingLine
|
||||
anchors.top: trackingRow.top
|
||||
horizontalAlignment: TextInput.AlignLeft
|
||||
Layout.fillWidth: true
|
||||
textFormat: Text.RichText
|
||||
text: ""
|
||||
readOnly: true
|
||||
width: mainLayout.editWidth
|
||||
Layout.fillWidth: true
|
||||
selectByMouse: true
|
||||
color: Style.defaultFontColor
|
||||
font.family: Style.fontRegular.name
|
||||
font.pixelSize: 16 * scaleRatio
|
||||
leftPadding: 12 * scaleRatio
|
||||
rightPadding: 12 * scaleRatio
|
||||
topPadding: 8 * scaleRatio
|
||||
bottomPadding: 8 * scaleRatio
|
||||
|
||||
Rectangle {
|
||||
color: "transparent"
|
||||
border.width: 1
|
||||
border.color: {
|
||||
if(trackingLine.activeFocus){
|
||||
return Qt.rgba(255, 255, 255, 0.35);
|
||||
} else {
|
||||
return Qt.rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
}
|
||||
radius: 4
|
||||
anchors.fill: parent
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -113,19 +113,19 @@ Rectangle {
|
|||
|
||||
ColumnLayout {
|
||||
id: pageRoot
|
||||
anchors.margins: (isMobile)? 17 : 40
|
||||
anchors.margins: (isMobile)? 17 : 20
|
||||
anchors.topMargin: 40 * scaleRatio
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
|
||||
spacing: 20 * scaleRatio
|
||||
spacing: 26 * scaleRatio
|
||||
|
||||
GridLayout {
|
||||
columns: (isMobile)? 1 : 2
|
||||
Layout.fillWidth: true
|
||||
columnSpacing: 48
|
||||
columnSpacing: 32
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
@ -198,97 +198,169 @@ Rectangle {
|
|||
id: addressLineRow
|
||||
Layout.fillWidth: true
|
||||
|
||||
ColumnLayout {
|
||||
Rectangle{
|
||||
id: inputLabelRect
|
||||
color: "transparent"
|
||||
Layout.fillWidth: true
|
||||
height: inputLabel.height + 10
|
||||
LineEditMulti{
|
||||
id: addressLine
|
||||
spacing: 0
|
||||
// @TODO:
|
||||
// - fix wrong copy @ receive.qml
|
||||
// - resolve button click @ multiline @ transfer.qml
|
||||
|
||||
Text {
|
||||
id: inputLabel
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
font.family: Style.fontRegular.name
|
||||
font.pixelSize: 16 * scaleRatio
|
||||
font.bold: labelFontBold
|
||||
textFormat: Text.RichText
|
||||
color: Style.defaultFontColor
|
||||
onLinkActivated: { appWindow.showPageRequest("AddressBook") }
|
||||
text: qsTr("<style type='text/css'>a {text-decoration: none; color: #858585; font-size: 14px;}</style>\
|
||||
inputLabelText: qsTr("<style type='text/css'>a {text-decoration: none; color: #858585; font-size: 14px;}</style>\
|
||||
Address <font size='2'> ( </font> <a href='#'>Address book</a><font size='2'> )</font>")
|
||||
+ translationManager.emptyString
|
||||
labelButtonText: qsTr("Resolve") + translationManager.emptyString
|
||||
placeholderText: "4.."
|
||||
onInputLabelLinkActivated: { appWindow.showPageRequest("AddressBook") }
|
||||
onLabelButtonClicked: {
|
||||
var result = walletManager.resolveOpenAlias(addressLine.text)
|
||||
if (result) {
|
||||
var parts = result.split("|")
|
||||
if (parts.length == 2) {
|
||||
var address_ok = walletManager.addressValid(parts[1], appWindow.persistentSettings.testnet)
|
||||
if (parts[0] === "true") {
|
||||
if (address_ok) {
|
||||
addressLine.text = parts[1]
|
||||
addressLine.cursorPosition = 0
|
||||
}
|
||||
|
||||
Rectangle{
|
||||
id: copyButton
|
||||
color: "#808080"
|
||||
radius: 3
|
||||
height: 20
|
||||
width: copyButtonText.width + 8
|
||||
anchors.right: parent.right
|
||||
visible: addressLine.text !== ""
|
||||
|
||||
Text {
|
||||
id: copyButtonText
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
font.family: Style.fontRegular.name
|
||||
font.pixelSize: 12
|
||||
font.bold: true
|
||||
text: qsTr("Copy") + translationManager.emptyString
|
||||
color: "black"
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: {
|
||||
if (addressLine.text.length > 0) {
|
||||
console.log(addressLine.text + " copied to clipboard");
|
||||
clipboard.setText(addressLine.text);
|
||||
appWindow.showStatusMessage(qsTr("Address copied to clipboard"), 3);
|
||||
}
|
||||
}
|
||||
onEntered: {
|
||||
copyButton.color = "#707070";
|
||||
copyButtonText.opacity = 0.8;
|
||||
}
|
||||
onExited: {
|
||||
copyButtonText.opacity = 1.0;
|
||||
copyButton.color = "#808080";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
InputMulti {
|
||||
id: addressLine
|
||||
readOnly: false
|
||||
addressValidation: true
|
||||
anchors.top: inputLabelRect.bottom
|
||||
placeholderText: "4..."
|
||||
Layout.fillWidth: true
|
||||
|
||||
Rectangle {
|
||||
color: "transparent"
|
||||
border.width: 1
|
||||
border.color: {
|
||||
if(addressLine.error && addressLine.text !== ""){
|
||||
return Qt.rgba(255, 0, 0, 0.45);
|
||||
} else if(addressLine.activeFocus){
|
||||
return Qt.rgba(255, 255, 255, 0.35);
|
||||
else
|
||||
oa_message(qsTr("No valid address found at this OpenAlias address"))
|
||||
} else if (parts[0] === "false") {
|
||||
if (address_ok) {
|
||||
addressLine.text = parts[1]
|
||||
addressLine.cursorPosition = 0
|
||||
oa_message(qsTr("Address found, but the DNSSEC signatures could not be verified, so this address may be spoofed"))
|
||||
} else {
|
||||
return Qt.rgba(255, 255, 255, 0.25);
|
||||
oa_message(qsTr("No valid address found at this OpenAlias address, but the DNSSEC signatures could not be verified, so this may be spoofed"))
|
||||
}
|
||||
} else {
|
||||
oa_message(qsTr("Internal error"))
|
||||
}
|
||||
radius: 4
|
||||
anchors.fill: parent
|
||||
} else {
|
||||
oa_message(qsTr("Internal error"))
|
||||
}
|
||||
} else {
|
||||
oa_message(qsTr("No address found"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ColumnLayout {
|
||||
// spacing: 0
|
||||
// Rectangle{
|
||||
// id: inputLabelRect
|
||||
// color: "transparent"
|
||||
// Layout.fillWidth: true
|
||||
// height: inputLabel.height + 10
|
||||
|
||||
// Text {
|
||||
// id: inputLabel
|
||||
// anchors.top: parent.top
|
||||
// anchors.left: parent.left
|
||||
// font.family: Style.fontRegular.name
|
||||
// font.pixelSize: 16 * scaleRatio
|
||||
// font.bold: labelFontBold
|
||||
// textFormat: Text.RichText
|
||||
// color: Style.defaultFontColor
|
||||
// onLinkActivated: { appWindow.showPageRequest("AddressBook") }
|
||||
// text: qsTr("<style type='text/css'>a {text-decoration: none; color: #858585; font-size: 14px;}</style>\
|
||||
// Address <font size='2'> ( </font> <a href='#'>Address book</a><font size='2'> )</font>")
|
||||
// + translationManager.emptyString
|
||||
// }
|
||||
|
||||
// Rectangle{
|
||||
// id: resolveButton
|
||||
// color: "#808080"
|
||||
// radius: 3
|
||||
// height: 20
|
||||
// width: resolveButtonText.width + 8
|
||||
// anchors.right: copyButton.left
|
||||
// anchors.rightMargin: 6
|
||||
// visible: isValidOpenAliasAddress(addressLine.text)
|
||||
|
||||
// Text {
|
||||
// id: resolveButtonText
|
||||
// anchors.verticalCenter: parent.verticalCenter
|
||||
// anchors.horizontalCenter: parent.horizontalCenter
|
||||
// font.family: Style.fontRegular.name
|
||||
// font.pixelSize: 12
|
||||
// font.bold: true
|
||||
// text: qsTr("Resolve") + translationManager.emptyString
|
||||
// color: "black"
|
||||
// }
|
||||
|
||||
// MouseArea {
|
||||
// cursorShape: Qt.PointingHandCursor
|
||||
// anchors.fill: parent
|
||||
// hoverEnabled: true
|
||||
// onClicked: {
|
||||
// var result = walletManager.resolveOpenAlias(addressLine.text)
|
||||
// if (result) {
|
||||
// var parts = result.split("|")
|
||||
// if (parts.length == 2) {
|
||||
// var address_ok = walletManager.addressValid(parts[1], appWindow.persistentSettings.testnet)
|
||||
// if (parts[0] === "true") {
|
||||
// if (address_ok) {
|
||||
// addressLine.text = parts[1]
|
||||
// addressLine.cursorPosition = 0
|
||||
// }
|
||||
// else
|
||||
// oa_message(qsTr("No valid address found at this OpenAlias address"))
|
||||
// } else if (parts[0] === "false") {
|
||||
// if (address_ok) {
|
||||
// addressLine.text = parts[1]
|
||||
// addressLine.cursorPosition = 0
|
||||
// oa_message(qsTr("Address found, but the DNSSEC signatures could not be verified, so this address may be spoofed"))
|
||||
// } else {
|
||||
// oa_message(qsTr("No valid address found at this OpenAlias address, but the DNSSEC signatures could not be verified, so this may be spoofed"))
|
||||
// }
|
||||
// } else {
|
||||
// oa_message(qsTr("Internal error"))
|
||||
// }
|
||||
// } else {
|
||||
// oa_message(qsTr("Internal error"))
|
||||
// }
|
||||
// } else {
|
||||
// oa_message(qsTr("No address found"))
|
||||
// }
|
||||
// }
|
||||
// onEntered: {
|
||||
// resolveButton.color = "#707070";
|
||||
// resolveButtonText.opacity = 0.8;
|
||||
// }
|
||||
// onExited: {
|
||||
// resolveButtonText.opacity = 1.0;
|
||||
// resolveButton.color = "#808080";
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// InputMulti {
|
||||
// id: addressLine
|
||||
// readOnly: false
|
||||
// addressValidation: true
|
||||
// anchors.top: inputLabelRect.bottom
|
||||
// placeholderText: "4..."
|
||||
// Layout.fillWidth: true
|
||||
|
||||
// Rectangle {
|
||||
// color: "transparent"
|
||||
// border.width: 1
|
||||
// border.color: {
|
||||
// if(addressLine.error && addressLine.text !== ""){
|
||||
// return Qt.rgba(255, 0, 0, 0.45);
|
||||
// } else if(addressLine.activeFocus){
|
||||
// return Qt.rgba(255, 255, 255, 0.35);
|
||||
// } else {
|
||||
// return Qt.rgba(255, 255, 255, 0.25);
|
||||
// }
|
||||
// }
|
||||
// radius: 4
|
||||
// anchors.fill: parent
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
StandardButton {
|
||||
id: qrfinderButton
|
||||
text: qsTr("QR Code") + translationManager.emptyString
|
||||
|
@ -374,9 +446,9 @@ Rectangle {
|
|||
anchors.top: pageRoot.bottom
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.margins: (isMobile)? 17 : 40
|
||||
anchors.margins: (isMobile)? 17 : 20
|
||||
anchors.topMargin: 40 * scaleRatio
|
||||
spacing: 20 * scaleRatio
|
||||
spacing: 26 * scaleRatio
|
||||
enabled: !viewOnly || pageRoot.enabled
|
||||
|
||||
RowLayout {
|
||||
|
|
2
qml.qrc
2
qml.qrc
|
@ -192,5 +192,7 @@
|
|||
<file>images/middlePanelBg.jpg</file>
|
||||
<file>components/InputMulti.qml</file>
|
||||
<file>images/checkedIcon-black.png</file>
|
||||
<file>components/LineEditMulti.qml</file>
|
||||
<file>components/LabelButton.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
Loading…
Reference in a new issue