QML DataSource

Saurabh Sood saurabhsood91 at gmail.com
Thu Oct 6 15:16:14 UTC 2011


Aaron,
I was facing the same problem some time back. i used
onSourceAdded:connectSource(source) and got it working. I did not
quite get the point, where you said that when a source appears, it may
not have all data in place.

Regards,.
Saurabh

On 10/6/11, Aaron J. Seigo <aseigo at kde.org> wrote:
> On Thursday, October 6, 2011 10:05:47 Marco Martin wrote:
>> On Thursday 06 October 2011, Viranch Mehta wrote:
>> > Hi all,
>> >
>> > I am facing a very annoying problem in QML plasmoids with the
>> > dataengines.
>> > The following does not seem to work ever for almost all dataengines:
>> >
>> > PlasmaCore.DataSource {
>> >
>> >     id: dataSource
>> >     engine: "someEngine"
>> >     onSourceAdded: print (data[source]["some_valid_key"];
>> >
>> > }
>> >
>> > The print statement always throws data[source] is [undefined]. This
>> > happens
>> > with
>> > most engines, esp with those engines where sources are added/removed
>> > dynamically
>> > by the engine. This has been very annoying, any help will be awesome!
>>
>> uhm, i could think about a structural problem there (iirci faced this
>> problem) basically onSourceAdded data[source] is not ready yet, will be in
>> the nexo loop
>> so you should do onSourceAdded: connectSource(source) then iirc could
>> still
>
> well, yes.. this is exactly the problem: this is not how you use a
> DataEngine
> :)
>
> a source appears. you connect to it.
>
> when data is changed, it tells you.
>
> there is no guarantee, nor can there be, that when a source appears that it
> has all its data in place. that's the definition of "asynchronous" and why
> dataUpdated (or in QML: onDataChanged and onNewData) exist.
>
> no need for timers either btw :)
>
> --
> Aaron J. Seigo
> humru othro a kohnu se
> GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43
>
> KDE core developer sponsored by Qt Development Frameworks
>


More information about the Plasma-devel mailing list