ubuntu-phone team mailing list archive
-
ubuntu-phone team
-
Mailing list archive
-
Message #01709
Re: Running QML functions in parallel thread
I suppose you would use a loader for the Repeater. After you make your
repeater work for your first level, you can use QtCreator to wrap the
Repeater in a loader for you. Then I think for each level you would
destroy the whole Repeater and then use the loader to create a new one
with the new model for the next level.
At least that is the approach I would take starting out.
HTH
Cheers, Rick
On Tue, Apr 16, 2013 at 7:31 AM, Николай Шатохин <n.shatokhin@xxxxxxxxx> wrote:
> When I create button I assign destroy signal to each. So, when I start new
> game, I destroying buttons from old game and see old field in this moment -
> destroing slow too. Is quickly removing possible? Can I destroy repeater?
>
>
> 2013/4/16 Николай Шатохин <n.shatokhin@xxxxxxxxx>
>>
>> Oh, I didn't know that. I'll try.
>>
>>
>> 2013/4/16 Rick Spencer <rick.spencer@xxxxxxxxxxxxx>
>>>
>>> Hi.
>>>
>>> I'm not sure how your code flows overall, but if you are creating all the
>>> buttons at once, you might consider using a Repeater instead of doing it all
>>> in javascript.
>>>
>>> It looks like you might have some kind of list that fires a createButton
>>> signal. You could potentially use that list as a model for a Repeater and
>>> build your buttons in the delegate of the Repeater.
>>>
>>> Cheers, Rick
>>>
>>>
>>>
>>> On Tue, Apr 16, 2013 at 5:11 AM, Николай Шатохин <n.shatokhin@xxxxxxxxx>
>>> wrote:
>>>>
>>>> This is my code that creates buttons field:
>>>>
>>>>
>>>> onCreateField:
>>>> {
>>>> for(var i=0;i<fieldWidth;i++)
>>>> {
>>>> for(var j=0;j<fieldHeight;j++)
>>>> {
>>>> createButton(i, j);
>>>> }
>>>> }
>>>> }
>>>>
>>>> function createButton(x, y)
>>>> {
>>>> __buttonX = x;
>>>> __buttonY = y;
>>>>
>>>> __component = Qt.createComponent("GameButton.qml");
>>>>
>>>> if(__component != null)
>>>> continueButtonCreation();
>>>> else
>>>> __component.ready.connect(continueButtonCreation);
>>>> }
>>>>
>>>> function continueButtonCreation()
>>>> {
>>>> var button = __component.createObject(field, {"row": __buttonY,
>>>> "column": __buttonX});
>>>>
>>>> if (button == null) {
>>>> // Error Handling
>>>> console.log("Error creating object");
>>>>
>>>> return;
>>>> }
>>>>
>>>> updateValveState.connect(button.stateUpdated);
>>>> button.buttonClicked.connect(buttonClicked);
>>>>
>>>> field.clearField.connect(button.release);
>>>> }
>>>>
>>>>
>>>> fieldWidth = fieldHeight = 16;
>>>>
>>>>
>>>> 2013/4/16 Alex Tyler <alex.tyler@xxxxxxxxxx>
>>>>>
>>>>> Can we see some code? The only time Images hang for me in QML is when
>>>>> it's trying to load them synchronously. Try setting asynchronous to true.
>>>>>
>>>>> Cheers,
>>>>> Alex
>>>>>
>>>>> On Tue, Apr 16, 2013 at 10:20 AM, <mrqtros@xxxxxxxxx> wrote:
>>>>>>
>>>>>> I thought Nick creates 1024 (16x16) buttons, lol =) And even did not
>>>>>> thought - for what :D
>>>>>>
>>>>>> Of course code is extremely bad, if buttons with size 16x16 pixels
>>>>>> creating slowly.
>>>>>>
>>>>>>
>>>>>> 16.04.13 12:09 Michael Zanetti написал(а):
>>>>>>
>>>>>> On Tuesday 16 April 2013 01:01:28 Николай Шатохин wrote:
>>>>>> > Hello.
>>>>>> >
>>>>>> > In my code I'm creating 16x16 buttons in cycle and this take few
>>>>>> > seconds.
>>>>>> > While function that creating buttons runs, app freezes. I want to
>>>>>> > show
>>>>>> > loading animation while this function runs. So, how to run this
>>>>>> > function in
>>>>>> > parallel thread to avoid freezing?
>>>>>> >
>>>>>> > Best regards,
>>>>>> > Nick
>>>>>>
>>>>>> Creating 16x16 buttons shouldn take a few seconds. Can you paste the
>>>>>> code
>>>>>> (also the button itself). To me it seems the issue is somewhere else,
>>>>>> e.g. in
>>>>>> the way you create the buttons or the buttens themselves are very
>>>>>> slow.
>>>>>>
>>>>>> Br,
>>>>>> Michael
>>>>>>
>>>>>> --
>>>>>> Mailing list: https://launchpad.net/~ubuntu-phone
>>>>>> Post to : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
>>>>>> Unsubscribe : https://launchpad.net/~ubuntu-phone
>>>>>> More help : https://launchpad.net/~ubuntu-phone
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mailing list: https://launchpad.net/~ubuntu-phone
>>>>>> Post to : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
>>>>>> Unsubscribe : https://launchpad.net/~ubuntu-phone
>>>>>> More help : https://help.launchpad.net/ListHelp
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Mailing list: https://launchpad.net/~ubuntu-phone
>>>> Post to : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~ubuntu-phone
>>>> More help : https://help.launchpad.net/ListHelp
>>>>
>>>
>>>
>>> --
>>> Mailing list: https://launchpad.net/~ubuntu-phone
>>> Post to : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~ubuntu-phone
>>> More help : https://help.launchpad.net/ListHelp
>>>
>>
>
Follow ups
References