[umbrello] [Bug 115269] Implement the UML 2.0 standard

"Oliver Kellogg" <[email protected]>
Newsgroups gmane.linux.umbrello.devel
Message-ID <[email protected]/>
https://bugs.kde.org/show_bug.cgi?id=115269

--- Comment #31 from Oliver Kellogg <[email protected]> ---
Git commit b57c76163be60160b4559cd6c7857e1c911196f3 by Oliver Kellogg.
Committed on 26/12/2021 at 23:00.
Pushed by okellogg into branch 'master'.

Enhancement: Write UML2 XMI format when UML2 mode is selected.
Directory umbrello/uml1model is renamed to umbrello/umlmodel to reflect
how the enhancement is implemented (same source file for UML1 and UML2
mode).

Changes:

umbrello/CMakeLists.txt
umbrello/codeimport/CMakeLists.txt
unittests/CMakeLists.txt
- Adjust include_directories et al. to renamed directory `umlmodel'.

umbrello/clipboard/umldragdata.cpp
umbrello/cmds/cmdremovediagram.cpp
umbrello/cmds/widget/cmdcreatewidget.cpp
umbrello/cmds/widget/cmdremovewidget.cpp
umbrello/codegenerators/classifiercodedocument.{h,cpp}
umbrello/codegenerators/codeaccessormethod.{h,cpp}
umbrello/codegenerators/codeblock.{h,cpp}
umbrello/codegenerators/codeblockwithcomments.{h,cpp}
umbrello/codegenerators/codeclassfield.{h,cpp}
umbrello/codegenerators/codeclassfielddeclarationblock.{h,cpp}
umbrello/codegenerators/codecomment.{h,cpp}
umbrello/codegenerators/codedocument.{h,cpp}
umbrello/codegenerators/codegenerator.{h,cpp}
umbrello/codegenerators/codegenobjectwithtextblocks.{h,cpp}
umbrello/codegenerators/codeoperation.{h,cpp}
umbrello/codegenerators/cpp/cppcodecomment.{h,cpp}
umbrello/codegenerators/cpp/cppcodedocumentation.{h,cpp}
umbrello/codegenerators/cpp/cppcodegenerator.{h,cpp}
umbrello/codegenerators/cpp/cppheaderclassdeclarationblock.{h,cpp}
umbrello/codegenerators/cpp/cppheadercodedocument.{h,cpp}
umbrello/codegenerators/d/dclassdeclarationblock.{h,cpp}
umbrello/codegenerators/d/dcodecomment.{h,cpp}
umbrello/codegenerators/d/dcodedocumentation.{h,cpp}
umbrello/codegenerators/hierarchicalcodeblock.{h,cpp}
umbrello/codegenerators/java/javaantcodedocument.{h,cpp}
umbrello/codegenerators/java/javaclassdeclarationblock.{h,cpp}
umbrello/codegenerators/java/javacodedocumentation.{h,cpp}
umbrello/codegenerators/ownedhierarchicalcodeblock.h
umbrello/codegenerators/ruby/rubyclassdeclarationblock.{h,cpp}
umbrello/codegenerators/ruby/rubycodedocumentation.{h,cpp}
umbrello/codegenerators/textblock.h
umbrello/codegenerators/xml/xmlelementcodeblock.{h,cpp}
umbrello/docgenerators/docbookgeneratorjob.cpp
umbrello/optionstate.{h,cpp}
umbrello/umldoc.{h,cpp}
umbrello/umllistview.{h,cpp}
umbrello/umllistviewitem.{h,cpp}
umbrello/umlmodel/umlobject.{h,cpp}
umbrello/umlmodel/actor.{h,cpp}
umbrello/umlmodel/artifact.{h,cpp}
umbrello/umlmodel/association.{h,cpp}
umbrello/umlmodel/attribute.{h,cpp}
umbrello/umlmodel/category.{h,cpp}
umbrello/umlmodel/checkconstraint.{h,cpp}
umbrello/umlmodel/classifier.{h,cpp}
umbrello/umlmodel/component.{h,cpp}
umbrello/umlmodel/datatype.{h,cpp}
umbrello/umlmodel/entity.{h,cpp}
umbrello/umlmodel/entityattribute.{h,cpp}
umbrello/umlmodel/enum.{h,cpp}
umbrello/umlmodel/enumliteral.{h,cpp}
umbrello/umlmodel/folder.{h,cpp}
umbrello/umlmodel/foreignkeyconstraint.{h,cpp}
umbrello/umlmodel/instance.{h,cpp}
umbrello/umlmodel/instanceattribute.{h,cpp}
umbrello/umlmodel/node.{h,cpp}
umbrello/umlmodel/operation.{h,cpp}
umbrello/umlmodel/package.{h,cpp}
umbrello/umlmodel/port.{h,cpp}
umbrello/umlmodel/stereotype.{h,cpp}
umbrello/umlmodel/template.{h,cpp}
umbrello/umlmodel/umlcanvasobject.h
umbrello/umlmodel/umlrole.{h,cpp}
umbrello/umlmodel/uniqueconstraint.{h,cpp}
umbrello/umlwidgets/activitywidget.{h,cpp}
umbrello/umlwidgets/actorwidget.{h,cpp}
umbrello/umlwidgets/artifactwidget.{h,cpp}
umbrello/umlwidgets/associationline.{h,cpp}
umbrello/umlwidgets/associationwidget.{h,cpp}
umbrello/umlwidgets/associationwidgetrole.{h,cpp}
umbrello/umlwidgets/boxwidget.{h,cpp}
umbrello/umlwidgets/categorywidget.{h,cpp}
umbrello/umlwidgets/classifierwidget.{h,cpp}
umbrello/umlwidgets/combinedfragmentwidget.{h,cpp}
umbrello/umlwidgets/componentwidget.{h,cpp}
umbrello/umlwidgets/datatypewidget.{h,cpp}
umbrello/umlwidgets/diagramproxywidget.{h,cpp}
umbrello/umlwidgets/entitywidget.{h,cpp}
umbrello/umlwidgets/enumwidget.{h,cpp}
umbrello/umlwidgets/floatingdashlinewidget.{h,cpp}
umbrello/umlwidgets/floatingtextwidget.{h,cpp}
umbrello/umlwidgets/forkjoinwidget.{h,cpp}
umbrello/umlwidgets/linkwidget.{h,cpp}
umbrello/umlwidgets/messagewidget.{h,cpp}
umbrello/umlwidgets/nodewidget.{h,cpp}
umbrello/umlwidgets/notewidget.{h,cpp}
umbrello/umlwidgets/objectnodewidget.{h,cpp}
umbrello/umlwidgets/objectwidget.{h,cpp}
umbrello/umlwidgets/packagewidget.{h,cpp}
umbrello/umlwidgets/pinportbase.{h,cpp}
umbrello/umlwidgets/preconditionwidget.{h,cpp}
umbrello/umlwidgets/regionwidget.{h,cpp}
umbrello/umlwidgets/signalwidget.{h,cpp}
umbrello/umlwidgets/statewidget.{h,cpp}
umbrello/umlwidgets/umlwidget.{h,cpp}
umbrello/umlwidgets/usecasewidget.{h,cpp}
umbrello/umlwidgets/widgetbase.{h,cpp}
umbrello/umlmodel/uniqueconstraint.{h,cpp}
umbrello/umlmodel/usecase.{h,cpp}
umbrello/umlscene.{h,cpp}
unittests/testbase.h
unittests/testoptionstate.cpp
- Rename saveToXMI1/loadFromXMI1 function definitions and invocations to
  saveToXMI/loadFromXMI.

umbrello/model_utils.cpp
- In function getXmiId recognize "xmi:id" before attempting "xmi.id".

umbrello/object_factory.cpp
- In function makeObjectFromXMI return new UMLAssociation for xmiTag
  "interfaceRealization".

umbrello/umldoc.cpp
- Additionally rename function loadUMLObjectsFromXMI1 to
  loadUMLObjectsFromXMI.
- In function saveToXMI write UML2 XMI format when in UML2 mode:
  - Write start element "xmi:XMI" instead of "XMI".
  - Write attribute "xmi:version" instead of "xmi.version".
  - Additionally write attributes "xmlns:xmi" and "xmlns:xsi".
  - Do not write start element "XMI.header" but do write some of the
    elements contained therein.
  - Write start element xmi:Documentation instead of XMI.documentation.
  - Write start element "uml:Model" instead of "UML:Model".
  - Write attribute "xmi:id" instead of "xmi.id".
  - Do not write attributes "isSpecification", "isAbstract", "isRoot",
    "isLeaf".
  - Write start element "xmi:Extension" instead of "XMI.extensions".
- In function encoding(QIODevice&), if element.tagName() is
  "xmi:Documentation" then return ENC_UNICODE.
- In function loadFromXMI handle outerTag "xmi:Extension" alongside
  "XMI.extensions".

umbrello/umlmodel/umlobject.{h,cpp}
- At function save1:
  - Switch order of arguments (`writer' comes first, then `type').
  - No longer expect argument `type' to carry an XMI namespace
    (the XMI namespace is added locally when in UML1 mode).
  - Add optional argument `tag' defaulting to QString().

