diff --git a/components/InputDialog.qml b/components/InputDialog.qml index 8ab5b5d8..2990c5c9 100644 --- a/components/InputDialog.qml +++ b/components/InputDialog.qml @@ -150,10 +150,6 @@ Item { id: cancelButton width: 120 fontSize: 14 - shadowReleasedColor: "#FF4304" - shadowPressedColor: "#B32D00" - releasedColor: "#FF6C3C" - pressedColor: "#FF4304" text: qsTr("Cancel") + translationManager.emptyString KeyNavigation.tab: input onClicked: { @@ -165,10 +161,6 @@ Item { id: okButton width: 120 fontSize: 14 - shadowReleasedColor: "#FF4304" - shadowPressedColor: "#B32D00" - releasedColor: "#FF6C3C" - pressedColor: "#FF4304" text: qsTr("Ok") KeyNavigation.tab: cancelButton onClicked: { diff --git a/components/InputMulti.qml b/components/InputMulti.qml index 2df797e2..f809ca10 100644 --- a/components/InputMulti.qml +++ b/components/InputMulti.qml @@ -36,13 +36,15 @@ TextArea { property bool error: false property bool addressValidation: false property bool wrapAnywhere: true + property int fontSize: 18 * scaleRatio id: textArea - font.family: Style.fontRegular.name - font.pixelSize: 18 * scaleRatio + font.family: Style.fontRegular + font.pixelSize: fontSize font.bold: false horizontalAlignment: TextInput.AlignLeft selectByMouse: true color: Style.defaultFontColor + wrapMode: { if(wrapAnywhere){ return Text.WrapAnywhere; diff --git a/components/LineEdit.qml b/components/LineEdit.qml index f488790d..f5e8a478 100644 --- a/components/LineEdit.qml +++ b/components/LineEdit.qml @@ -131,7 +131,7 @@ Item { id: inputItem height: inputHeight * scaleRatio anchors.top: showingHeader ? inputLabel.bottom : parent.top - anchors.topMargin: showingHeader ? 12 * scaleRatio : 2 + anchors.topMargin: showingHeader ? 12 * scaleRatio : 2 * scaleRatio width: parent.width Text { diff --git a/components/LineEditMulti.qml b/components/LineEditMulti.qml index 43d67602..02f281f3 100644 --- a/components/LineEditMulti.qml +++ b/components/LineEditMulti.qml @@ -32,6 +32,7 @@ import "." 1.0 ColumnLayout { + id: lineditmulti property alias text: multiLine.text property alias placeholderText: placeholderLabel.text property alias inputLabelText: inputLabel.text @@ -43,6 +44,10 @@ ColumnLayout { property bool labelButtonVisible: false property bool copyButton: false property bool wrapAnywhere: true + property bool showingHeader: true + property bool showBorder: true + property int fontSize: 18 * scaleRatio + signal labelButtonClicked(); signal inputLabelLinkActivated(); @@ -52,6 +57,7 @@ ColumnLayout { color: "transparent" Layout.fillWidth: true height: (inputLabel.height + 10) * scaleRatio + visible: showingHeader ? true : false Text { id: inputLabel @@ -91,11 +97,12 @@ ColumnLayout { id: multiLine readOnly: false addressValidation: true - anchors.top: inputLabelRect.bottom + anchors.top: parent.showingHeader ? inputLabelRect.bottom : parent.top Layout.fillWidth: true - topPadding: 10 * scaleRatio + topPadding: parent.showingHeader ? 10 * scaleRatio : 0 bottomPadding: 10 * scaleRatio wrapAnywhere: parent.wrapAnywhere + fontSize: parent.fontSize Text { id: placeholderLabel @@ -125,6 +132,7 @@ ColumnLayout { } radius: 4 anchors.fill: parent + visible: lineditmulti.showBorder } } } diff --git a/components/SubaddressTable.qml b/components/SubaddressTable.qml index 8d6b8d1d..a52ed1fe 100644 --- a/components/SubaddressTable.qml +++ b/components/SubaddressTable.qml @@ -28,40 +28,57 @@ import QtQuick 2.0 import moneroComponents.Clipboard 1.0 +import "." 1.0 ListView { id: listView clip: true boundsBehavior: ListView.StopAtBounds highlightMoveDuration: 0 + highlightFollowsCurrentItem: true + anchors.topMargin: 0 + spacing: 0 delegate: Rectangle { id: delegate - height: 64 + height: 74 + color: 'transparent'; + anchors.topMargin: 0 width: listView.width - LineEdit { + LineEditMulti { id: addressLine + //borderDisabled: true fontSize: 12 readOnly: true width: parent.width anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right - anchors.margins: 5 + anchors.leftMargin: 5 + anchors.topMargin: 12 + anchors.rightMargin: 40 + anchors.bottomMargin: 0 onTextChanged: cursorPosition = 0 text: address - showBorder: false - IconButton { - id: clipboardButton - imageSource: "../images/copyToClipboard.png" - onClicked: { - console.log(addressLine.text + " copied to clipboard"); - clipboard.setText(addressLine.text); - appWindow.showStatusMessage(qsTr("Address copied to clipboard"),3); - } + showingHeader: false + showBorder: false + } + + IconButton { + id: clipboardButton + imageSource: "../images/copyToClipboard.png" + + onClicked: { + console.log(addressLine.text + " copied to clipboard"); + clipboard.setText(addressLine.text); + appWindow.showStatusMessage(qsTr("Address copied to clipboard"),3); } + + anchors.right: parent.right + anchors.rightMargin: 0 + anchors.verticalCenter: parent.verticalCenter } Text { @@ -85,7 +102,7 @@ ListView { font.family: "Arial" font.bold: true font.pixelSize: 12 - color: "#444444" + color: Style.greyFontColor text: label } @@ -96,14 +113,46 @@ ListView { anchors.bottom: parent.bottom anchors.right: parent.right anchors.rightMargin: clipboardButton.width - onClicked: listView.currentIndex = index + cursorShape: Qt.PointingHandCursor + onClicked: { + listView.currentIndex = index; + } + } + + Rectangle { + anchors.left: parent.left + anchors.top: parent.top + anchors.bottom: parent.bottom + width: 1 + color: Style.grey + z: 6 + } + + Rectangle { + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + width: 1 + color: Style.grey + z: 6 + } + + Rectangle { + anchors.right: parent.right + anchors.left: parent.left + anchors.bottom: parent.bottom + color: Style.grey + height: 1 + z: 6 + } + + Rectangle { + width: 3 + color: 'white' + visible: listView.currentIndex == index + anchors.left: parent.left + anchors.top: parent.top + anchors.bottom: parent.bottom } } - - highlight: Rectangle { - height: 64 - color: '#FF4304' - opacity: 0.2 - z: 2 - } } diff --git a/pages/Receive.qml b/pages/Receive.qml index 18c5ef72..75504387 100644 --- a/pages/Receive.qml +++ b/pages/Receive.qml @@ -26,7 +26,7 @@ // 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.7 +import QtQuick 2.0 import QtQuick.Controls 2.2 import QtQuick.Controls.Styles 1.4 import QtQuick.Layouts 1.1 @@ -44,9 +44,6 @@ import moneroComponents.SubaddressModel 1.0 Rectangle { id: pageReceive color: "transparent" - property alias addressText : addressLine.text - property alias paymentIdText : paymentIdLine.text - property alias integratedAddressText : integratedAddressLine.text property var model property var current_address property alias addressText : pageReceive.current_address @@ -156,26 +153,69 @@ Rectangle { anchors.top: parent.top anchors.right: parent.right - spacing: 26 * scaleRatio + spacing: 20 * 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 + spacing: 0 Label { id: addressLabel text: qsTr("Addresses") + translationManager.emptyString width: mainLayout.labelWidth } + Rectangle { + id: header + Layout.fillWidth: true + Layout.topMargin: 10 + + height: 10 + color: "#CC000000" + + Rectangle { + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: 10 + anchors.leftMargin: 10 + + height: 1 + color: "#404040" + } + + Image { + anchors.top: parent.top + anchors.left: parent.left + + width: 10 + height: 10 + + source: "../images/historyBorderRadius.png" + } + + Image { + anchors.top: parent.top + anchors.right: parent.right + + width: 10 + height: 10 + + source: "../images/historyBorderRadius.png" + rotation: 90 + } + } + Rectangle { id: tableRect Layout.fillWidth: true - Layout.preferredHeight: 200 - color: "#FFFFFF" + Layout.preferredHeight: 240 + color: "transparent" + Scroll { id: flickableScroll anchors.right: table.right @@ -183,6 +223,7 @@ Rectangle { anchors.bottom: table.bottom flickable: table } + SubaddressTable { id: table anchors.fill: parent @@ -195,11 +236,10 @@ Rectangle { RowLayout { spacing: 20 + Layout.topMargin: 20 + StandardButton { - shadowReleasedColor: "#FF4304" - shadowPressedColor: "#B32D00" - releasedColor: "#FF6C3C" - pressedColor: "#FF4304" + small: true text: qsTr("Create new address") + translationManager.emptyString; onClicked: { inputDialog.labelText = qsTr("Set the label of the new address:") + translationManager.emptyString @@ -213,10 +253,7 @@ Rectangle { } } StandardButton { - shadowReleasedColor: "#FF4304" - shadowPressedColor: "#B32D00" - releasedColor: "#FF6C3C" - pressedColor: "#FF4304" + small: true enabled: table.currentIndex > 0 text: qsTr("Rename") + translationManager.emptyString; onClicked: { @@ -224,123 +261,42 @@ 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) -======= - 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("\ - ( help ) ") - + translationManager.emptyString - onLabelLinkActivated: { - trackingHowToUseDialog.title = qsTr("Tracking payments") + translationManager.emptyString; - trackingHowToUseDialog.text = qsTr( - "

This is a simple sales tracker:

" + - "

Click Generate to create a random payment id for a new customer

" + - "

Let your customer scan that QR code to make a payment (if that customer has software which " + - "supports QR code scanning).

" + - "

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.

" + - "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).

" - ) - 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: 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 - placeholderText: qsTr("Amount to receive") + translationManager.emptyString - readOnly: false - inlineIcon: true - labelText: qsTr("Amount") - Layout.fillWidth: true - validator: DoubleValidator { - bottom: 0.0 - top: 18446744.073709551615 - decimals: 12 - notation: DoubleValidator.StandardNotation - locale: "C" ->>>>>>> Receive page development } inputDialog.onRejectedCallback = null; inputDialog.open() } } } - ColumnLayout { + } + + ColumnLayout { + id: amountRow + Label { + id: amountLabel + text: qsTr("Amount") + translationManager.emptyString + width: mainLayout.labelWidth + } + + + LineEdit { + id: amountLine + placeholderText: qsTr("Amount to receive") + translationManager.emptyString + readOnly: false + width: mainLayout.editWidth Layout.fillWidth: true + validator: DoubleValidator { + bottom: 0.0 + top: 18446744.073709551615 + decimals: 12 + notation: DoubleValidator.StandardNotation + locale: "C" + } } } - RowLayout { + ColumnLayout { id: trackingRow - Layout.fillWidth: true visible: !isAndroid && !isIOS -<<<<<<< HEAD Label { id: trackingLabel textFormat: Text.RichText @@ -368,41 +324,17 @@ Rectangle { trackingHowToUseDialog.open() } } -======= ->>>>>>> Receive page development TextEdit { id: trackingLine - anchors.top: trackingRow.top - horizontalAlignment: TextInput.AlignLeft + readOnly: true + width: mainLayout.editWidth Layout.fillWidth: true textFormat: Text.RichText text: "" - readOnly: 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 - } + color: 'white' } - } MessageDialog { diff --git a/pages/Settings.qml b/pages/Settings.qml index c0a152a8..c56e6e0c 100644 --- a/pages/Settings.qml +++ b/pages/Settings.qml @@ -574,17 +574,20 @@ Rectangle { TextBlock { Layout.topMargin: 8 + font.pixelSize: 14 Layout.fillWidth: true text: qsTr("GUI version: ") + Version.GUI_VERSION + translationManager.emptyString } TextBlock { id: guiMoneroVersion Layout.fillWidth: true + font.pixelSize: 14 text: qsTr("Embedded Monero version: ") + Version.GUI_MONERO_VERSION + translationManager.emptyString } TextBlock { id: restoreHeightText Layout.fillWidth: true + font.pixelSize: 14 textFormat: Text.RichText property var txt: "" + qsTr("Wallet creation height: ") + (currentWallet ? currentWallet.walletCreationHeight : "") + translationManager.emptyString property var linkTxt: qsTr(" (Click to change)") + translationManager.emptyString @@ -652,14 +655,17 @@ Rectangle { TextBlock { Layout.fillWidth: true + font.pixelSize: 14 text: (!currentWallet) ? "" : qsTr("Wallet log path: ") + currentWallet.walletLogPath + translationManager.emptyString } TextBlock { Layout.fillWidth: true + font.pixelSize: 14 text: qsTr("Wallet Name: ") + walletName + translationManager.emptyString } TextBlock { Layout.fillWidth: true + font.pixelSize: 14 text: (!currentWallet) ? "" : qsTr("Daemon log path: ") + currentWallet.daemonLogPath + translationManager.emptyString } }