-
Oliver Kellogg authored
> > On component diagrams: > * Ports (on component edges) Here is a first stab at ports. umbrello/pics/sources/port.svg, umbrello/pics/port.png, umbrello/pics/CMakeLists.txt - Port icon temporarily copied from node.{svg,png}, still to be reworked for proper port symbol. umbrello/port.{h,cpp}, umbrello/widgets/portwidget.{h,cpp} - Implementation for new UML object Port and its PortWidget. Known issues: 1) The PortWidget is saved but is not restored on reloading the XMI file. 2) On dragging a port on the diagram, the PortWidget should be made to snap to the nearest edge of the nearest ComponentWidget, i.e. the port should "stick" to a component on moving. umbrello/CMakeLists.txt - Add widgets/portwidget.cpp to libwidgets_SRCS. - Add port.cpp to libumbrello_SRCS. umbrello/umlobject.h - At end of enum ObjectType, add value ot_Port. umbrello/umllistviewitem.h - At enum ListViewType, insert value lvt_Port before end-of-enum mark. umbrello/umllistviewitem.cpp - In functions slotEditFinished() and toString(), handle case lvt_Port. umbrello/icon_utils.h - At enum IconType add value it_Port. umbrello/icon_utils.cpp In function toString(IconType type), handle case it_Port. umbrello/listpopupmenu.h - At enum MenuType add value mt_Port. umbrello/listpopupmenu.cpp - In constructor ListPopupMenu(QWidget*, UMLListViewItem::ListViewType, UMLObject*) handle case UMLListViewItem::lvt_Port. - In function insertSingleSelectionMenu() handle case WidgetBase::wt_Port. - In functions insert() and insertSubMenuNew() handle case mt_Component. - In functions insertSubMenuNew() and setupMenu() handle case mt_Port. umbrello/optionstate.h - In struct GeneralState add member bool uml2. umbrello/umbrello.kcfg - In group "General Options" add entry "uml2" for enabling UML2 notation. umbrello/uml.cpp - In functions saveOptions() and readOptionState() handle new optionState.generalState member uml2. umbrello/umlscene.cpp - In function dragEnterEvent(), set bAccept = true for `ot' value ot_Port. umbrello/model_utils.cpp - In function isCloneable() handle case WidgetBase::wt_Port. - In functions uniqObjectName(), guessContainer(), convert_OT_LVT(), and convert_OT_MT(), handle case UMLObject::ot_Port. - In functions typeIsCanvasWidget(), typeIsAllowedInType(), convert_LVT_IT() handle case UMLListViewItem::lvt_Port. umbrello/object_factory.cpp - In function createNewUMLObject() handle case UMLObject::ot_Port. - In function makeObjectFromXMI handle case UMLDoc::tagEq(xmiTag, "Port"). umbrello/umllistview.cpp - In function slotMenuSelection() handle case ListPopupMenu::mt_Port. - In function connectNewObjectsSlots() handle case UMLObject::ot_Port. - In functions findUMLObjectInFolder(), moveObject(), determineParentItem(), isUnique(), loadChildrenFromXMI(), handle case UMLListViewItem::lvt_Port. - In function slotMenuSelection() handle case ListPopupMenu::mt_Port. umbrello/assocrules.cpp - At AssocRules::m_AssocRules[] add rules for Association and UniAssociation from wt_Port to wt_Interface. umbrello/widgets/widgetbase.h - At end of enum WidgetType, add value wt_Port. umbrello/widgets/widgetbase.cpp - In function slotMenuSelection(), at case ListPopupMenu::mt_Properties, admit `wt' value wt_Port to call of showPropertiesDialog(). umbrello/widgets/umlwidget.cpp - In function widgetHasUMLObject(), return true for `type' value wt_Port. umbrello/widgets/widget_factory.cpp - In function createWidget(), add case for ot_Port setting newWidget to a new PortWidget. umbrello/dialogs/pages/classgeneralpage.cpp - In ClassGeneralPage constructor setup of `name', handle case ot_Port. CCBUG:115269
d22ed2f5