umbrello/umlmodel/association.cpp
umbrello/umlmodel/component.cpp
umbrello/umlmodel/enumliteral.cpp
umbrello/umlmodel/entity.cpp
umbrello/umlmodel/entityattribute.cpp
umbrello/umlmodel/foreignkeyconstraint.cpp
umbrello/umlmodel/instance.cpp
umbrello/umlmodel/node.cpp
umbrello/umlmodel/operation.cpp
umbrello/umlmodel/package.cpp
umbrello/umlmodel/port.cpp
umbrello/umlmodel/stereotype.cpp
umbrello/umlmodel/template.cpp
umbrello/umlmodel/umlrole.cpp
umbrello/umlmodel/uniqueconstraint.cpp
umbrello/umlmodel/uniqueconstraint.cpp
umbrello/umlmodel/usecase.cpp
unittests/testumlobject.cpp
- In function saveToXMI1 call to UMLObject::save1(),
  - adjust arguments to changed order;
  - omit hard coded namespace prefix "UML:" on `type' argument;
  - provide value for new argument `tag' as required by UML2.

umbrello/umlmodel/association.cpp
- In function saveToXMI:
  - In case m_AssocType Uml::AssociationType::Realization, if
    Settings::optionState().generalState.uml2 is true then write tag
    "interfaceRealization" in lieu of "UML:Abstraction".
  - When producing the XMI for "Association" in UML2 mode do not write
    the start element "UML:Association.connection" but do write its
    content.  The content may still change for UML2 compliance.

