[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [Bug 59774] crash when cutting last diagram left
From: Jean-Louis Houberdon <jl.houberdon () laposte ! net>
Date: 2003-08-31 22:54:06
[Download RAW message or body]
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
http://bugs.kde.org/show_bug.cgi?id=59774
------- Additional Comments From jl.houberdon@laposte.net 2003-09-01 00:54 -------
This patch should solve the second bug (deleting a diagram with associations in it \
and which has been saved/loaded) :
--- umlview.cpp 2003-08-31 22:46:15.000000000 +0200
+++ umlview.new.cpp 2003-08-31 22:47:27.000000000 +0200
@@ -2197,16 +2197,31 @@
void UMLView::removeAllWidgets() {
- //FIXME bug 59774
- //this queryList returns a too high count and list items which cause the \
program to crash
- //when you touch them on diagrams that contain associations /and/ have been \
saved and loaded
- QObjectList * l = queryList( "UMLWidget");
- QObjectListIt it( *l );
+ QObjectList * l = queryList("UMLWidget");
+ QObjectListIt it(*l);
UMLWidget * temp = 0;
- while ( (temp=(UMLWidget*)it.current()) != 0 ) {
+ while ((temp=(UMLWidget*)it.current()) != 0) {
++it;
- if( !( temp -> getBaseType() == wt_Text && ((FloatingText *)temp)-> \
getRole() != tr_Floating ) ) {
- removeWidget( temp );
+ if( !(temp->getBaseType() == wt_Text && ((FloatingText \
*)temp)->getRole() != tr_Floating) ) { + removeWidget(temp);
+
+ /* Update list; removing a widget will also delete the \
associations + * connected to it; so we have to update the \
list, because other + * widgets might be already deleted
+ */
+ */
+ QObjectList * currentList = queryList("UMLWidget");
+ QObjectListIt OldListIt(*l);
+
+ while ((temp = (UMLWidget*)OldListIt.current()) != 0)
+ {
+ ++OldListIt;
+ if (!currentList->contains(temp))
+ {
+ l->remove(temp);
+ }
+ }
+ it.toFirst();
+ delete currentList;
}
}
delete l;
In fact, it is the same problem as in the [63248] bug (crash when cutting a class).
The fact that it must be saved/loaded to crash (before applying this patch :)) is not \
really true. If you make a diagram with an association and you rename it (creating \
the widgets which make finally crash), when you delete the diagram it crashes.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic