What to do about KShortcutsEditor and undo

Michael Jansen kde at michael-jansen.biz
Tue May 20 23:44:34 BST 2008


> > What is the correct behaviour for the dialog upon destruction when there
> > are unsaved changes? /me thinks undoing the changes. That's what i
> > implemented.
>
> Due to parents deleting childs, and in principle as well, it's a bad
> idea in library code to do anything nontrivial involving objects you
> don't own in the destructor.

Perhaps. But what is beeing done is the right thing. So the point to work on 
is "objects you don't own" if you ask me.

> See above, the code of the KWin effects module will crash if written
> the obvious way. This is really the killer argument, the others don't
> matter nearly as much. You would have to take special measures to
> avoid the crash and I really really don't want to force that upon API
> users. A forgotten undo() would have less dramatic consequences and
> its purpose would be very obvious, leading to code that is easier to
> understand. Understand as in "know what every single line is good for,
> without comments".

Yes. But with your change you would have to take extra steps to ensure correct 
behavior. I mean that calling undo before destruction.

> Caring about destruction order is not a productive way to spend time.

OK. My Solutions

1. Reparent the action collections to the kshortcutseditor in qt tradition. 
Change the doc to reflect that.
2. Use the QPointer class

I would go for 1.

Mike

-- 
Michael Jansen
Available for contract work ( Development / Configuration Management )
http://www.michael-jansen.biz




More information about the kde-core-devel mailing list