Summary: | Activity Diagram Associations snap precedence to boxes/partitions/swimlanes before any other objects in box region and unable to select other actions | ||
---|---|---|---|
Product: | [Applications] umbrello | Reporter: | Anthony Green <ac_green> |
Component: | general | Assignee: | Umbrello Development Group <umbrello-devel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jr |
Priority: | NOR | ||
Version: | 1.4.2 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Anthony Green
2005-09-04 05:59:08 UTC
SVN commit 456928 by okellogg: BUG:112017 - setSelectedWidget(): First check associations, then messages, then other widgets. M +1 -1 ChangeLog M +31 -32 umbrello/toolbarstate.cpp --- branches/KDE/3.5/kdesdk/umbrello/ChangeLog #456927:456928 @@ -11,7 +11,7 @@ * Bugs fixed / wishes implemented (see http://bugs.kde.org) 57588 58809 66461 67719 72016 79433 87252 88117 97162 105564 108223 109591 109636 110216 110231 110379 111088 111470 111502 111759 -111768 +111768 112017 Version 1.4.2 (maintenance release) --- branches/KDE/3.5/kdesdk/umbrello/umbrello/toolbarstate.cpp #456927:456928 @@ -169,9 +169,38 @@ UMLWidget* backup = 0; UMLWidget* boxBackup = 0; + // Check associations. + AssociationWidgetListIt assoc_it(m_pUMLView->getAssociationList()); + AssociationWidget* assocwidget = 0; + while ((assocwidget = assoc_it.current()) != NULL) { + if (assocwidget->onAssociation( me->pos() )) + { + // TODO: Fix this. It makes a callback to the association mousePressEvent function. + assocwidget->mousePressEvent(me); + m_pUMLView->setMoveAssoc(assocwidget); + m_bWidgetSelected = true; + return true; + } + ++assoc_it; + } + m_pUMLView->setMoveAssoc(NULL); + + // Check messages. + MessageWidgetListIt mit( m_pUMLView->getMessageList() ); + UMLWidget *obj = 0; + while ((obj = (UMLWidget*)mit.current()) != 0) { + if (obj->isVisible() && obj->onWidget(me->pos())) { + m_pUMLView->setOnWidget( obj ); + obj -> mousePressEvent( me ); + m_bWidgetSelected = true; + return true; + } + ++mit; + } + // Check widgets. UMLWidgetListIt it( m_pUMLView->getWidgetList() ); - UMLWidget* obj = 0; + obj = 0; while ( (obj = it.current()) != 0 ) { ++it; if( !obj->isVisible() || !obj->onWidget(me->pos()) ) @@ -192,7 +221,7 @@ } else { backup = obj; } - }//end while + } //if backup is set then let it have the event if(backup) { backup -> mousePressEvent( me ); @@ -201,20 +230,6 @@ m_bWidgetSelected = true; return true; } - - // Check messages. - MessageWidgetListIt mit( m_pUMLView->getMessageList() ); - obj = 0; - while ((obj = (UMLWidget*)mit.current()) != 0) { - if (obj->isVisible() && obj->onWidget(me->pos())) { - m_pUMLView->setOnWidget( obj ); - obj -> mousePressEvent( me ); - m_bWidgetSelected = true; - return true; - } - ++mit; - } - // Boxes have lower priority. if (boxBackup) { boxBackup -> mousePressEvent( me ); @@ -224,22 +239,6 @@ return true; } - // Check associations. - AssociationWidgetListIt assoc_it(m_pUMLView->getAssociationList()); - AssociationWidget* assocwidget = 0; - while((assocwidget=assoc_it.current())) { - if( assocwidget -> onAssociation( me -> pos() )) - { - // TODO: Fix this. It makes a callback to the association mousePressEvent function. - assocwidget->mousePressEvent(me); - m_pUMLView->setMoveAssoc(assocwidget); - - m_bWidgetSelected = true; - return true; - } - ++assoc_it; - } - m_pUMLView->setMoveAssoc(NULL); m_pUMLView->setOnWidget(NULL); m_bWidgetSelected = false; |