Change in KActionCollection::setComponentData

Dan Meltzer parallelgrapefruit at
Wed Mar 26 21:46:18 GMT 2008

On 3/26/08, Michael Jansen <kde at> wrote:
> Hi
>  I just commited a rather invasive change for this method. The method will fail
>  if you try to set the Component for a action collection that contains actions.
>  The change was discussed on irc is needed because all triggers having to
>  register the shortcut somewhere need a unique id. That's currently "component
>  name + action id".
>  That change immediately broke kate and konqueror and i guess it will break
>  many kpart applications. It manifests in
>  ASSERT: \"count()==0\" in file /home/kde-
>  devel/src/KDE/kdelibs/kdeui/actions/kactioncollection.cpp, line 162


This is going to cause bad breakage.  It basically disallows anyone
from running kde4.0 apps against 4.1 libraries, a form of binary, or
perhaps behavioral, compatibility.  This is not a good thing(tm).

>  and the solution is to first set the component data and then fill the action
>  collection. Thats means for KPart::MainWindows calling setComponentData as
>  soon as possible. Konqueror didn't do that and i fixed it. Please double check
>  for side effects 790494 .
>  Kate is next. My guess is that most/all kpart based application break.
>  Please don't shoot the messenger. I'm just trying to enforce all assumptions
>  made by the global shortcuts code to see what breaks. I think a loud bang is
>  better than many small problems.
>  Mike
>  --
>  Michael Jansen
>  Available for contract work ( Development / Configuration Management )

More information about the kde-core-devel mailing list