[PATCH] Re: KDE/kdelibs/kdeui/xmlgui

Michael Jansen kde at michael-jansen.biz
Fri Jan 2 23:10:03 GMT 2009


> Please try the attached patch.
> It tries to solve the problem by just passing 0 as parent to
> KStandardAction::create(). As with all action classes which are created by
> KStandardAction::create() the parent seems just to be used only for Qt's
> garbage control. So this should be theoretically no problem. With 0 as
> parent KStandardAction::create() now does not add the new action to the
> collection itself. And practically I found no problem, too, e.g. with
> Okular, Konqueror and Konsole. And Okteta :P
>
> So if this patch works for you all, it should be committed and your
> ui_standards.rc commit, Urs, can be reverted :)

I have no objections to the patch if it solves the problem. My problem is WHY 
does it solve the problem?

if you look at kactioncollection.cpp:264/287/283 you will find code trying to 
prevent the problem you described. In this case line 283 is relevant.

    // Check if we have this action under a different name.
    // Not using takeAction because we don't want to remove it from 
categories,
    // and because it has the new name already.
    const int oldIndex = d->actions.indexOf(action);
    if (oldIndex != -1) {
        d->actionByName.remove(objectName);
        d->actions.removeAt(oldIndex);
    }

So the problem you guys seem to have with having the SAME action with two 
names in the action collection should not happen. Are you guys sure it's the 
SAME action?

Mike


>
> Cheers
> Friedrich


-- 
Michael Jansen

http://www.michael-jansen.biz




More information about the kde-core-devel mailing list