[Panel-devel] Design of Sensor and meters
Vinay Khaitan
vkhaitan at gmail.com
Tue Sep 13 06:42:51 CEST 2005
And I also think, we can ditch cpusensor and related sensor, in favour of
ProcessSensor. I think, with the format given by me, ProcessSensor can used
with same ease for cpusensor memsensor etc.
On 9/12/05, Vinay Khaitan <vkhaitan at gmail.com> wrote:
>
> Pedro has done some refactoring of superkaramba. He has encountered some
> design troubles. They are similiar to what I had earlier talked about i.e.
> meters dont know the format sensor's return value. And type of return value
> doesn't give any information about that.
> So I am proposing a solution to it. it is from combining old, new and mine
> ideas.
>
> class arbitSensor::public Sensor
> {
> /* all the sensors will have some user readable/writable attributes. They
> can be set from themefile in format sensor.updateInterval=1000 */
> Q_PROPERTY(int updateInterval READ updateInterval WRITE setUpdateInterval)
> /*We will use Q_PROPERTY macro. so that setProperty() work.*/
> /* All the Sensors return values about information contained into them.
> But how the meters would understand the format of return values(see my
> earlier example in a mail, of tasksensor)? Pedro was getting some trouble
> with it.
> I ask to dump the idea of single return value.
> I propose that there would be a "value" parameter in theme file which will
> have values with some %arguments.
> taking example of richtextlabel and bar connected to cpusensor,
> (I dont want to use cryptic %u etc., they would become difficult in long
> run)
> RICHTEXTLABEL value="cpu load of cpu0= %cpu0 user=%cpu0.user
> sytem=%cpu.system"
> BAR value=%cpu0.system , we will use the dotted form.
> Meters have setValue() slot. they would ask sensor for the value of
> %cpu0.system in QString and sensors would return value in QString.
> */
>
> QString returnValue(QString data) ; //data=cpu0.user, returns
> QString::null if data is not supported
>
> signals:
> void update(); //no parameter
> }
>
> class arbitMeter: public Meter
> {
> Q_PROPERTY(QString value READ value WRITE setValue); //all the meters have
> some attributes which can be set
>
> void setValue( QString);
> void attachToSensor(Sensor* sensor)
> {
> connect(sensor, SIGNAL(update()),this,SLOT(updateNow()));
> //other stuff
> }
>
> //I am forgetting some other necessary functions
>
> }
>
> The idea of multimeter appealed me.
> We can have things like this in theme file,
>
> MULTIMETER meter=bar number=2 orientation=horizontal, separationX=50
> separationY=50 value.1=cpu0.system bar.x=0 bar.y=etc value.2=cpu1.systemSENSOR=cpusensor
>
> The separation stuff would set the separation of multiple meters.
> orientation is separation orientation.
>
> So with this format, making of (non interactive )taskbar with the
> tasksensor I described in one mail is just one line,
> (x is for variable number)
> MULTIMETER meter=RICHTEXTLABEL number=x value.x=task.x separation=(50,50)
> orientation=horizontal mask=alpha, background=beta etc.
>
> I know, this idea would be modified, but IMHO, this works smoothly from
> the point of view of separation of meters and sensors, theme creation ease
> and superkarama coding.
>
> Comments?
>
> Vinay Khaitan
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/panel-devel/attachments/20050913/a9dff6ff/attachment.html
More information about the Panel-devel
mailing list