1. 16 May, 2022 3 commits
    • Oliver Kellogg's avatar
      Followup to commit 5803dcd2 - add basic support for loading StarUML and... · a8037fba
      Oliver Kellogg authored
      Followup to commit 5803dcd2 - add basic support for loading StarUML and MagicDraw/Cameo while preserving load of native XMI:
      
      umbrello/model_utils.{h,cpp}
      - New function loadCommentFromXMI returns the text of an <ownedComment>
        UML2 element from a QDomElement. It attempts to read the attribute
        "body" and if that returns empty then attempts to read the text of the
        nested element <body>.
      
      umbrello/umldoc.cpp
      - In function loadFromXMI case outerTag "XMI" or "xmi:XMI" for-loop of
        node:
        - If outerTag stripped of namespace is "Model" or "Package" or
          "packagedElement" and the call to loadUMLObjectsFromXMI(element)
          returns false then do not return false.
          Reason: This gives better results on loading foreign XMI formats.
        - Support tagEq(tag, "DataType") alongside "Package", "Class", etc.
        - Support tagEq(tag, "ownedComment") using
          Model_Utils::loadCommentFromXMI(element).
      - In function loadUMLObjectsFromXMI for-loop of node:
        1) Move up declaration of xmiType and setting of type from xmiT...
      a8037fba
    • Oliver Kellogg's avatar
      Fix "Associations attached to ports are orphaned by move of the component" · 098ed160
      Oliver Kellogg authored
      umbrello/umlwidgets/associationwidget.cpp
      - Reduce PIXEL_TOLERANCE to 20.
      - In function linePathStartsAt, on initializing wX and wY use
        widget->getX() and widget->getY(), respectively.
      
      BUG: 453901
      FIXED-IN: 2.34.70 (KDE releases 22.07.70)
      098ed160
    • Oliver Kellogg's avatar
      Cosmetic changes in umbrello/umlwidgets: · b98d2f1b
      Oliver Kellogg authored
      umbrello/umlwidgets/childwidgetplacementport.cpp
      - In function detectConnectedSide fix formatting at assignments to
        m_connectedSide.
      
      umbrello/umlwidgets/pinportbase.cpp
      - In function onWidget log a debug message showing input position,
        owner, and result of UMLWidget::onWidget(p).
      b98d2f1b
  2. 13 May, 2022 1 commit
  3. 10 May, 2022 2 commits
  4. 09 May, 2022 3 commits
  5. 01 May, 2022 1 commit
  6. 30 Apr, 2022 1 commit
  7. 26 Apr, 2022 5 commits
  8. 23 Apr, 2022 1 commit
  9. 17 Apr, 2022 2 commits
    • Oliver Kellogg's avatar
      Fix "Curly brackets disappear on python import" · 129462a4
      Oliver Kellogg authored
      umbrello/codeimport/pythonimport.cpp function skipBody
      - Add bool dictInitializer initialized to false.
      - In while-loop :
        - If token is "}" then
          - if dictInitializer is true then append '}' to body and set
            dictInitializer false;
          - move braceNesting related code to else-part of this if-statement.
        - If token is "{" then
          - if previous token is "=" then append '{' to body and set
            dictInitializer true;
          - move braceNesting related code to else-part of this if-statement.
      
      BUG: 452702
      FIXED-IN: 2.34.70 (KDE releases 22.07.70)
      129462a4
    • Oliver Kellogg's avatar
      umbrello/umldoc.cpp : Add basic support for loading StarUML v5 XMI v2.1 · 5803dcd2
      Oliver Kellogg authored
      - In function loadUMLObjectsFromXMI loop of node over element children
        move the code
          if (tagEq(type, QLatin1String("packagedElement")) ||
                     tagEq(type, QLatin1String("ownedElement"))) {
              type = tempElement.attribute(QLatin1String("xmi:type"));
          }
        up by a few lines to precede the test for tagEq(type, "Model").
        Reason: StarUML generates a model element
          <packagedElement [...] xmi:type="uml:Model">
        nested inside the outer envelope
          <uml:Model [...] xmi:type="uml:Model" name="RootModel">
      
      CCBUG: 56184
      5803dcd2
  10. 16 Apr, 2022 3 commits
  11. 15 Apr, 2022 4 commits
  12. 06 Apr, 2022 1 commit
  13. 03 Apr, 2022 1 commit
  14. 02 Apr, 2022 3 commits
  15. 01 Apr, 2022 3 commits
  16. 30 Mar, 2022 1 commit
    • Oliver Kellogg's avatar
      umbrello/petaltree2uml.cpp improvements on converting diagram elements: · d6f1ebc2
      Oliver Kellogg authored
      - Move viewTagToWidget from function umbrellify to global level and
        reset it to empty on beginning parse of diagram.
      - In function handleAssocView :
        - Do not fail if attribute "roleview_list" is not found.  Reason:
          InheritView, RealizeView, and UsesView do not have this attribute.
        - If "roleview_list" is not present then retrieve `supplier` and
          `client` using attr->findAttribute() for "supplier" and "client",
          respectively.
        - Move locals supW and cliW up to wider scope in order to attempt
          their retrieval from viewTagToWidget[supplier] and
          viewTagToWidget[client], respectively. Execute the code involving
          view->umlScene()->widgetOnDiagram() only if client and/or supplier
          is not a key in viewTagToWidget.
      - In function umbrellify case (dt != Uml::DiagramType::Undefined) :
        - Clear viewTagToWidget.
        - In for-loop over atts, on handling CategoryView/ClassView etc
          retrieve attribute "icon" from attr. If it is "Interface" then
          - set local pointer cw to dynamic_cast<ClassifierWidget*>(w);
          - if cw is non null then set visual property `DrawAsCircle` on cw.
      
      CCBUG: 81364
      d6f1ebc2
  17. 29 Mar, 2022 1 commit
  18. 27 Mar, 2022 3 commits
    • Oliver Kellogg's avatar
      umbrello/petaltree2uml.cpp function umbrellify completion of statemachine statediagrams conversion: · a1cb29f2
      Oliver Kellogg authored
      - Local viewTagToWidget is a QMap<QString, UMLWidget*> mapping a view
        object's tag (number preceded by "@") to the Umbrello widget created.
      - In case (dt != Uml::DiagramType::Undefined) :
        - Local qreal maxY is initialized to 0.0 and is set to the largest Y
          (plus height) coordinate encountered during conversion of widgets.
        - Move declaration of locals `width` and `height` to inside for-loop.
        - Local UMLWidgetList swimlanes is an auxiliary list for adjusting the
          final height of swimlanes to contain all widgets.
        - Convert TransView to AssociationWidget with type State or Activity
          depending on the diagram type.
        - On converting Swimlane call swimlanes.append(w).
        - On converting StateView initialize `width` and `height` from
          w->width() and w->height(), respectively.
        - Convert DecisionView to ActivityWidget with ActivityType `Branch`.
        - Convert SynchronizationView to ForkJoinWidget with Qt::Orientation
          according to Rose attribute sync_is_horizontal.
        - Fill viewTagToWidget with attr->viewTag() as key and `w` (pointer
          to UMLWidget) as value.
        - After the conversion loop iterate over `swimlanes` for adjusting
          each swimlane's height to maxY.
      
      CCBUG: 81364
      a1cb29f2
    • Oliver Kellogg's avatar
    • Oliver Kellogg's avatar
      umbrello/umlwidgets/forkjoinwidget.cpp : In constructor align arguments to... · 3e4b07bd
      Oliver Kellogg authored
      umbrello/umlwidgets/forkjoinwidget.cpp : In constructor align arguments to setSize() with the Qt::Orientation given.
      3e4b07bd
  19. 26 Mar, 2022 1 commit
    • Oliver Kellogg's avatar
      umbrello/petaltree2uml.cpp various fixes following commit 9bfc122d : · 7b68b769
      Oliver Kellogg authored
      - In function fetchLocation,
        - revert change to argument of location.split();
        - do not adjust returned values by factor Rose2Qt when width or
          height are provided as 0.
      - In function fetchDouble,
        - replace argument defaultValue by bool applyRose2Qt defaulting to
          true;
        - add debug statements on cases where 0.0 is returned;
        - adjust returned value by factor Rose2Qt only if applyRose2Qt is
          true.
      - In function umbrellify case (dt != Uml::DiagramType::Undefined) for-
        loop, fix bug in handling of line_color and fill_color:
        The hexadecimal number provided to QColor constructor must be 6 hex
        digits wide. If less than 6 digits pad with leading zeros.
      
      CCBUG: 81364
      7b68b769