import QtQuick 2.12 import Ikinuki.Client 1.0 Rectangle { property var providers default property int selectedElement: 2 property var max_elements: providers.length width: parent.width * 0.3 height: parent.height color: "#22282A" Column { anchors.fill: parent // header SidebarHeader {} Repeater { model: providers SidebarElement { name: modelData.Name selected: (index == selectedElement) ? true : false } } } function mod(n, m) { return ((n % m) + m) % m; } Keys.onPressed: (event)=> { 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); } console.log(selectedElement) event.accepted = true; } }