Accessing a C++ dataengine from a QML plasmoid

Guillaume DE BURE guillaume.debure at gmail.com
Mon Feb 4 21:42:09 UTC 2013


Le lundi 4 février 2013 21:58:31 vous avez écrit :
> Le lundi 4 février 2013 15:56:00 Michail Vourlakos a écrit :
> > Στις 30/01/2013 11:38 μμ, ο/η Guillaume DE BURE έγραψε:
> > > Le mercredi 30 janvier 2013 22:20:13 Marco Martin a Γ©crit :
> > >> On Wednesday 30 January 2013, Guillaume DE BURE wrote:
> > >>> However, I am not completely clear how to access it in QML. Userbase seems
> > >>> to say it should be possible:
> > >>> http://techbase.kde.org/Development/Tutorials/Plasma/QML/API#DataModel
> > >>>
> > >>> So I made an attempt that looks like this, but that does not work:
> > >>> https://projects.kde.org/projects/extragear/office/skrooge/repository/revis
> > >>> ions/plasma-dashboard/entry/plugins/applet/account-qml/contents/ui/main.qml
> > >>>
> > >>> Can anybody help me ? Thanks in advance :)
> > >> banksSource.data["Accounts"] is directly the data
> > >>
> > >> for the model:
> > >>
> > >> PlasmaCore.DataModel {
> > >>      dataSource: banksSource
> > >>      sourceFilter: "Accounts"
> > >> }
> > >>
> > >>
> > > Thanks Marco... However, not sure I fully understood you. Did you mean I should write it like this :
> > I think you should change it to:
> > 
> > Item {
> >      id: mainWidget
> > 
> >      // Connect to our dataengine
> >      PlasmaCore.DataSource {
> >          id: banksSource
> >          engine: "skgdataengine"
> >          interval: 0
> >          connectedSources: ["Accounts"]
> >      }
> > 
> >      // Use a modelProxy for easy filtering / sorting
> >      PlasmaCore.SortFilterModel {
> >          id: banksModel
> >          sourceModel: PlasmaCore.DataModel {
> >              dataSource: banksSource
> >              /// sourceFilter: "Accounts" // I think this is not needed because you use only one source
> >          }
> >      }
> > 
> >      // Put all accounts in a Column
> >      ListView {
> >          anchors.fill: parent
> >          model: banksModel
> > 
> >          delegate: Text {
> >              text: model["type"]
> >          }
> >      }
> > }
> 
> Thanks for the suggestion, Michail, but it doesn't change anything... I'm starting to think QML doesn't like me ;(
> 
> Or maybe the fact that all this is running contained in Skrooge breaks the whole dataengine / plasmoid magic in QML ?
> 
> 

Marco saved me on IRC, I was missing the keyRoleFilter: ".*" in the DataModel. I somehow assumed that leaving it empty was equivalent to this, but it was not the case.

Thanks :)

-- 
Skrooge, a free, Open Source, personal finances software for linux, Mac OS, Windows
http://skrooge.org


More information about the Plasma-devel mailing list