[PATCH] Take care also of the KJob::finished signal in KPart - it also fixes Ark's BUG 187538

Kevin Ottens ervin at kde.org
Mon Apr 6 20:42:51 BST 2009


On Monday 6 April 2009 19:27:08 Alessandro Diaferia wrote:
> For me the default behavior should be KJob::EmitResult and not
> KJob::Quietly.. but those are just my 2 cents :)

That's your opinion now because you're looking at this particular problem. The 
thing to keep in mind is that most of the time kill() is called because of 
user cancellation, and most of the code out there just doesn't treat this 
special case of "error" (wouldn't make sense to duplicate the same if again 
and again right?). So what would happen if we made EmitResult by default is 
that in most cases of user cancellation, the user would then get a dialog 
claiming that the job failed... which isn't true, and isn't desirable to put 
into the face of the user (he knows he killed the task, he clicked on the 
button).

That's why EmitResult is a possibility but not the default, and shall not be 
the default. Now the apidox of the signals should be more explicit about that, 
and refer to kill(). It should also perhaps be made more explicit that 
finished() is not meant to be used outside of job trackers (although right now 
it's not gonna bite your head off if you do it).

And again, looking at the patch it seems that the problem is simply resetting 
the m_job pointer to 0 when the job deletes itself. There's a proper tool for 
that and it is called QPointer. So why not simply using that?

Regards.
-- 
Kévin 'ervin' Ottens, http://ervin.ipsquad.net
"Ni le maître sans disciple, Ni le disciple sans maître,
Ne font reculer l'ignorance."

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20090406/3c3e4fb7/attachment.sig>


More information about the kde-core-devel mailing list