umbrello/umlmodel/attribute.cpp
- In function saveToXMI, if Settings::optionState().generalState.uml2 is
  true then call UMLObject::save1() with type "Property" and tag
  "ownedAttribute".

umbrello/umlmodel/classifier.cpp
- In function saveToXMI1:
  - Omit XML namespace prefix "UML:" from `tag'.
  - On saving templates in UML2 mode, do not produce the
    "UML:ModelElement.templateParameter" envelope element but do produce
    its content.
  - On saving generalizations in UML2 mode, do not produce the
    "UML:GeneralizableElement.generalization" envelope element but do
    produce its content (adjusted to UML2 format).
  - On saving attributes (attList) and operations (opList) in UML2 mode,
    do not produce the"UML:Classifier.feature" envelope element but do
    produce its content.
  - On saving contained objects in UML2 mode, do not produce the
    "UML:Namespace.ownedElement" envelope element but do produce its
    content.
- In function makeChildObject handle xmiTag ClassifierTemplateParameter
  alongside "TemplateParameter".

umbrello/umlmodel/component.cpp
- In function saveToXMI1, if Settings::optionState().generalState.uml2
  is true then do not produce the "UML:Namespace.ownedElement" envelope
  element but do produce its content.
- In function load1 loop over nodes of `element', if the tag in `type'
  is "ownedAttribute" then set `type' to the value of tempElement's
  "xmi:type" XML attribute.

umbrello/umlmodel/entity.cpp
- In function load1 loop over nodes of `element', if the tag in `type'
  is "ownedAttribute" then set `type' to the value of tempElement's
  "xmi:type" XML attribute.

umbrello/umlmodel/enum.cpp
- In function saveToXMI1, if Settings::optionState().generalState.uml2
  is true then do not produce the "UML:Enumeration.literal" envelope
  element but do produce its content.

umbrello/umlmodel/folder.{h,cpp}
- Additionally rename function saveContents1 to saveContents.
- In function saveContents, if Settings::optionState().generalState.uml2
  is true then
  - do not produce the "UML:Namespace.ownedElement" envelope element but
    do produce its content;
  - on handling m_diagrams, produce start element "xmi:Extension" in
    lieu of "XMI.extension".
- In function save1:
  - Omit XML namespace prefix "UML:" from elementName, it will be added
    by UMLObject::save1.
  - Adjust call to UMLObject::save1() to changed order of arguments and
    provide special value "<use_type_as_tag>" as tag argument.
- In function saveToXMI1, on creating the extension stub in the main
  file, in UML2 mode produce start element "xmi:Extension" in lieu of
  "XMI.extension".
- In function load1:
  - Handle type "xmi:Extension" alongside "XMI.extension".
  - Remove check for invalid namespaces.  Reason: The "namespace" XML
    argument is non standard and is not produced in UML2 mode.

umbrello/umlmodel/instanceattribute.cpp
- In function saveToXMI, if Settings::optionState().generalState.uml2 is
  true then write attribute "xmi:id" in lieu of "xmi.id".

umbrello/umlmodel/operation.cpp
- In function saveToXMI1:
  - Do not produce the "UML:BehavioralFeature.parameter" envelope
    element but do produce its content.
  - Use the XML attribute name "direction" for indicating the
    parameter's "in out" or "out" calling convention.
  - Produce the tag "ownedParameter" and produce the "xmi:type"
    attribute set to "uml:Parameter".
  - Use the XML attribute name "xmi:id" for writing m_returnId.
- In function load1 handle tag "ownedParameter" alongside "Parameter".

umbrello/umlmodel/package.cpp
- In function saveToXMI, if Settings::optionState().generalState.uml2
  is true then do not produce the "UML:Namespace.ownedElement" envelope
  element but do produce its content.

umbrello/umlmodel/stereotype.cpp
- In function saveToXMI, if Settings::optionState().generalState.uml2
  is true then
  - do not produce the "UML:Stereotype.feature" envelope element but do
    produce its content;
  - produce the attribute definitions using XML tag "ownedAttribute".

umbrello/umlmodel/umlrole.cpp
- In function load1 use function Model_Utils::getXmiId to abstract away
  the difference in XMI ID attribute (UML1 "xmi.id" vs. UML2 "xmi:id").

umbrello/umlmodel/uniqueconstraint.cpp
- In function load1 loop over node, if tag is "ownedAttribute" then set
  tag to the value of the "xmi:type" attribute of tempElement.

umbrello/version.h
- Rename XMI_FILE_VERSION to XMI1_FILE_VERSION.
- Add XMI2_FILE_VERSION with value "2.0.0".
  XMI2_FILE_VERSION indicates the exporterVersion when UML2 support is
  enabled, i.e. when Settings::optionState().generalState.uml2 is true.
  The idea is that the UML1 XMI format will use versions below "2.0.0".

M  +36   -36   umbrello/CMakeLists.txt
M  +17   -17   umbrello/clipboard/umldragdata.cpp
M  +3    -3    umbrello/cmds/cmdremovediagram.cpp
M  +4    -4    umbrello/cmds/widget/cmdcreatewidget.cpp
M  +5    -5    umbrello/cmds/widget/cmdremovewidget.cpp
M  +4    -4    umbrello/codegenerators/classifiercodedocument.cpp
M  +2    -2    umbrello/codegenerators/classifiercodedocument.h
M  +3    -3    umbrello/codegenerators/codeaccessormethod.cpp
M  +3    -3    umbrello/codegenerators/codeaccessormethod.h
M  +3    -3    umbrello/codegenerators/codeblock.cpp
M  +3    -3    umbrello/codegenerators/codeblock.h
M  +6    -6    umbrello/codegenerators/codeblockwithcomments.cpp
M  +3    -3    umbrello/codegenerators/codeblockwithcomments.h
M  +7    -7    umbrello/codegenerators/codeclassfield.cpp
M  +3    -3    umbrello/codegenerators/codeclassfield.h
M  +2    -2    umbrello/codegenerators/codeclassfielddeclarationblock.cpp
M  +3    -3    umbrello/codegenerators/codeclassfielddeclarationblock.h
M  +3    -3    umbrello/codegenerators/codecomment.cpp
M  +3    -3    umbrello/codegenerators/codecomment.h
M  +4    -4    umbrello/codegenerators/codedocument.cpp
M  +2    -2    umbrello/codegenerators/codedocument.h
M  +4    -4    umbrello/codegenerators/codegenerator.cpp
M  +2    -2    umbrello/codegenerators/codegenerator.h
M  +7    -7    umbrello/codegenerators/codegenobjectwithtextblocks.cpp
M  +3    -3    umbrello/codegenerators/codeoperation.cpp
M  +3    -3    umbrello/codegenerators/codeoperation.h
M  +3    -3    umbrello/codegenerators/codeparameter.cpp
M  +2    -2    umbrello/codegenerators/cpp/cppcodecomment.cpp
M  +2    -2    umbrello/codegenerators/cpp/cppcodecomment.h
M  +2    -2    umbrello/codegenerators/cpp/cppcodedocumentation.cpp
M  +2    -2    umbrello/codegenerators/cpp/cppcodedocumentation.h
M  +3    -3    umbrello/codegenerators/cpp/cppcodegenerator.cpp
M  +1    -1    umbrello/codegenerators/cpp/cppcodegenerator.h
M  +3    -3    umbrello/codegenerators/cpp/cppheaderclassdeclarationblock.cpp
M  +3    -3    umbrello/codegenerators/cpp/cppheaderclassdeclarationblock.h
M  +7    -7    umbrello/codegenerators/cpp/cppheadercodedocument.cpp
M  +2    -2    umbrello/codegenerators/cpp/cppheadercodedocument.h
M  +3    -3    umbrello/codegenerators/d/dclassdeclarationblock.cpp
M  +3    -3    umbrello/codegenerators/d/dclassdeclarationblock.h
M  +10   -10   umbrello/codegenerators/d/dclassifiercodedocument.cpp
M  +2    -2    umbrello/codegenerators/d/dcodecomment.cpp
M  +2    -2    umbrello/codegenerators/d/dcodecomment.h
M  +2    -2    umbrello/codegenerators/d/dcodedocumentation.cpp
M  +2    -2    umbrello/codegenerators/d/dcodedocumentation.h
M  +3    -3    umbrello/codegenerators/hierarchicalcodeblock.cpp
M  +3    -3    umbrello/codegenerators/hierarchicalcodeblock.h
M  +8    -8    umbrello/codegenerators/java/javaantcodedocument.cpp
M  +2    -2    umbrello/codegenerators/java/javaantcodedocument.h
M  +3    -3    umbrello/codegenerators/java/javaclassdeclarationblock.cpp
M  +3    -3    umbrello/codegenerators/java/javaclassdeclarationblock.h
M  +10   -10   umbrello/codegenerators/java/javaclassifiercodedocument.cpp
M  +2    -2    umbrello/codegenerators/java/javacodedocumentation.cpp
M  +2    -2    umbrello/codegenerators/java/javacodedocumentation.h
M  +3    -3    umbrello/codegenerators/ownedhierarchicalcodeblock.h
M  +3    -3    umbrello/codegenerators/ruby/rubyclassdeclarationblock.cpp
M  +3    -3    umbrello/codegenerators/ruby/rubyclassdeclarationblock.h
M  +10   -10   umbrello/codegenerators/ruby/rubyclassifiercodedocument.cpp
M  +2    -2    umbrello/codegenerators/ruby/rubycodedocumentation.cpp
M  +2    -2    umbrello/codegenerators/ruby/rubycodedocumentation.h
M  +3    -3    umbrello/codegenerators/textblock.h
M  +3    -3    umbrello/codegenerators/xml/xmlelementcodeblock.cpp
M  +3    -3    umbrello/codegenerators/xml/xmlelementcodeblock.h
M  +1    -1    umbrello/codeimport/CMakeLists.txt
M  +1    -1    umbrello/docgenerators/docbookgeneratorjob.cpp
M  +2    -2    umbrello/import_argo.cpp
M  +2    -2    umbrello/model_utils.cpp
M  +3    -2    umbrello/object_factory.cpp
M  +13   -13   umbrello/optionstate.cpp
M  +13   -13   umbrello/optionstate.h
M  +95   -72   umbrello/umldoc.cpp
M  +3    -3    umbrello/umldoc.h
M  +3    -3    umbrello/umllistview.cpp
M  +2    -2    umbrello/umllistview.h
M  +5    -5    umbrello/umllistviewitem.cpp
M  +2    -2    umbrello/umllistviewitem.h
R  +3    -3    umbrello/umlmodel/actor.cpp [from: umbrello/uml1model/actor.cpp
- 083% similarity]
R  +2    -2    umbrello/umlmodel/actor.h [from: umbrello/uml1model/actor.h -
088% similarity]
R  +2    -2    umbrello/umlmodel/artifact.cpp [from:
umbrello/uml1model/artifact.cpp - 095% similarity]
R  +1    -1    umbrello/umlmodel/artifact.h [from:
umbrello/uml1model/artifact.h - 096% similarity]
R  +25   -14   umbrello/umlmodel/association.cpp [from:
umbrello/uml1model/association.cpp - 094% similarity]
R  +2    -2    umbrello/umlmodel/association.h [from:
umbrello/uml1model/association.h - 096% similarity]
R  +8    -3    umbrello/umlmodel/attribute.cpp [from:
umbrello/uml1model/attribute.cpp - 097% similarity]
R  +1    -1    umbrello/umlmodel/attribute.h [from:
umbrello/uml1model/attribute.h - 097% similarity]
R  +3    -3    umbrello/umlmodel/category.cpp [from:
umbrello/uml1model/category.cpp - 090% similarity]
R  +2    -2    umbrello/umlmodel/category.h [from:
umbrello/uml1model/category.h - 091% similarity]
R  +2    -2    umbrello/umlmodel/checkconstraint.cpp [from:
umbrello/uml1model/checkconstraint.cpp - 096% similarity]
R  +1    -1    umbrello/umlmodel/checkconstraint.h [from:
umbrello/uml1model/checkconstraint.h - 097% similarity]
R  +53   -26   umbrello/umlmodel/classifier.cpp [from:
umbrello/uml1model/classifier.cpp - 095% similarity]
R  +1    -1    umbrello/umlmodel/classifier.h [from:
umbrello/uml1model/classifier.h - 099% similarity]
R  +0    -0    umbrello/umlmodel/classifierlistitem.cpp [from:
umbrello/uml1model/classifierlistitem.cpp - 100% similarity]
R  +0    -0    umbrello/umlmodel/classifierlistitem.h [from:
umbrello/uml1model/classifierlistitem.h - 100% similarity]
R  +14   -6    umbrello/umlmodel/component.cpp [from:
umbrello/uml1model/component.cpp - 082% similarity]
R  +1    -1    umbrello/umlmodel/component.h [from:
umbrello/uml1model/component.h - 095% similarity]
R  +3    -3    umbrello/umlmodel/datatype.cpp [from:
umbrello/uml1model/datatype.cpp - 093% similarity]
R  +2    -2    umbrello/umlmodel/datatype.h [from:
umbrello/uml1model/datatype.h - 089% similarity]
R  +12   -9    umbrello/umlmodel/entity.cpp [from:
umbrello/uml1model/entity.cpp - 097% similarity]
R  +1    -1    umbrello/umlmodel/entity.h [from: umbrello/uml1model/entity.h -
098% similarity]
R  +2    -2    umbrello/umlmodel/entityattribute.cpp [from:
umbrello/uml1model/entityattribute.cpp - 097% similarity]
R  +1    -1    umbrello/umlmodel/entityattribute.h [from:
umbrello/uml1model/entityattribute.h - 097% similarity]
R  +0    -0    umbrello/umlmodel/entityconstraint.cpp [from:
umbrello/uml1model/entityconstraint.cpp - 100% similarity]
R  +0    -0    umbrello/umlmodel/entityconstraint.h [from:
umbrello/uml1model/entityconstraint.h - 100% similarity]
R  +11   -6    umbrello/umlmodel/enum.cpp [from: umbrello/uml1model/enum.cpp -
094% similarity]
R  +1    -1    umbrello/umlmodel/enum.h [from: umbrello/uml1model/enum.h - 096%
similarity]
R  +2    -2    umbrello/umlmodel/enumliteral.cpp [from:
umbrello/uml1model/enumliteral.cpp - 095% similarity]
R  +1    -1    umbrello/umlmodel/enumliteral.h [from:
umbrello/uml1model/enumliteral.h - 096% similarity]
R  +39   -34   umbrello/umlmodel/folder.cpp [from:
umbrello/uml1model/folder.cpp - 090% similarity]
R  +3    -3    umbrello/umlmodel/folder.h [from: umbrello/uml1model/folder.h -
093% similarity]
R  +2    -2    umbrello/umlmodel/foreignkeyconstraint.cpp [from:
umbrello/uml1model/foreignkeyconstraint.cpp - 098% similarity]
R  +1    -1    umbrello/umlmodel/foreignkeyconstraint.h [from:
umbrello/uml1model/foreignkeyconstraint.h - 098% similarity]
R  +4    -4    umbrello/umlmodel/instance.cpp [from:
umbrello/uml1model/instance.cpp - 096% similarity]
R  +1    -1    umbrello/umlmodel/instance.h [from:
umbrello/uml1model/instance.h - 097% similarity]
R  +7    -2    umbrello/umlmodel/instanceattribute.cpp [from:
umbrello/uml1model/instanceattribute.cpp - 092% similarity]
R  +1    -1    umbrello/umlmodel/instanceattribute.h [from:
umbrello/uml1model/instanceattribute.h - 097% similarity]
R  +3    -3    umbrello/umlmodel/node.cpp [from: umbrello/uml1model/node.cpp -
083% similarity]
R  +2    -2    umbrello/umlmodel/node.h [from: umbrello/uml1model/node.h - 087%
similarity]
R  +27   -14   umbrello/umlmodel/operation.cpp [from:
umbrello/uml1model/operation.cpp - 092% similarity]
R  +1    -1    umbrello/umlmodel/operation.h [from:
umbrello/uml1model/operation.h - 098% similarity]
R  +12   -8    umbrello/umlmodel/package.cpp [from:
umbrello/uml1model/package.cpp - 096% similarity]
R  +1    -1    umbrello/umlmodel/package.h [from: umbrello/uml1model/package.h
- 097% similarity]
R  +3    -3    umbrello/umlmodel/port.cpp [from: umbrello/uml1model/port.cpp -
081% similarity]
R  +2    -2    umbrello/umlmodel/port.h [from: umbrello/uml1model/port.h - 087%
similarity]
R  +12   -5    umbrello/umlmodel/stereotype.cpp [from:
umbrello/uml1model/stereotype.cpp - 089% similarity]
R  +2    -2    umbrello/umlmodel/stereotype.h [from:
umbrello/uml1model/stereotype.h - 095% similarity]
R  +6    -2    umbrello/umlmodel/template.cpp [from:
umbrello/uml1model/template.cpp - 089% similarity]
R  +1    -1    umbrello/umlmodel/template.h [from:
umbrello/uml1model/template.h - 096% similarity]
R  +0    -0    umbrello/umlmodel/umlassociationlist.h [from:
umbrello/uml1model/umlassociationlist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlattributelist.cpp [from:
umbrello/uml1model/umlattributelist.cpp - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlattributelist.h [from:
umbrello/uml1model/umlattributelist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlcanvasobject.cpp [from:
umbrello/uml1model/umlcanvasobject.cpp - 100% similarity]
R  +1    -1    umbrello/umlmodel/umlcanvasobject.h [from:
umbrello/uml1model/umlcanvasobject.h - 098% similarity]
R  +0    -0    umbrello/umlmodel/umlclassifierlist.h [from:
umbrello/uml1model/umlclassifierlist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlclassifierlistitemlist.cpp [from:
umbrello/uml1model/umlclassifierlistitemlist.cpp - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlclassifierlistitemlist.h [from:
umbrello/uml1model/umlclassifierlistitemlist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlentityattributelist.cpp [from:
umbrello/uml1model/umlentityattributelist.cpp - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlentityattributelist.h [from:
umbrello/uml1model/umlentityattributelist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlentityconstraintlist.cpp [from:
umbrello/uml1model/umlentityconstraintlist.cpp - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlentityconstraintlist.h [from:
umbrello/uml1model/umlentityconstraintlist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlentitylist.h [from:
umbrello/uml1model/umlentitylist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlenumliterallist.h [from:
umbrello/uml1model/umlenumliterallist.h - 100% similarity]
R  +59   -29   umbrello/umlmodel/umlobject.cpp [from:
umbrello/uml1model/umlobject.cpp - 093% similarity]
R  +4    -4    umbrello/umlmodel/umlobject.h [from:
umbrello/uml1model/umlobject.h - 098% similarity]
R  +0    -0    umbrello/umlmodel/umlobjectlist.cpp [from:
umbrello/uml1model/umlobjectlist.cpp - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlobjectlist.h [from:
umbrello/uml1model/umlobjectlist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlobjectprivate.h [from:
umbrello/uml1model/umlobjectprivate.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umloperationlist.h [from:
umbrello/uml1model/umloperationlist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umlpackagelist.h [from:
umbrello/uml1model/umlpackagelist.h - 100% similarity]
R  +7    -5    umbrello/umlmodel/umlrole.cpp [from:
umbrello/uml1model/umlrole.cpp - 097% similarity]
R  +2    -2    umbrello/umlmodel/umlrole.h [from: umbrello/uml1model/umlrole.h
- 092% similarity]
R  +0    -0    umbrello/umlmodel/umlstereotypelist.h [from:
umbrello/uml1model/umlstereotypelist.h - 100% similarity]
R  +0    -0    umbrello/umlmodel/umltemplatelist.h [from:
umbrello/uml1model/umltemplatelist.h - 100% similarity]
R  +6    -3    umbrello/umlmodel/uniqueconstraint.cpp [from:
umbrello/uml1model/uniqueconstraint.cpp - 096% similarity]
R  +1    -1    umbrello/umlmodel/uniqueconstraint.h [from:
umbrello/uml1model/uniqueconstraint.h - 097% similarity]
R  +3    -3    umbrello/umlmodel/usecase.cpp [from:
umbrello/uml1model/usecase.cpp - 083% similarity]
R  +2    -2    umbrello/umlmodel/usecase.h [from: umbrello/uml1model/usecase.h
- 087% similarity]
M  +16   -16   umbrello/umlscene.cpp
M  +2    -2    umbrello/umlscene.h
M  +5    -5    umbrello/umlwidgets/activitywidget.cpp
M  +3    -3    umbrello/umlwidgets/activitywidget.h
M  +3    -3    umbrello/umlwidgets/actorwidget.cpp
M  +2    -2    umbrello/umlwidgets/actorwidget.h
M  +3    -3    umbrello/umlwidgets/artifactwidget.cpp
M  +2    -2    umbrello/umlwidgets/artifactwidget.h
M  +2    -2    umbrello/umlwidgets/associationline.cpp
M  +2    -2    umbrello/umlwidgets/associationline.h
M  +17   -17   umbrello/umlwidgets/associationwidget.cpp
M  +4    -4    umbrello/umlwidgets/associationwidget.h
M  +6    -6    umbrello/umlwidgets/associationwidgetrole.cpp
M  +3    -3    umbrello/umlwidgets/associationwidgetrole.h
M  +3    -3    umbrello/umlwidgets/boxwidget.cpp
M  +2    -2    umbrello/umlwidgets/boxwidget.h
M  +3    -3    umbrello/umlwidgets/categorywidget.cpp
M  +3    -3    umbrello/umlwidgets/categorywidget.h
M  +6    -6    umbrello/umlwidgets/classifierwidget.cpp
M  +2    -2    umbrello/umlwidgets/classifierwidget.h
M  +7    -7    umbrello/umlwidgets/combinedfragmentwidget.cpp
M  +3    -3    umbrello/umlwidgets/combinedfragmentwidget.h
M  +2    -2    umbrello/umlwidgets/componentwidget.cpp
M  +2    -2    umbrello/umlwidgets/componentwidget.h
M  +5    -5    umbrello/umlwidgets/datatypewidget.cpp
M  +3    -3    umbrello/umlwidgets/datatypewidget.h
M  +2    -2    umbrello/umlwidgets/diagramproxywidget.cpp
M  +3    -3    umbrello/umlwidgets/diagramproxywidget.h
M  +4    -4    umbrello/umlwidgets/entitywidget.cpp
M  +3    -3    umbrello/umlwidgets/entitywidget.h
M  +4    -4    umbrello/umlwidgets/enumwidget.cpp
M  +3    -3    umbrello/umlwidgets/enumwidget.h
M  +5    -5    umbrello/umlwidgets/floatingdashlinewidget.cpp
M  +3    -3    umbrello/umlwidgets/floatingdashlinewidget.h
M  +6    -6    umbrello/umlwidgets/floatingtextwidget.cpp
M  +3    -3    umbrello/umlwidgets/floatingtextwidget.h
M  +7    -7    umbrello/umlwidgets/forkjoinwidget.cpp
M  +3    -3    umbrello/umlwidgets/forkjoinwidget.h
M  +3    -3    umbrello/umlwidgets/linkwidget.cpp
M  +3    -3    umbrello/umlwidgets/linkwidget.h
M  +8    -8    umbrello/umlwidgets/messagewidget.cpp
M  +4    -4    umbrello/umlwidgets/messagewidget.h
M  +3    -3    umbrello/umlwidgets/nodewidget.cpp
M  +2    -2    umbrello/umlwidgets/nodewidget.h
M  +5    -5    umbrello/umlwidgets/notewidget.cpp
M  +3    -3    umbrello/umlwidgets/notewidget.h
M  +5    -5    umbrello/umlwidgets/objectnodewidget.cpp
M  +3    -3    umbrello/umlwidgets/objectnodewidget.h
M  +5    -5    umbrello/umlwidgets/objectwidget.cpp
M  +3    -3    umbrello/umlwidgets/objectwidget.h
M  +3    -3    umbrello/umlwidgets/packagewidget.cpp
M  +2    -2    umbrello/umlwidgets/packagewidget.h
M  +6    -6    umbrello/umlwidgets/pinportbase.cpp
M  +2    -2    umbrello/umlwidgets/pinportbase.h
M  +5    -5    umbrello/umlwidgets/preconditionwidget.cpp
M  +3    -3    umbrello/umlwidgets/preconditionwidget.h
M  +5    -5    umbrello/umlwidgets/regionwidget.cpp
M  +3    -3    umbrello/umlwidgets/regionwidget.h
M  +7    -7    umbrello/umlwidgets/signalwidget.cpp
M  +3    -3    umbrello/umlwidgets/signalwidget.h
M  +5    -5    umbrello/umlwidgets/statewidget.cpp
M  +3    -3    umbrello/umlwidgets/statewidget.h
M  +6    -6    umbrello/umlwidgets/umlwidget.cpp
M  +2    -2    umbrello/umlwidgets/umlwidget.h
M  +3    -3    umbrello/umlwidgets/usecasewidget.cpp
M  +3    -3    umbrello/umlwidgets/usecasewidget.h
M  +2    -2    umbrello/umlwidgets/widgetbase.cpp
M  +32   -32   umbrello/umlwidgets/widgetbase.h
M  +2    -1    umbrello/version.h
M  +1    -1    unittests/CMakeLists.txt
M  +4    -4    unittests/testbase.h
M  +2    -2    unittests/testoptionstate.cpp
M  +2    -2    unittests/testumlobject.cpp

https://invent.kde.org/sdk/umbrello/commit/b57c76163be60160b4559cd6c7857e1c911196f3

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.