diff --git a/LeftPanel.qml b/LeftPanel.qml index c8d696da..ffdbd760 100644 --- a/LeftPanel.qml +++ b/LeftPanel.qml @@ -246,6 +246,31 @@ Rectangle { height: 1 } + // ------------- AddressBook tab --------------- + + MenuButton { + id: addressBookButton + anchors.left: parent.left + anchors.right: parent.right + text: qsTr("Address book") + translationManager.emptyString + symbol: qsTr("B") + translationManager.emptyString + dotColor: "#FF4F41" + under: transferButton + onClicked: { + parent.previousButton.checked = false + parent.previousButton = addressBookButton + panel.addressBookClicked() + } + } + + Rectangle { + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: 16 + color: "#505050" + height: 1 + } + // ------------- Receive tab --------------- MenuButton { id: receiveButton @@ -267,27 +292,6 @@ Rectangle { color: "#505050" height: 1 } - // ------------- TxKey tab --------------- - MenuButton { - id: txkeyButton - anchors.left: parent.left - anchors.right: parent.right - text: qsTr("Verify payment") + translationManager.emptyString - symbol: qsTr("K") + translationManager.emptyString - dotColor: "#AAFFBB" - onClicked: { - parent.previousButton.checked = false - parent.previousButton = txkeyButton - panel.txkeyClicked() - } - } - Rectangle { - anchors.left: parent.left - anchors.right: parent.right - anchors.leftMargin: 16 - color: "#505050" - height: 1 - } // ------------- History tab --------------- @@ -312,30 +316,6 @@ Rectangle { height: 1 } - // ------------- AddressBook tab --------------- - - MenuButton { - id: addressBookButton - anchors.left: parent.left - anchors.right: parent.right - text: qsTr("Address book") + translationManager.emptyString - symbol: qsTr("B") + translationManager.emptyString - dotColor: "#FF4F41" - onClicked: { - parent.previousButton.checked = false - parent.previousButton = addressBookButton - panel.addressBookClicked() - } - } - - Rectangle { - anchors.left: parent.left - anchors.right: parent.right - anchors.leftMargin: 16 - color: "#505050" - height: 1 - } - /* // ------------- Mining tab --------------- MenuButton { id: miningButton @@ -359,6 +339,50 @@ Rectangle { height: 1 } */ + // ------------- Advanced tab --------------- + MenuButton { + id: advancedButton + anchors.left: parent.left + anchors.right: parent.right + text: qsTr("Advanced") + translationManager.emptyString + symbol: qsTr("A") + translationManager.emptyString + dotColor: "#AAFFBB" + onClicked: { + parent.previousButton.checked = false + parent.previousButton = advancedButton + } + } + Rectangle { + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: 16 + color: "#505050" + height: 1 + } + + // ------------- TxKey tab --------------- + MenuButton { + id: txkeyButton + anchors.left: parent.left + anchors.right: parent.right + text: qsTr("Verify payment") + translationManager.emptyString + symbol: qsTr("K") + translationManager.emptyString + dotColor: "#AAFFBB" + under: advancedButton + onClicked: { + parent.previousButton.checked = false + parent.previousButton = txkeyButton + panel.txkeyClicked() + } + } + Rectangle { + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: 16 + color: "#505050" + height: 1 + } + // ------------- Sign/verify tab --------------- MenuButton { id: signButton @@ -367,6 +391,7 @@ Rectangle { text: qsTr("Sign/verify") + translationManager.emptyString symbol: qsTr("I") + translationManager.emptyString dotColor: "#AAFFBB" + under: advancedButton onClicked: { parent.previousButton.checked = false parent.previousButton = signButton diff --git a/components/MenuButton.qml b/components/MenuButton.qml index 1d0b00e1..9d4bbdc6 100644 --- a/components/MenuButton.qml +++ b/components/MenuButton.qml @@ -34,15 +34,48 @@ Rectangle { property bool checked: false property alias dotColor: dot.color property alias symbol: symbolText.text + property int numSelectedChildren: 0 + property var under: null signal clicked() - height: (appWindow.height >= 800) ? 64 : 56 + function getOffset() { + var offset = 0 + var item = button + while (item.under) { + offset += 20 + item = item.under + } + return offset + } + color: checked ? "#FFFFFF" : "#1C1C1C" + property bool present: !under || under.checked || checked || under.numSelectedChildren > 0 + height: present ? ((appWindow.height >= 800) ? 64 : 56) : 0 + + transform: Scale { + yScale: button.present ? 1 : 0 + + Behavior on yScale { + NumberAnimation { duration: 500; easing.type: Easing.InOutCubic } + } + } + + Behavior on height { + SequentialAnimation { + NumberAnimation { duration: 500; easing.type: Easing.InOutCubic } + } + } + + Behavior on checked { + // we get the value of checked before the change + ScriptAction { script: if (under) under.numSelectedChildren += checked > 0 ? -1 : 1 } + } Item { anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: parent.left + anchors.leftMargin: parent.getOffset() width: 50 Rectangle { @@ -85,6 +118,7 @@ Rectangle { anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right anchors.rightMargin: 20 + anchors.leftMargin: parent.getOffset() source: "../images/menuIndicator.png" } @@ -92,7 +126,7 @@ Rectangle { id: label anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left - anchors.leftMargin: 50 + anchors.leftMargin: parent.getOffset() + 50 font.family: "Arial" font.pixelSize: 18 color: parent.checked ? "#000000" : "#FFFFFF"