diff --git a/components/Navbar.qml b/components/Navbar.qml index f7a55abf..3ea7c07a 100644 --- a/components/Navbar.qml +++ b/components/Navbar.qml @@ -32,6 +32,8 @@ import "." as MoneroComponents Rectangle { default property list items + property alias currentIndex: repeater.currentIndex + property alias previousIndex: repeater.previousIndex color: "transparent" height: grid.height @@ -100,7 +102,10 @@ Rectangle { } Repeater { + id: repeater model: items.length + property int currentIndex: 0 + property int previousIndex: 0 RowLayout { spacing: 0 @@ -149,7 +154,11 @@ Rectangle { hoverEnabled: true cursorShape: Qt.PointingHandCursor - onClicked: items[index].selected() + onClicked: { + repeater.previousIndex = repeater.currentIndex; + repeater.currentIndex = index; + items[index].selected() + } } } diff --git a/pages/Advanced.qml b/pages/Advanced.qml index fbd45d76..6aa8ac46 100644 --- a/pages/Advanced.qml +++ b/pages/Advanced.qml @@ -43,6 +43,7 @@ ColumnLayout { property alias state: stateView.state MoneroComponents.Navbar { + id: navbarId Layout.alignment: Qt.AlignHCenter Layout.topMargin: height Layout.bottomMargin: height @@ -128,7 +129,7 @@ ColumnLayout { PropertyAnimation { target: enterItem property: "x" - from: 0 - target.width + from: (navbarId.currentIndex < navbarId.previousIndex ? 1 : -1) * - target.width to: 0 duration: 300 easing.type: Easing.OutCubic @@ -137,7 +138,7 @@ ColumnLayout { target: exitItem property: "x" from: 0 - to: target.width + to: (navbarId.currentIndex < navbarId.previousIndex ? 1 : -1) * target.width duration: 300 easing.type: Easing.OutCubic } diff --git a/pages/settings/Settings.qml b/pages/settings/Settings.qml index 703ea346..fdf03ce6 100644 --- a/pages/settings/Settings.qml +++ b/pages/settings/Settings.qml @@ -49,6 +49,7 @@ ColumnLayout { property alias settingsStateViewState: settingsStateView.state MoneroComponents.Navbar { + id: navbarId Layout.alignment: Qt.AlignHCenter Layout.topMargin: height Layout.bottomMargin: height @@ -145,7 +146,7 @@ ColumnLayout { PropertyAnimation { target: enterItem property: "x" - from: 0 - target.width + from: (navbarId.currentIndex < navbarId.previousIndex ? 1 : -1) * - target.width to: 0 duration: 300 easing.type: Easing.OutCubic @@ -154,7 +155,7 @@ ColumnLayout { target: exitItem property: "x" from: 0 - to: target.width + to: (navbarId.currentIndex < navbarId.previousIndex ? 1 : -1) * target.width duration: 300 easing.type: Easing.OutCubic }