I'm using this workaround:
Component.onCompleted: {
listid = parseInt(DB.getTaskProperty(taskid, "ListID"))
DB.readLists()
listLocatedIn.currentIndex = listindex
listLocatedIn.currentItem = listLocatedIn.menu.children[listindex]
}
Am 05.01.2015 um 11:40 schrieb Andrey Kozhevnikov:
yeah, i'm using _updating = false in my application also. This is the
best workaround i found.
29.12.2014 19:45, ok1...@centrum.cz пишет:
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
_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org