← Back to team overview

ubuntu-phone team mailing list archive

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