[Bug 60500] Crash in EditorProxy::installPopup while single stepping

Jens Dagerbo jens.dagerbo at swipnet.se
Mon Nov 3 15:30:08 UTC 2003


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
     
http://bugs.kde.org/show_bug.cgi?id=60500     
jens.dagerbo at swipnet.se changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From jens.dagerbo at swipnet.se  2003-11-03 14:11 -------
Fixed in CVS by Sascha Cunz. Thanks! :)

His explanation:
[snip]
In fact, it was a problem with the context menu of the editor part.

PartController creates a KPopupMenu from the XML-GUI. This one was staticly stored in PartController::contextPopupMenu(). This KPopupMenu seems to be owned by the XML-GUI.

This menu gets propagated into each editor on opening. At this point, 
EditorProxy connects to the menu's aboutToShow.

When the Popup is now about to show, EditorProxy cleans it completely. Then it asks all around KDevelop to fill the menu. ( There was  a bug in this 
cleaning, i fixed it: now the menuitems contained in kdevelopui.rc at 
"rb_popup" are also shown in the editor's context menu )

After a manual change of the XML-GUI via KEditToolBar-Dialog, the KPopupMenu stored in the editors is invalid. So opening the next file causes a try to connect a slot to a deleted object.

I changed PartController::contextPopupMenu, so that it does not cache the pointer from XML-GUI anymore. This makes opening new files work again.

Now another bug came into front: If one chages a toolbar, the KPopupMenus "installed" into existing editor parts get invalid. I added code to reinstall them after the toolbar has been changed.
[snip]




More information about the KDevelop-devel mailing list