1. 08 May, 2017 1 commit
  2. 02 Mar, 2017 1 commit
    • Ralf Habacker's avatar
      Refactor UMLInstance to be more UML and XMI 1.4 compatible. · 576a4346
      Ralf Habacker authored
      - Create classifier instance on construction if not present
        and save it internal instead to be a non sharable classifier.
        Class UMLInstance itself stays to be derived from UMLClassifier
        because of the usage of UMLAttribute representing instance
        attributes.
      - Save and load 'classifier' attribute to be xmi 1.4 compatible
      
      CCBUG:123633
      576a4346
  3. 26 Feb, 2017 2 commits
  4. 25 Feb, 2017 1 commit
  5. 24 Feb, 2017 1 commit
  6. 23 Feb, 2017 1 commit
  7. 20 Feb, 2017 2 commits
  8. 18 Feb, 2017 1 commit
  9. 17 Feb, 2017 4 commits
  10. 09 Jan, 2017 1 commit
  11. 09 Dec, 2016 1 commit
  12. 04 Nov, 2016 2 commits
  13. 06 Sep, 2016 1 commit
  14. 30 Aug, 2016 1 commit
  15. 18 Sep, 2015 1 commit
  16. 14 Sep, 2015 1 commit
  17. 29 Jun, 2015 2 commits
  18. 27 Jun, 2015 2 commits
  19. 09 Apr, 2015 1 commit
  20. 16 Mar, 2015 1 commit
  21. 12 Mar, 2015 1 commit
  22. 07 Mar, 2015 1 commit
  23. 27 Oct, 2014 1 commit
  24. 09 Sep, 2014 1 commit
    • Oliver Kellogg's avatar
      Address http://bugs.kde.org/show_bug.cgi?id=338797#c7, · d98c3db9
      Oliver Kellogg authored
      static_cast<UMLClassifier*>(m_umlObject) in ClassifierWidget::classifier()
      may be invalid:
      
      umbrello/widgets/classifierwidget.cpp
      - In function classifier(), replace static_cast by dynamic_cast.
      - In the entire class implementation, ensure return value from classifier()
        is non NULL before dereferencing.
      
      Since I could not reproduce the crash, I leave this bug REOPENED until the
      fix is verified.
      
      CCBUG: 338797
      FIXED-IN: 4.14.1
      d98c3db9
  25. 05 Sep, 2014 1 commit
    • Oliver Kellogg's avatar
      Address http://bugs.kde.org/show_bug.cgi?id=338797#c7, · 9a9f89f8
      Oliver Kellogg authored
      static_cast<UMLClassifier*>(m_umlObject) in ClassifierWidget::classifier()
      may be invalid:
      
      umbrello/widgets/classifierwidget.cpp
      - In function classifier(), replace static_cast by dynamic_cast.
      - In the entire class implementation, ensure return value from classifier()
        is non NULL before dereferencing.
      
      Since I could not reproduce the crash, I leave this bug REOPENED until the
      fix is verified.
      
      CCBUG: 338797
      9a9f89f8
  26. 02 Sep, 2014 1 commit
  27. 29 Aug, 2014 1 commit
    • Ralf Habacker's avatar
      Automate required namespace/package user interaction on c++ import. · 1de0459d
      Ralf Habacker authored
      If the type of an imported uml object could not be determined the import
      creates an uml class object and flags the stereotype to be "class-or-package".
      Such uml objects are displayed in the tree view by a dedicated icon.
      
      If the real type of the related uml object is determined later as a class,
      the flag is removed and the uml object is usable as a generic class.
      
      If the real object is a namespace, the flag is removed and the uml object
      is set to a package type and could be used as regular created package.
      This is possible because the initial created object of type UMLClassifier
      is derived from UMLPackage. In the latter case ClassifierWidget paints
      the object as Package.
      
      The tree view and classifier widget context menu has been extended to
      provide functions to convert a "class or package" uml object to a class
      or package.
      
      Because the "class or package" state is flagged in the stereotype, saving
      and loading of an umbrello project containing "class or package"
      flagged uml objects is completly transparent.
      
      CCBUG:336012
      1de0459d
  28. 22 Aug, 2014 1 commit
  29. 18 Aug, 2014 1 commit
    • Ralf Habacker's avatar
      Automate required namespace/package user interaction on c++ import. · 801d607a
      Ralf Habacker authored
      If the type of an imported uml object could not be determined the import
      creates an uml class object and flags the stereotype to be "class-or-package".
      Such uml objects are displayed in the tree view by a dedicated icon.
      
      If the real type of the related uml object is determined later as a class,
      the flag is removed and the uml object is usable as a generic class.
      
      If the real object is a namespace, the flag is removed and the uml object
      is set to a package type and could be used as regular created package.
      This is possible because the initial created object of type UMLClassifier
      is derived from UMLPackage. In the latter case ClassifierWidget paints
      the object as Package.
      
      The tree view and classifier widget context menu has been extended to
      provide functions to convert a "class or package" uml object to a class
      or package.
      
      Because the "class or package" state is flagged in the stereotype, saving
      and loading of an umbrello project containing "class or package"
      flagged uml objects is completly transparent.
      
      CCBUG:336012
      801d607a
  30. 10 Aug, 2014 1 commit
    • Oliver Kellogg's avatar
      (In reply to Ralf Habacker from comment #9) · 3360998e
      Oliver Kellogg authored
      > Comment on attachment 83576 [details]
      > Similar example for instantiated template class
      >
      > Here using correct widget shape for line intersecting would solve the issue.
      
      Here is an implementation for corrected widget shape of template classes.
      However, apparently Widget_Utils::closestPoints() still has a bug related to
      anchoring in the NorthWest, West, and SouthWest regions; I'll look into that
      next.
      
      umbrello/widgets/umlwidget.{h,cpp}
      - At function calculateSize() add optional bool argument `withExtensions'
        defaulting to true.
      - At functions calculateSize(), minimumSize(), and getFontMetrics(), add
        `const' qualifier to enable use in overriding QGraphicsItem::shape().
      - In function init() add allocation of the m_pFontMetrics array elements.
        Reason: Ad hoc allocation of m_pFontMetrics element is removed from
        getFontMetrics() in order to make that method `const'.
      - In function forceUpdateFontMetrics() for-loops let loop variable count
        backwards so that m_font ends up initialized to FT_NORMAL (index 0.)
      
      umbrello/widgets/classifierwidget.{h,cpp}
      - UMLWidget overriding function calculateSize() assumes minimumSize() body.
        If `withExtensions' arg is true then size is calculated to include
        template box; else size does not include template box.
      - Function minimumSize() now simply calls calculateSize() using default
        withExtensions argument.
      - Declare following functions `const':
        calculateTemplatesBoxSize(), calculateAsCircleSize(), minimumSize(),
        displayedMembers(), displayedAttributes(), displayedOperations().
        This is required due to their usage in overriding QGraphicsItem::shape().
      - In function paint() rename m_bodyOffsetY to bodyOffsetY.
        Reason: This is a local variable not a class member.
      - In function shape(), if calculateTemplatesBoxSize() returns non-zero then
        add the templates box rectangle to the path, and displace the main
        rectangle by a postive Y offset of templatesBoxSize.height() minus MARGIN.
      
      umbrello/widgets/notewidget.{h,cpp}
      - Adjust calculateSize() override to changed signature in UMLWidget.
      
      umbrello/widgets/activitywidget.{h,cpp}
      umbrello/widgets/actorwidget.{h,cpp}
      umbrello/widgets/artifactwidget.{h,cpp}
      umbrello/widgets/categorywidget.{h,cpp}
      umbrello/widgets/combinedfragmentwidget.{h,cpp}
      umbrello/widgets/componentwidget.{h,cpp}
      umbrello/widgets/datatypewidget.{h,cpp}
      umbrello/widgets/entitywidget.{h,cpp}
      umbrello/widgets/enumwidget.{h,cpp}
      umbrello/widgets/floatingtextwidget.{h,cpp}
      umbrello/widgets/forkjoinwidget.{h,cpp}
      umbrello/widgets/nodewidget.{h,cpp}
      umbrello/widgets/notewidget.{h,cpp}
      umbrello/widgets/usecasewidget.{h,cpp}
      umbrello/widgets/objectnodewidget.{h,cpp}
      umbrello/widgets/objectwidget.{h,cpp}
      umbrello/widgets/packagewidget.{h,cpp}
      umbrello/widgets/preconditionwidget.{h,cpp}
      umbrello/widgets/regionwidget.{h,cpp}
      umbrello/widgets/signalwidget.{h,cpp}
      umbrello/widgets/statewidget.{h,cpp}
      umbrello/widgets/umlwidget.{h,cpp}
      - Adjust minimumSize() override to changed signature in UMLWidget.
      
      umbrello/widgets/associationwidget.cpp
      - In function calculateEndingPoints(), apply
          QPolygonF::translated(pWidgetA->pos()) on polyA
        and apply
          QPolygonF::translated(pWidgetB->pos()) on polyB
        to properly handle non child widgets (i.e. with absolute pos().)
      - In function updateRegionLineCount(), for calculating `pt' employ
        Widget_Utils::closestPoints() following the pattern used in
        calculateEndingPoints().
      
      umbrello/widgets/widget_utils.cpp
      - New function middle() returns the middle value of two axis values.
        The function handles not only relative but also absolute coordinates.
      - In function closestPoints() employ function middle() in the
        result.setLine() arguments for regions North, South, West, and East.
      
      CCBUG:128351
      3360998e
  31. 06 Aug, 2014 2 commits
    • Oliver Kellogg's avatar
      umbrello/widgets/classifierwidget.cpp function setDrawAsCircle() · c636f3f6
      Oliver Kellogg authored
      - Set circleSize to CIRCLE_SIZE + SOCKET_INCREMENT unconditionally.
        This fixes rendering artifacts left around on moving the ball.
      c636f3f6
    • Oliver Kellogg's avatar
      (In reply to Ralf Habacker from comment #17) · 09b6aed9
      Oliver Kellogg authored
      > (In reply to Oliver Kellogg from comment #16)
      > >
      > > IMHO resize on interface ball is of dubious value.
      > > How about disabling resize in this case.
      >
      > good idea.
      
      umbrello/widgets/classifierwidget.cpp function setDrawAsCircle()
      - In case drawAsCircle == true set m_resizable false.
      - In case drawAsCircle == false set m_resizable true.
      
      CCBUG:128351
      09b6aed9