Accessing dataengine from different plasmoid

Simone Gaiarin simgunz at gmail.com
Wed Feb 22 11:59:58 UTC 2012


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 <wengxt at 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 at kde.org
> https://mail.kde.org/mailman/listinfo/plasma-devel
>


More information about the Plasma-devel mailing list