This is a discussion on Re: GUI unresponsiveness - KDE ; I feared that would be the solution, but it is just so damn handy to do some IO operation in the middle of a function. Doing it asynchronous makes it more complex. Joris, On 2/5/06, David Faure wrote: > On ...
I feared that would be the solution, but it is just so damn handy to
do some IO operation in the middle of a function. Doing it
asynchronous makes it more complex.
On 2/5/06, David Faure
> On Sunday 05 February 2006 07:57, Mantia Andras wrote:
> > On Saturday 04 February 2006 21:38, Joris Guisson wrote:
> > > These function calls are wrappers around KIO::NetAccess calls :
> > > bt:elete(dest,true);
> > > bt::CopyFile(target,dest,true);
> > >
> > > I have seen this before and this only happens when KIO::NetAccess is
> > > involved. I think nested KIO::NetAccess calls are the problem, and
> > > that GUI events get delivered to the wrong event loop (that is
> > > assuming that the KIO::NetAccess call starts it own event loop, which
> > > seems to me is the way to make asynchronous KIO::Job's synchronous,
> > > correct me if I'm wrong here)
> > Yes, nested NetAccess calls or calling processEvents() when using
> > NetAccess is just asking for trouble. If you are sure you don't need
> > remote functionality, don't use NetAccess, or if you need in such
> > nested cases use the asynchronous KIO jobs.
> > BTW, this is very a unfortunate situation as NetAccess is very
> > convenient and enough in many cases. I hope that with Qt4 this problem
> > will disappear as I read we don't need the ugly enter_loop/exit_loop
> > hack anymore.
> With Qt4 the solution is a bit cleaner but still: handling user event while being
> in the NetAccess call is a no-no. Too dangerous. The user could close the window
> where this code is running, etc.
> Think of NetAccess as a modal dialog. It blocks the control flow in your program,
> doesn't prevent repainting, but it DOES prevent clicking on other parts of the
> application, and that's on purpose.
> So if you do want your application to be useable while a KIO transfer happens,
> use the KIO jobs, they were made async for this reason in the first place.
> David Faure, email@example.com, sponsored by Trolltech to work on KDE,
> Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
> >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<