Forums

OverviewFelgo 2 Support (Qt 5) › Where is ListPage.modelChanged() documented and defined ?

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #16657

    Bruce

    Where is ListPage.modelChanged() documented and defined ?  I’m trying out the Felgo Master-Detail Application project template.  I have not modified the example yet.  The example runs fine in debug and release configs. In the MasterPage.qml file there are two calls to masterPage.modelChanged(), in the onClicked() handlers.  But I can not use the IDE tools to go to the definition of this function.  Nor does it show up in the Felgo or QML docs.  And in the debugger it has no source file to go to.  When I step into the call it changes debug context to ‘onModelChanged’, but I can’t find docs or defs on that either.  What gives ?

     

    #16660

    Günther
    Felgo Team

    Hi Bruce!

    ListPage contains a property called model, which defines the data that should be shown. Each property in QML (the programming language) supports reacting to changes of properties via signals.

    The corresponding signal for the model property would be onModelChanged, which is also available using autoCompletion. You can use it like this:

    ListPage {
    
      onModelChanged: {
         // do something when the model changes!
       }
    
    }

     

    The model is often described as an Array of objects. In contrast to simpler data types (like strings or integers), the modelChanged signal is not triggered automatically if some value within the array changes, as Qt does not detect all potentially little changes within a highly variable structure like an array:

    ListPage {
      id: page
    
      function changeModel() {
         // this will not trigger onModelChanged
         page.model[0] = { text: "New Entry" } 
    
         // but this will trigger onModelChanged
         page.model = []
       }
    }

     

    By manually calling modelChanged(), we can trigger the onModelChanged() signal whenever we change some value within the model. Thus all signal handlers run the appropriate code and also the ListPage will update its view to display the newest model version. Otherwise changes won’t be visible or propagated as the signal is not triggered automatically.

     

    So the reason why modelChanged is not in the API reference or auto-completion, is because it is not something added by Felgo, but just the way how Qt/QML allows to developers to manually trigger signals.

    Hope this helps!

    Cheers,
    Günther

     

Viewing 2 posts - 1 through 2 (of 2 total)

RSS feed for this thread

You must be logged in to reply to this topic.

Voted #1 for:

  • Easiest to learn
  • Most time saving
  • Best support

Develop Cross-Platform Apps and Games 50% Faster!

  • Voted the best supported, most time-saving and easiest to learn cross-platform development tool
  • Based on the Qt framework, with native performance and appearance on all platforms including iOS and Android
  • Offers a variety of plugins to monetize, analyze and engage users
FREE!
create apps
create games
cross platform
native performance
3rd party services
game network
multiplayer
level editor
easiest to learn
biggest time saving
best support