On lundi 14 novembre 2016 15:23:01 CET A. Bikadorov wrote: > 1. Creating and immediately suspending a job does not work as expected. E.g. > after > > KIO::Job job = KIO::copy(urls, dest, flags); > > bool result = job->suspend(); // returns true > > bool result2 = job->isSuspended(); // returns true > > the file copy operation is still starting. All progress signals > (description(), percent(), ...), are omitted until result() and finished() > are emitted. I'm sure this is a bug and can report it but would also like > to know a workaround to continue implementing a "job queue" (i.e. the user > decides when a job is started).
Indeed suspend() before starting wasn't implemented. It was only used internally for the bitburger protocol in CopyJob. I have now at least implemented suspend()-before-start() in SimpleJob and FileCopyJob, in https://commits.kde.org/kio/91fd82cc595a07549ef9da85079415497a7780ae (this won't be in KF 5.29, it's for 5.30) So the above would work with KIO::file_copy, at least. KIO::copy is a different story, a CopyJob has no kioslave on its own, but basically manages a state machine, so suspending anywhere in there and resuming where we left off seems a bit tricky. The special case of suspending before starting is easy to implement though... done: https://commits.kde.org/kio/84d5c6c71d2f0e37ef4cc9c4349531ba088e2ae6 I'm afraid I can't provide you with any workarounds, other than not creating the job until it should run. > 2. Similar to (1) DropJobs are never emitting any signals until finished(). > It must be possible somehow to monitor the progress of copy or move > operations because the notification widget does this. But I could not > figure out how plasma-workspace/kuiserver does this. I suppose kuiserver gets the signals from the subjob, while you're listening to the DropJob itself. It should be easy to forward the signals in DropJobPrivate::doCopyToDirectory(). Feel free to make a patch (or report a bug, but a patch is preferred ;) ). -- David Faure, fa...@kde.org, http://www.davidfaure.fr Working on KDE Frameworks 5