← Back to team overview

ubuntu-phone team mailing list archive

Re: Running QML functions in parallel thread

 

On Tuesday 16 April 2013 18:54:01 Michael Zanetti wrote:
> As a rule of thumb, you should be able to write more than 90% of your
> application without the need to the work "function" (game logic excluded). 

That should have been: ... without the need to use the word "function"...

Regards,
Michael

> > 
> > 2013/4/16 Rick Spencer <rick.spencer@xxxxxxxxxxxxx>
> > 
> > > 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
> > > 
> > > --
> > > 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