[vlc-devel] KDE GUI platform

Alex Fiestas afiestas at kde.org
Mon Jan 31 22:46:10 CET 2011

On 01/30/2011 04:21 PM, Rémi Denis-Courmont wrote:
> 	Hello,
> For quite a while, the Qt4 open&  save file dialogs provided by the KDE GUI
> platform plugin have been causing a segmentation fault at exit:
> https://bugs.kde.org/show_bug.cgi?id=234484
> As of KDE 4.6, the same dialogs cause the VLC user interface to freeze for one
> minute. The root cause seems to be a longstanding bug in the QProcess class
> from Qt4 core. However, the faulty dialogs did not make use of QProcess until
> KDE version 4.6:
> https://bugs.kde.org/show_bug.cgi?id=260719
> There is a way to work around this bug in VLC: The SIGCHLD signal can be left
> unblocked in the VLC process. Unfortunately, this means that a number of
> system calls in the VLC process can be interrupted asynchronously. I tried to
> fix the most obvious cases of calling poll(). But this also affects some other
> system calls, and also code paths in underlying libraries. In a way, those are
> bugs in VLC and its libraries. And those bugs should be fixed so that LibVLC
> works fine (outside of VLC that is). However, from a pragmatic perspective, I
> cannot do it, and I strongly doubt anyone can.
Well the thing is that there is not an effective way to work around this 
so the only thing we can do is remove the QProcess code from 
KFIleDialog, and if I remember correctly somebody is already working on 
that or at least will work on it.

> In any case, this is yet another bug in the KDE plugins for Qt. From
> experience, the KDE project does not fix those bugs, as they only affect Qt
> but non-KDE applications.
We're willing to fix all bugs in our code, including those that only 
affect Qt applications. Could you please elaborate a list of this kind 
of bugs?

> In this case, it's quite clear that Qt refuses to
> implement the correct solution (see kde-core-devel).
What would be the correct solution? as far as I know there is none.

More information about the vlc-devel mailing list