Hi Michal, Thanks for the report! Filed a bug and wrote an example [1] that has currentIndex set and appends model dynamically. Hope that it helps in your case.
[1] http://pastie.org/9813891 -Cheers, Raine ________________________________________ Lähettäjä: devel-boun...@lists.sailfishos.org [devel-boun...@lists.sailfishos.org] käyttäjän ok1...@centrum.cz [ok1...@centrum.cz] puolesta Lähetetty: 29. joulukuuta 2014 16:45 Vastaanottaja: devel@lists.sailfishos.org Kopio: Developer Care Aihe: [SailfishDevel] [bug] Silica ComboBox.qml - can't set currentIndex after initialization Hi, I've found a bug in ComboBox.qml used in Jolla phone. I wrote an application using pyotherside. During initialization, it populates combobox and sets the currentIndex to saved value. The problem is, that setting the currentIndex does nothing. ComboBox.qml uses weird timer to delay some tasks. When you change currentIndex before that timer is triggered, it ignores the change. Connections { target: comboBox.menu ? comboBox.menu._contentColumn : null onChildrenChanged: { // delay the reload in case there are more children changes to come if (!updateCurrentTimer.running) { _updating = true updateCurrentTimer.start() } } } VS. onCurrentIndexChanged: { _currentIndexSet = true if (_completed && !_updating) { _updating = true _updateCurrent(currentIndex, null) _updating = false } } My application does something like: function foo(result) { for(var i=0; i<result.length; ++i) combolistmodel.append({index:i, text:result[i]}); } foo(['abc','def','foo','bar','baz']); // comboid._updating = 0; // REQUIRED WORKAROUND comboid.currentIndex=3; Whey I force the _updating to 'false', it works. Also if I set the correntIndex in a timer some time later, it works. I've tested following workaround: onCurrentIndexChanged: { _currentIndexSet = true if (_completed) { if (updateCurrentTimer.running) { var save_currentIndex = currentIndex; updateCurrentTimer.stop() updateCurrentTimer.onTriggered() currentIndex = save_currentIndex; } if (!_updating) { _updating = true _updateCurrent(currentIndex, null) _updating = false } } } But it still seems odd to me to use a timer in in a combobox. Whole reproducer: http://fpaste.org/164044/59940141/ Code causing this problem: http://fpaste.org/163881/97171141/ Tested workaround: http://fpaste.org/164045/85997614/ Michal _______________________________________________ SailfishOS.org Devel mailing list To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org _______________________________________________ SailfishOS.org Devel mailing list To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org