@@ -96,31 +96,57 @@ Item {
9696 row.currentIndex = -1;
9797 }
9898
99+ function selectPreviousItem() {
100+ var indexToSelect = currentItemIndex - 1;
101+ while (indexToSelect >= 0) {
102+ if (setCurrentItemIndex(indexToSelect))
103+ return;
104+ indexToSelect = indexToSelect - 1;
105+ }
106+ }
107+
108+ function selectNextItem() {
109+ var indexToSelect = currentItemIndex + 1;
110+ while (indexToSelect < row.contentItem.children.length) {
111+ if (setCurrentItemIndex(indexToSelect))
112+ return;
113+ indexToSelect = indexToSelect + 1;
114+ }
115+ }
116+
99117 function setCurrentItemIndex(index) {
100118 for (var i = 0; i < row.contentItem.children.length; i++) {
101119 var item = row.contentItem.children[i];
102− if (item.hasOwnProperty("ownIndex") && item.ownIndex === index) {
103− if (currentItem !== item) row.currentIndex = index;
104− break;
120+ if (item.hasOwnProperty("ownIndex") && item.ownIndex === index && item.enabled) {
121+ if (currentItem !== item) {
122+ row.currentIndex = index;
123+ }
124+ return true;
105125 }
106126 }
127+ return false;
107128 }
108129
109130 function selectItemAt(lateralPosition) {
110131 var item = indicatorAt(lateralPosition, 0);
111− if (item && item.opacity > 0) {
132+ if (item && item.opacity > 0 && item.enabled) {
112133 row.currentIndex = item.ownIndex;
113134 } else {
114135 // Select default item.
115136 var searchIndex = lateralPosition >= width ? row.count - 1 : 0;
116137
117138 for (var i = 0; i < row.contentItem.children.length; i++) {
118− if (row.contentItem.children[i].hasOwnProperty("ownIndex") && row.contentItem.children[i].ownIndex === searchIndex) {
139+ if (row.contentItem.children[i].hasOwnProperty("ownIndex") &&
140+ row.contentItem.children[i].ownIndex === searchIndex &&
141+ row.contentItem.children[i].enabled)
142+ {
119143 item = row.contentItem.children[i];
120144 break;
121145 }
122146 }
123− if (currentItem !== item) row.currentIndex = item ? item.ownIndex : -1;
147+ if (item && currentItem !== item) {
148+ row.currentIndex = item.ownIndex;
149+ }
124150 }
125151 }
126152