Version: (using KDE Devel) Installed from: Compiled sources Compiler: gcc 3.3.4 OS: Linux Using current CVS, KDE 3.3 branch. Qt 3.3.3. When I try to move items in the list view via drag and drop, this often freezes umbrello. This happens when I move classes over other classes or when I want to move classes to a package. A scenario reproducible here: - Open umbrello and create a new file - add two new classes to the class diagram - select one of the classes in the list view and drag it over the other class - drag it around (over the second class), drop it, drag it again... - sooner or later (mostly sooner), umbrello freezes completely.
Confirmed. (Thanks for a well written beastie report.)
Try as I might, I cannot confirm this at all using current cvs head.
I can confirm it with current CVS head. -Create a class on the canvas new_class -Create a second class on the canvas new_class_1 -In the list view drag the first class over the second -Freeze
I found out that dropping a parent onto it's own child causes a freeze. I think that this case is not handled by the drag-and-drop code. You should check whether the dragged object is an "ancestor" of the new parent.
Jonathan Riddell wrote: > -Create a class on the canvas new_class > -Create a second class on the canvas new_class_1 > -In the list view drag the first class over the second > -Freeze This particular bug was fixed on Oct 13, see e.g. umllistview.cpp:1.119 Do you mean to say it is still happening?
> Do you mean to say it is still happening? Yes, although it doesn't happen every time. if it doesn't happen one time drag the inside class back onto the folder then drag it onto the other class again. It will happen. Maddening.
It doesn't freeze anymore here just by dragging (without dropping the item). Obviously there are fewer freezes now, but they are not completely gone. What still freezes umbrello every time here is: - create class_1 and class_2 - move class_1 into class_2 (class_1 is child of class_2 now) - try to move class_2 into class_1 - freeze when dropping class_2 As mentioned above, it seems that the drag drop code doesn't handle this case (moving parent into own subtree) properly: moving the corresponding nodes in the data model causes an infinite loop (you got a cycle in the tree then I guess). So dnd code in UMLListView should prevent this.
This was fixed sometime before 1.5.0