Skip to content
  • Oliver Kellogg's avatar
    (In reply to comment #9) · d22ed2f5
    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