Version: 1.3.0 (using KDE 3.2.1, SuSE) Compiler: gcc version 3.3.3 (SuSE Linux) OS: Linux (i686) release 2.6.7-ck1 The bug is related to a specific document, I open this .xmi document (I can provide it), then I select a state press Ctrl-C, then Ctrl-V and all the states are moved in the top part of the design. On the log I get the following message: umbrello: updateAssociations: error from findInterceptOnEdge for assocType=514 ownWidget=RICHIESTA EAN/ART. otherWidget=ART. NON TROVATO umbrello: updateAssociations: error from findInterceptOnEdge for assocType=514 ownWidget=RICHIESTA EAN/ART. otherWidget=AGGIUNTA ARTICOLO
Created attachment 7524 [details] document causing the bug
umbrello version 1.3.0, compiled with gcc-3.3.4 under SuSE 9.1 and KDE 3.2
Actually it crashes for me when trying to copy a state. #0 0x4090be88 in posix_memalign () from /usr/lib/libkdecore.so.4 #1 0x4090b646 in malloc () from /usr/lib/libkdecore.so.4 #2 0x4134548e in operator new(unsigned) () from /usr/lib/libstdc++.so.5 #3 0x40f83c96 in QString::QString(char const*) () from /usr/lib/libqt-mt.so.3 #4 0x08187c27 in UMLDoc::saveToXMI(QIODevice&) (this=0x843cc08, file=@0x85b37a8) at umldoc.cpp:1630 #5 0x0818dfe9 in UMLDoc::addToUndoStack() (this=0x843cc08) at umldoc.cpp:2591 #6 0x0818d085 in UMLDoc::setModified(bool, bool) (this=0x843cc08, modified=true, addToUndo=true) at umldoc.cpp:2394 #7 0x08179e70 in UMLApp::slotEditPaste() (this=0x8376370) at uml.cpp:789 #8 0x0817d21f in UMLApp::qt_invoke(int, QUObject*) (this=0x8376370, _id=87, _o=0xbfffea70) at uml.moc:246 #9 0x40cb152c in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/libqt-mt.so.3 #10 0x40cb1354 in QObject::activate_signal(int) () from /usr/lib/libqt-mt.so.3 #11 0x4056939b in KAction::activated() () from /usr/lib/libkdeui.so.4 #12 0x40568d6f in KAction::slotActivated() () from /usr/lib/libkdeui.so.4 #13 0x405695a1 in KAction::qt_invoke(int, QUObject*) () from /usr/lib/libkdeui.so.4 #14 0x40cb152c in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/libqt-mt.so.3 #15 0x40cb1354 in QObject::activate_signal(int) () from /usr/lib/libqt-mt.so.3 #16 0x40862e8b in KAccelPrivate::menuItemActivated() () from /usr/lib/libkdecore.so.4 #17 0x4086170c in KAccelPrivate::eventFilter(QObject*, QEvent*) () from /usr/lib/libkdecore.so.4 #18 0x40caee5e in QObject::activate_filters(QEvent*) () from /usr/lib/libqt-mt.so.3 #19 0x40caed8c in QObject::event(QEvent*) () from /usr/lib/libqt-mt.so.3 #20 0x40ce760f in QWidget::event(QEvent*) () from /usr/lib/libqt-mt.so.3 #21 0x40da5ca2 in QMainWindow::event(QEvent*) () from /usr/lib/libqt-mt.so.3 #22 0x40c54bcf in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/libqt-mt.so.3 #23 0x40c546c4 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libqt-mt.so.3 #24 0x407def13 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdecore.so.4 #25 0x40c4c9c2 in QAccelManager::tryAccelEvent(QWidget*, QKeyEvent*) () from /usr/lib/libqt-mt.so.3 #26 0x40c4c39e in qt_tryAccelEvent(QWidget*, QKeyEvent*) () from /usr/lib/libqt-mt.so.3 #27 0x40bebb41 in QETWidget::translateKeyEvent(_XEvent const*, bool) () from /usr/lib/libqt-mt.so.3 #28 0x40be7392 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libqt-mt.so.3 #29 0x40bfe1a4 in QEventLoop::processEvents(unsigned) () from /usr/lib/libqt-mt.so.3 #30 0x40c66f28 in QEventLoop::enterLoop() () from /usr/lib/libqt-mt.so.3 #31 0x40c66dd8 in QEventLoop::exec() () from /usr/lib/libqt-mt.so.3 #32 0x40c54e21 in QApplication::exec() () from /usr/lib/libqt-mt.so.3 #33 0x08159cc9 in main (argc=1, argv=0xbffff8a4) at main.cpp:86
CVS commit by tokoe: Fixed bug #89485. We can't check for UMLDoc::isLoading() here, because this method is _always_ called during loading, with the result that activated() isn't called and the widgets don't get the m_bActivated bit set. That results the shift of all widgets when you copy+paste a single widget in a loaded diagram. CCMAIL:89485-done@bugs.kde.org M +2 -1 umlview.cpp 1.191 --- kdesdk/umbrello/umbrello/umlview.cpp #1.190:1.191 @@ -1538,5 +1538,6 @@ bool UMLView::activate() { if(obj->isActivated() || obj->getBaseType() == wt_Message) continue; - if (!m_pDoc->loading() && !obj->activate()) + + if (!obj->activate()) continue; obj -> setVisible( true );