import QtQuick 2.12 import Ikinuki.Client 1.0 Rectangle { id: rect property var providers property int selectedElement: 0 property var max_elements: providers.length width: parent.width * 0.2 height: parent.height color: "#22282A" //color: "#0a3d4a" Column { anchors.fill: parent SidebarHeader {} Repeater { id: sidebarElements model: providers SidebarElement { provider: modelData selected: (index == selectedElement) ? true : false } } } function mod(n, m) { return ((n % m) + m) % m; } Keys.onPressed: (event)=> { // Handle scrolling if (event.key == Qt.Key_Down) { selectedElement = mod(selectedElement + 1, max_elements); } else if (event.key == Qt.Key_Up) { selectedElement = mod(selectedElement - 1, max_elements); } event.accepted = true; } }