Re: Accessing dataengine from different plasmoid

2012-02-22 Thread Weng Xuetian
在 2012年2月22日 星期三 10:45:13,Simone Gaiarin 写道:
 Thank you. The problem was that I didn't run the plasmoid on the same
 process.

 What can be the best way to store a KProcess to the dataengine?
 Idea 1:
 Subclass the DataContainer class and store the KProcess in that class,
 like the Executable dataEngine does. When the source is requested i
 use addSource().
 Idea 2:
 Store the Kprocess as a private member of the dataengine.

  When I ask for the Service, which is the best way to act on the KProcess?
 Can I create a method to get the KProcess from the datacontainer? Or
 this will break the semantic of the datacontainer, that is supposed to
 just listen to signal updateRequested().

 Example:

 serviceForSource(const QString source)
 {
 container = query(source);
 pointerToProcess = container.getPointerToProcess();
 return new MyService(pointerToProcess,source);
 }

 The service will implement the operation start and stop that let
 to pause and resume the process.

I think you can put KProcess in the dataengine as private member, and operate
it only with dataengine service, not to direct get the pointer.

What's your requirement by the way? I think there might be better solution for
your idea.

signature.asc
Description: This is a digitally signed message part.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Accessing dataengine from different plasmoid

2012-02-22 Thread Simone Gaiarin
I'm writing a plasmoid to control redshift.
Redshift is a program that change the colour temperature of the monitor.

Here you can find the current plasmoid I wrote:
http://kde-apps.org/content/show.php/Redshift+plasmoid?content=148737

The current plasmoid span a redshift process from inside of it, so if
I create two plasmoids they span two different process that create
problems each other.

What I want is create a plasmoid that can control this process through
a dataengine, in such a way there is only one process running,
controlled by multiple plasmoids.

When the user click on the plasmoid it should be able to start and
pause the process. So I need to create a service that perform the
start/stop operations on the process.

If the configuration is changed the process needs to be restarted.
So I have to think about the correct way to connect the config changed
event to the restart operation.

I hope I've been clear enough.

2012/2/22 Weng Xuetian wen...@gmail.com:
 在 2012年2月22日 星期三 10:45:13,Simone Gaiarin 写道:
 Thank you. The problem was that I didn't run the plasmoid on the same
 process.

 What can be the best way to store a KProcess to the dataengine?
 Idea 1:
 Subclass the DataContainer class and store the KProcess in that class,
 like the Executable dataEngine does. When the source is requested i
 use addSource().
 Idea 2:
 Store the Kprocess as a private member of the dataengine.

  When I ask for the Service, which is the best way to act on the KProcess?
 Can I create a method to get the KProcess from the datacontainer? Or
 this will break the semantic of the datacontainer, that is supposed to
 just listen to signal updateRequested().

 Example:

 serviceForSource(const QString source)
 {
 container = query(source);
 pointerToProcess = container.getPointerToProcess();
 return new MyService(pointerToProcess,source);
 }

 The service will implement the operation start and stop that let
 to pause and resume the process.

 I think you can put KProcess in the dataengine as private member, and operate
 it only with dataengine service, not to direct get the pointer.

 What's your requirement by the way? I think there might be better solution for
 your idea.
 ___
 Plasma-devel mailing list
 Plasma-devel@kde.org
 https://mail.kde.org/mailman/listinfo/plasma-devel

___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel