KProcess overhaul [PATCH]

Ralf Habacker ralf.habacker at freenet.de
Wed Apr 19 10:09:57 BST 2006


Thiago Macieira schrieb:
> Ralf Habacker wrote:
>   
>> 1. As Oswald initial stated rename KProcess KProcIO and
>> KProcessController to relating K3... and move to kde3support and
>> introduce new implementation as KProcess. This requires to port all
>> KProcess references in kdecore to the new style (much work) or to make
>> kde3support a dependency of kdecore (seems not be much work) and rename
>> all references into other packages to K3Process (seems solvable).
>>     
>
> kdecore cannot depend on kde3support. The K3Process class, if we make one, 
> has to be in kde3support.
>
> So your option here is: port every use of KProcess in kdecore, kdeui and 
> kio to the new class.
>
>   
Below there all required changes listed.

kdecore/ktimezones.cpp - unix only - default blocking call without any 
redirection, easy to fix    [1]
kdecore/kpty.cpp - unix only - redirects fd's, does QProcess support all 
required needs ? [3]
kdecore/kconfigbackend.cpp - all platforms - default blocking call 
without any redirection, easy to fix [1]

kdeui/kbugreport.cpp - all platforms - starts non blocking call and 
perform action on process finished  [1]
kdeui/kedittoolbar.cpp - all platforms  - starts non blocking call and 
perform action on process finished  depending on exit state [2]
kdeui/kspell.cpp - all platforms  - starts non blocking call and perform 
action on process finished [1]

kio/kfile/kdiskfreesp.cpp - all platforms - starts non blocking call, 
catch stderr and perform action on process finished [2]
kio/kfile/kfilesharedlg.cpp - unix only - starts non blocking call and 
perform action on process finished [2]
kio/kfile/kpropertiesdialog.cpp - all platforms - needs cleanup (old 
KProcess method  is used in KRun context) [4]
kio/kio/defaultprogress.cpp - all platforms - start non blocking call [1]
kio/kio/kfileshare.cpp - unix only - starts non blocking call, catch 
stdout and perform action on process finished [2]
kio/kio/kmimetype.cpp - all platforms - start non blocking call [1]
kio/kio/kmimetypechooser.cpp - all platforms - needs cleanup (old 
KProcess function is used in KRun context) [4]
kio/kio/krun.cpp - all platforms - starts non blocking call and perform 
action on process finished  depending on exit state [2]
kio/kio/slave.cpp - all platforms - start non blocking call [1]
kio/kioexec/main.cpp - all platforms - start blocking call [1]
kio/misc/kpac/discovery.cpp - unix only - starts non blocking call, 
catch stdout and perform action on process finished [2]
kio/tests/kdcopcheck.cpp - all platforms - starts non blocking call, 
catch stdout and perform action on process finished [2]

Inidicators:
[1] easy to fix
[2] more work to fix
[3] needs unix developer
[4] need design change

>> 2. introduce new KProcess as K4Process and give people time to port
>> KProcess references to K4Process. If this is stabilized move recent
>> KProcess to kde3support and rename K4Process to KProcess. Still not
>> ported old KProcess references must be renamed to K3Process.
>>     
>
> Renaming is not an option.
>
>   
>> 3. Do nothing until Qt 4.2 is released because QProcess may change (This
>> adds unwanted delay in the windows port)
>>     
>
> Not released, but at least until the snapshots of 4.2 start appearing and 
> qt-copy switches to it.
>
>   
>> 4. Ask tt again about their qt4.2 QProcess api changes, consider the
>> changes in the new implementation and go on with 1. or 2.
>>     
>
> This is the same as above.
>
> I'll see what TT can do and, given the possibility, push the patch into 
> qt-copy, as has been done with other Qt 4.2 features required by kdelibs.
>
>   
Thanks

Ralf





More information about the kde-core-devel mailing list