- timestamp sources on update so we don't over update them due to multiple visualizations hammering on it. improves our tick situation even more.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=712188
this is needed by clocks, as the obvious example, since "once a minute" isn't enough: it needs to be once a minute *on* the minute
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=711737
i'm sure there are several bugs at this point (so don't try and use it quite yet ;) but most importantly:
- all methods are implemented
- it compiles ;)
- it does not have any negative impact on existing engines and applets as they currently are written
next will be to put it all through its paces, starting with the time engine and analog clock applet. i may not get to that until tomorrow, hoever.
this commit also fixed a number of buglettes along the way that had creeped in, e.g. not properly connecting all signals in connectAllSources (moved that ccode to the Private class to avoid code dupe and similar bugs in the future)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=710849
* add DataContainer* containerForSource() for script engine authors to use
CCMAIL:rich@kde.org
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=705981
* Copyright (C) -> Copyright
* add "or later" clause to files that i have the sole copyright on
* add current year (2007) to my copyrights where it was missing
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696946
DataEngine::connectSource / DataEngine::connectAllSources
also: If a DataEngine fails to create the source in
sourceRequested(source), an empty source is created in d->source(source)
and then used during QMetaObject::invokeMethod, which calls updated for
the applet.
Better: don't create the source. This forces DataEngines to create the
source.
Patch by Michael Olbrich <michael-olbrich@web.de>
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=695097
* passing a null or invalid QVariant to DataSource::setData now results in the removal of the entry if it exists
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=676783
* data sources now signal when the are unused
* listen to the unused signal for sources created on demand via dataSourceRequested
svn path=/trunk/KDE/kdebase/workspace/lib/plasma/; revision=673389
* return an instance of the NullEngine on engine loading failure; this way applets don't have to test for engine existence and can just assume something gets returned
* DataEngine::isValid() in case someone really cares to know whether they have a non-functional engine (e.g. the NullEngine)
svn path=/trunk/KDE/kdebase/workspace/lib/plasma/; revision=670900
* add the ability to limit the number of data sources in an engine; least used items drop off. the algorithm for this is pretty simplistic and not overly scalable, but that's something that can be fixed when we run into problems (e.g. setLimit(1000) or something silly =)
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=668927
* void addSource(DataSource* source): allows adding of DataSources directly; useful for more complex engines where setData would be inneficient and clumsy or just not powerful enough
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667584
* make DataEngine take a QObject in the connect, making DataVisualization somewhere superfluous. unless it ends up doing something useful soon, DataVisualization as a class will be going away.
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667167
* move DataSource::Data to DataEngine::Data; this means consumers of DataEngine have no need to know about DataSource as a class
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=666756
* queue updates so that multiple calls to setData don't result in a storm of updated signals
* some API cleanups, e.g. connect -> connectSource
* provide and install a ServiceType .desktop; this adds the X-EngineName QString symbol. maybe that's too generic.
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=666241