[PATCH] Avoid double margins in KDialog
AurélienGâteau
aurelien.gateau at free.fr
Wed Dec 5 08:44:36 GMT 2007
Aaron J. Seigo <aseigo <at> kde.org> writes:
>
> On Tuesday 04 December 2007, Aurélien Gâteau wrote:
> > Attached patch implements this. Is it ok to commit (after tag freeze that
> > is)?
>
> yes, please! this is such a common error, catching it in KDialog makes all
the
> sense in the world. it also makes it easier to create reusable layouts (e.g.
> both in a dialog and in another layout) ..
Ok, will do. Unfortunately it won't fix all dialogs. I have been running with
the patch yesterday and noticed some dialogs still had double margins. Looking
a the code, I discover they create their dialog content this way:
Ui_Config ui;
ui.setupUi(dialog->mainWidget());
The trick here is that if there is no main widget set, mainWidget() will
create one and set it before returning. So mainWidget() calls setMainWidget(),
and at the time of the call, the newly created widget does not have any layout
yet.
I personnally find it strange to have an accessor creating a widget instead of
returning a null pointer, even if I can see how it can be convenient.
Unfortunately it's probably too late to fix this. Or is it not?
Anyway, I will probably start a crusade against double margins before 4.0 is
out. It's easy to join the crusade: just have a look at your prefered app
dialogs and add a few setMargin(0) where necessary.
Aurélien
More information about the kde-core-devel
mailing list