| Summary: | new diagram type: object diagram | ||
|---|---|---|---|
| Product: | [Applications] umbrello | Reporter: | Peter Piehler <ppiehler> |
| Component: | general | Assignee: | Umbrello Development Group <umbrello-devel> |
| Status: | CONFIRMED --- | ||
| Severity: | wishlist | CC: | kde.org, lukas, okellogg, ralf.habacker |
| Priority: | NOR | ||
| Version First Reported In: | 1.4.2 | ||
| Target Milestone: | --- | ||
| Platform: | Gentoo Packages | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
State of implemented use cases
State of implemented use cases (update) related xmi model file |
||
|
Description
Peter Piehler
2006-03-14 23:01:05 UTC
This would be a great addition that I encourage implementing with my vote. Useful for showing examples of actual instances and how they relate to each other at a specific point in time. A class diagram is a static diagram meaning their semantic should be valid at any point in time. Object (or instance) diagram are just a snapshot of instances at one point in time, showing how they relate to each other. From http://stackoverflow.com/questions/4202970/how-to-represent-class-instances-in-uml An "instance" diagram in UML is called an Object Diagram. (In reply to Ralf Habacker from comment #2) > From > http://stackoverflow.com/questions/4202970/how-to-represent-class-instances- > in-uml > > An "instance" diagram in UML is called an Object Diagram. from http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_objectdiagram.html Object Diagrams An object diagram may be considered a special case of a class diagram. Object diagrams use a subset of the elements of a class diagram in order to emphasize the relationship between instances of classes at some point in time. They are useful in understanding class diagrams. They don’t show anything architecturally different to class diagrams, but reflect multiplicity and roles. Git commit 28b760607df4af71f3563a61cc260379e92e17b9 by Ralf Habacker. Committed on 17/02/2017 at 09:12. Pushed by habacker into branch 'work/123633'. Extracted object diagram support from frameworks branch. This patch already contains a few fixes: - added missing copyright header - Fix api changes (constructor) Open issues: - Instance related setup in ClassGeneralPage seems to be duplicated -> needs review - missing icons for instance in tool bar - missing icons for object diagram in diagram toolbar list To test: - test load/save M +5 -0 umbrello/CMakeLists.txt M +4 -0 umbrello/basictypes.cpp M +1 -0 umbrello/basictypes.h M +1 -0 umbrello/cmds.h A +43 -0 umbrello/cmds/generic/cmdrenameumlobjectinstance.cpp [License: GPL (v2+)] A +36 -0 umbrello/cmds/generic/cmdrenameumlobjectinstance.h [License: GPL (v2+)] M +33 -8 umbrello/dialogs/pages/classgeneralpage.cpp M +2 -0 umbrello/dialogs/pages/classgeneralpage.h M +9 -0 umbrello/dialogs/pages/classifierlistpage.cpp A +67 -0 umbrello/dialogs/umlinstanceattributedialog.cpp [License: GPL (v2+)] A +41 -0 umbrello/dialogs/umlinstanceattributedialog.h [License: GPL (v2+)] A +54 -0 umbrello/dialogs/umlinstanceattributedialog.ui M +8 -0 umbrello/icon_utils.cpp M +2 -0 umbrello/icon_utils.h M +56 -2 umbrello/listpopupmenu.cpp M +7 -0 umbrello/listpopupmenu.h M +55 -3 umbrello/model_utils.cpp M +14 -1 umbrello/object_factory.cpp M +45 -16 umbrello/toolbarstateother.cpp M +1 -0 umbrello/umbrelloui.rc M +14 -0 umbrello/uml.cpp M +1 -0 umbrello/uml.h M +22 -1 umbrello/umllistview.cpp M +14 -2 umbrello/umllistviewitem.cpp M +3 -0 umbrello/umllistviewitem.h M +13 -0 umbrello/umlmodel/classifier.cpp A +112 -0 umbrello/umlmodel/instance.cpp [License: GPL (v2+)] A +41 -0 umbrello/umlmodel/instance.h [License: GPL (v2+)] A +104 -0 umbrello/umlmodel/instanceattribute.cpp [License: GPL (v2+)] A +51 -0 umbrello/umlmodel/instanceattribute.h [License: GPL (v2+)] M +1 -1 umbrello/umlmodel/package.cpp M +3 -0 umbrello/umlmodel/umlcanvasobject.cpp M +34 -1 umbrello/umlmodel/umlobject.cpp M +14 -1 umbrello/umlmodel/umlobject.h M +14 -0 umbrello/umlscene.cpp M +9 -1 umbrello/umlwidgets/associationwidget.cpp M +51 -3 umbrello/umlwidgets/classifierwidget.cpp M +1 -0 umbrello/umlwidgets/classifierwidget.h M +10 -1 umbrello/umlwidgets/widget_factory.cpp M +9 -1 umbrello/umlwidgets/widgetbase.cpp M +1 -0 umbrello/umlwidgets/widgetbase.h M +14 -4 umbrello/worktoolbar.cpp M +3 -1 umbrello/worktoolbar.h https://commits.kde.org/umbrello/28b760607df4af71f3563a61cc260379e92e17b9 Git commit 96b5ddc666ee22cab013c5a78b37a3c2fb4a1b1d by Ralf Habacker. Committed on 17/02/2017 at 11:21. Pushed by habacker into branch 'work/123633'. Add icon for object diagram. M +1 -0 umbrello/icons.qrc M +1 -0 umbrello/pics/CMakeLists.txt A +- -- umbrello/pics/diag_object.png A +765 -0 umbrello/pics/sources/diag_object.svg https://commits.kde.org/umbrello/96b5ddc666ee22cab013c5a78b37a3c2fb4a1b1d Branch work/123633 has been merged into master.
The following fixes has been applied after the merge to git master to fix issues with the implementation:
1c382a7 Fixup of c91a4bf.
e5fd427 Do not write unrelated xmi attributes for UMLInstance.
c91a4bf Do not write unrelated xmi attributes for instance widgets.
509d7a2 umbrello-diagrams.dtd: Add element 'instancewidget'.
9676daf Keep getting widget name in ClassifierWidget::paint() in sync with ClassifierWidget::calculateSize().
09347ce Enable drag and drop of instance widgets from list view.
cb210c0 Rename class CmdRenameUMLObjectInstance to CmdRenameUMLInstance.
1702611 Merge duplicate references to i18n("Instance name:") into UMLObject::toI18nString().
317ccaf Fix incorrect i18n name for ot_Instance in UMLObject::toI18nString().
7372cd8 Keep instance and class name edit widget in the same order in ClassGeneralPage.
de2c7a8 Remove duplicated implementation for entering instance name in class ClassGeneralPage.
1732503 Move UMLObject::m_instanceName to UMLInstance where it belongs.
111e448 Limit object diagram support to master branch for now.
3a03de1 Fix duplicated label imported from frameworks branch.
f459e4b Change order of "rename" context menu entries for object and instance widgets.
8bab98e Add layout config files for object diagrams.
beee90f Cleanup code for case WidgetBase::wt_Object in ListPopupMenu::insertSingleSelectionMenu().
abb0b7e Fix bug showing "New"->"Class" in object diagrams context menu.
8cc52e3 Indention fix.
343297d Add missing ':' to UMLInstance objects in UMLObject::toI18nString().
fb7630d Indention fix.
077b5ac Fix instance attribute width calculation for displaying instances in ClassifierWidget.
6ff72fc Fix calculating of width in ClassifierWidget on showing instances.
a4294f9 Add loading cursors from embedded pixmaps.
dfc5c0a Indention fix.
859d9b0 Merge multiple usage of i18n("Rename object...")
796b901 Add implementation of ListPopupMenu::mt_Rename_Object for instance widgets.
3b3eb3c Allow assocations between instances.
61a916f Add default diagram name for object diagrams.
Remaining issues:
Implementation does not follow UML 1.4 standard because of using umbrello specific XMI tag UML:InstanceAttribute. Additional UMLInstance is the classifier and do not references a classifier which creates non sharable and incomplete classifiers.
Git commit 576a4346ba591796142d716b2dab00fc86ae5708 by Ralf Habacker. Committed on 02/03/2017 at 06:48. Pushed by habacker into branch 'master'. Refactor UMLInstance to be more UML and XMI 1.4 compatible. - 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 M +0 -2 CMakeLists.txt M +1 -1 umbrello/CMakeLists.txt M +1 -1 umbrello/cmds.h R +13 -14 umbrello/cmds/generic/cmdrenameumlinstancetype.cpp [from: umbrello/cmds/generic/cmdrenameumlinstance.cpp - 056% similarity] R +17 -13 umbrello/cmds/generic/cmdrenameumlinstancetype.h [from: umbrello/cmds/generic/cmdrenameumlinstance.h - 055% similarity] M +4 -5 umbrello/dialogs/pages/classgeneralpage.cpp M +98 -17 umbrello/uml1model/instance.cpp M +11 -4 umbrello/uml1model/instance.h M +1 -2 umbrello/umlwidgets/associationwidget.cpp M +23 -9 umbrello/umlwidgets/classifierwidget.cpp M +3 -0 umbrello/umlwidgets/widget_factory.cpp https://commits.kde.org/umbrello/576a4346ba591796142d716b2dab00fc86ae5708 Created attachment 104418 [details]
State of implemented use cases
Created attachment 104420 [details]
State of implemented use cases (update)
Created attachment 104421 [details]
related xmi model file
(In reply to Ralf Habacker from comment #6) > [...] > Remaining issues: > Implementation does not follow UML 1.4 standard because of using umbrello > specific XMI tag UML:InstanceAttribute. In the upcoming commit I change <UML:InstanceAttribute> to <slot>, I believe this is more in line with UML 1.4. Furthermore, a slot does not replicate the UMLAttribute but instead has an XML attribute named "attribute" referencing the xmi.id of the corresponding <UML:Attribute>. The slot only adds the XML attribute "value" giving the concrete value for the UMLAttribute. Git commit e491e53a40413183c8ba2177d1228debca493e02 by Oliver Kellogg. Committed on 05/01/2021 at 20:32. Pushed by okellogg into branch 'master'. umbrello/uml1model/umlcanvasobject.cpp - In function uniqChildName change case UMLObject::ot_InstanceAttribute to UMLObject::ot_Instance. M +2 -2 umbrello/uml1model/umlcanvasobject.cpp https://invent.kde.org/sdk/umbrello/commit/e491e53a40413183c8ba2177d1228debca493e02 Git commit 5015ce47e0a547428668c3243aa933abdbf0c6d2 by Oliver Kellogg. Committed on 05/01/2021 at 21:18. Pushed by okellogg into branch 'master'. umbrello/umlwidgets/associationwidget.cpp - In function setUMLObject add TODO note on case ot_InstanceAttribute and comment this case out. M +4 -1 umbrello/umlwidgets/associationwidget.cpp https://invent.kde.org/sdk/umbrello/commit/5015ce47e0a547428668c3243aa933abdbf0c6d2 Git commit ef4241900e0f65b2c9e4b3b902baefca3a8468fb by Oliver Kellogg. Committed on 05/01/2021 at 20:59. Pushed by okellogg into branch 'master'. umbrello/menus/listpopupmenu.cpp - In function insertContainerItems(KMenu*, bool, bool, bool) add call to insert(mt_Instance, menu). M +2 -1 umbrello/menus/listpopupmenu.cpp https://invent.kde.org/sdk/umbrello/commit/ef4241900e0f65b2c9e4b3b902baefca3a8468fb Git commit 3203b16acd7adfbed909bdfe7be40eb5c302dad0 by Oliver Kellogg.
Committed on 06/01/2021 at 14:26.
Pushed by okellogg into branch 'master'.
Further work on UML Instances. Main changes:
- Design cleanup: UMLInstance is slaved to UMLClassifier.
Prominently, UMLInstance does not duplicate the UML attributes but
holds references to the UML attributes. The only additional item
stored in UMLInstanceAttribute is the concrete attribute value.
- Inheritance cleanup:
- UMLInstanceAttribute is derived from UMLObject.
- UMLInstance is derived from UMLObject (this might be changed to
UMLCanvasObject in future).
- Improvements in ClassifierWidget for handling instances.
- In list view,
- in the menu popping up on right click on a class there is an
additional choice "Instance". When selected, the attributes of
the class are automatically transformed into the instance attributes
of the new instance;
- when a classifier derived instance has been created, an instance
attribute value can be modified by double clicking on the instance
attribute. Note that attribute _name_ change is not possible here;
name change shall be done only using the master classifier.
- Improved XMI format for saving UMLInstanceAttribute.
Detailed changes:
umbrello/uml1model/instance.h
- Extend class documentation. Distinguish standalone instance from
instance slaved to classifier.
- Inherit from UMLObject instead of from UMLClassifier.
- Add Q_OBJECT declaration.
- At constructor add optional argument UMLClassifier *classifier
defaulting to nullptr.
- Remove setter/getter for classifier name.
- At function setClassifierCmd add optional argument bool emitSignal
defaulting to true.
- Remove function createAttribute (attribute creation and removal is
done only via UMLClassifier; instance attributes are strictly slaved
to the classifier attributes).
- Add function findChildObjectById(Uml::ID::Type) returning pointer to
UMLInstanceAttribute.
- New type AttributeValues is a typedef of QList<UMLInstanceAttribute*>.
It contains the attribute values in case this UMLInstance is slaved
to a classifier.
- Add function getAttrValues returning AttributeValues&.
- Remove member m_classifier.
The related classifier is now stored in UMLObject::m_pSecondary.
- Add member m_attrValues of type AttributeValues.
- Add public slots attributeAdded(UMLClassifierListItem*) and
attributeRemoved(UMLClassifierListItem*). In case the instance is
slaved to a classifier they are connected to the corresponding signals
of m_classifier.
umbrello/uml1model/instance.cpp
- In constructor,
- remove call to Object_Factory::createUMLObject for creating the
master class;
- assign m_classifier from argument `c';
- call setClassifierCmd(c, false).
- Adapt functions setClassifier and setClassifierCmd to replacement of
m_classifier by UMLObject::m_pSecondary.
- In function setClassifierCmd, if classifier is non null then
- create a UMLInstanceAttribute for each of the classifier's
attributes and fill m_attrValues;
- connect the classifier's attributeAdded/attributeRemoved signals to
the instance's corresponding slots.
- Adjust function classifier() to m_pSecondary possibly being null (in
case of an untyped instance).
- New function findChildObjectById seeks the given ID in the XMI IDs of
m_attrValues and returns pointer to the UMLInstanceAttribute if found.
- New function getAttrValues returns m_attrValues.
- Adjust function saveToXMI1 to use of m_pSecondary for the classifier.
- Adjust function load1 to load the instance attributes from XML tag
"slot" instead of "UML:InstanceAttribute".
- Adjust function resolveRef to the possibility of m_pSecondary
legitimately being nullptr.
- In new slot function attributeAdded, add UMLInstanceAttribute
corresponding to the UMLAttribute into m_attrValues.
- In new slot function attributeRemoved, iterate over m_attrValues and
test whether the given item is equal to one of the InstanceAttribute's
parent. Remove the matching instance attribute from m_attrValues.
umbrello/uml1model/instanceattribute.{h,cpp}
- Extend class documentation mentioning that the UMLInstanceAttribute is
strictly slaved to its corresponding classifier's UMLAttribute.
- Inherit from UMLObject instead of from UMLAttribute.
- At constructor,
- change type of `parent' to UMLInstance* to more precisely express
the expected parent type;
- replace arguments `name', `id', `s', `type' by argument umlAttr of
type UMLAttribute*.
UMLObject::m_pSecondary is used for saving the master attribute.
- Remove explicit constructor with single argument `parent'.
- Add accessors setAttribute, getAttribute.
- Remove accessors setAttributes, getAttributes.
- New function toString returns the textual notation for the instance
attribute.
- Remove member m_attributes.
- Add member m_value.
umbrello/uml1model/instanceattribute.cpp
- In new accessor functions setAttribute/getAttribute manipulate
UMLObject::m_pSecondary.
In function setAttribute require the incoming umlAttr to be non null.
- In new accessor functions setValue/getValue manipulate m_value.
- In function saveToXMI1:
- Replace tag "UML:InstanceAttribute" by "slot".
This is somewhat more UML 1.4 compliant and is more in line with
UML2 InstanceSpecification save format.
- Replace saving of XML attribute "attributes" by "attribute"
referencing the parent UMLAttribute XMI ID.
- Replace saving of XML attribute "initialValue" by "value" writing
member m_value.
- Change function load1 commensurate to saveToXMI1. Load XML attribute
"attribute" into m_SecondaryId. If m_SecondaryId can be resolved ad
hoc then set m_pSecondary to the master UMLAttribute, else defer
resolution to the resolveRef() pass.
umbrello/cmds/generic/cmdrenameumlinstancetype.{h,cpp}
- Remove. Reason: Renaming the instance's associated classifier is not
supported. Rather, the classifier itself shall be renamed.
umbrello/CMakeLists.txt
- Remove cmds/generic/cmdrenameumlinstancetype.cpp from libcmds_SRCS.
umbrello/cmds.h
- Remove #include "cmds/generic/cmdrenameumlinstancetype.h".
umbrello/dialogs/pages/classgeneralpage.cpp
- In function apply() non null m_pObject remove call to
m_pObject->asUMLInstance()->setClassifierName().
umbrello/dialogs/umlinstanceattributedialog.{h,cpp}
- #include "instanceattribute.h" instead of attribute.h.
- At constructor change argument
UMLAttribute *pAttribute
to
UMLInstanceAttribute *pInstanceAttr.
- Change private member
UMLAttribute *m_pAttribute
to
UMLInstanceAttribute *m_pInstanceAttr.
- Remove slots section with slotNameChanged(const QString &).
umbrello/dialogs/umlinstanceattributedialog.cpp
- #include "attribute.h" instead of classifier.h.
- In constructor:
- Remove signal textChanged() to slotNameChanged() connection.
- Set ui->nameLE ReadOnly - renaming of the master classifier shall be
done via the classifier dialog.
- Initialize text of ui->valueLE to pInstanceAttr->getValue(), or if
empty then to pInstanceAttr->getAttribute()->getInitialValue().
- In function apply():
- Remove logic related to changing the classifier name.
- Call m_pInstanceAttr->setValue(value) and
m_pInstanceAttr->emitModified().
umbrello/uml1model/classifier.cpp
- In function takeItem remove case UMLObject::ot_InstanceAttribute.
Reason: subordinates() no longer contain instance attributes because
class UMLInstanceAttribute does not inherit UMLClassifierListItem.
umbrello/umlwidgets/classifierwidget.{h,cpp}
- At constructor change type of argument `c' from UMLClassifier* to
UMLObject*. Reason: UMLInstance does not inherit UMLClassifier.
umbrello/umlwidgets/classifierwidget.cpp
- In function displayedMembers, if umlc is null and m_umlObject is a
UMLInstance and `ot' is ot_Attribute then set umlc to
m_umlObject->asUMLInstance()->classifier().
- In function calculateSize,
- if umlc is null and m_umlObject is a UMLInstance then set umlc to
m_umlObject->asUMLInstance()->classifier();
- adjust code to the possibility that m_umlObject is legitimately a
nullptr.
- In function displayedAttributes call displayedMembers() with argument
UMLObject::ot_Attribute regardless of baseType().
Reason: Function displayedMembers handles UMLInstance autonomously.
- In function setClassAssociationWidget improve error message for case
!classifier().
- In function paint() :
- If umlc is null and m_umlObject is a UMLInstance then set umlc to
m_umlObject->asUMLInstance()->classifier();
- Adjust code to the possibility of m_umlObject legitimately being a
nullptr;
- In code for drawing name,
- streamline calculation of displayedName;
- if baseType() is wt_Object or wt_Instance then enable underlining.
- In code for drawing attributes call drawMembers() with argument
UMLObject::ot_Attribute regardless of baseType().
Reason: Function drawMembers handles UMLInstance autonomously.
- In function drawMembers :
- Local bool drawInstanceAttributes is set true when m_umlObject is a
UMLInstance and argument `ot' is ot_Attribute.
- Return without action if umlc is null and drawInstanceAttributes is
false.
- If drawInstanceAttributes is true then
- local UMLInstance::AttributeValues ialist is filled using
m_umlObject->asUMLInstance()->getAttrValues();
- umlc is set to m_umlObject->asUMLInstance()->classifier().
- For iterating over `list' replace foreach-loop by for-loop.
Reason: Index `i' is used for indexing both `list' and `ialist'.
If drawInstanceAttributes is true then the name is taken from
list.at(i) and the value is taken from ialist.at(i).
- In function slotMenuSelection remove case mt_InstanceAttribute from
classifier list item handling.
Reason: UMLInstanceAttribute is not a UMLClassifierListItem.
umbrello/umllistviewitem.{h,cpp}
- Rename function addClassifierListItem to addChildItem and change its
`child' argument type to UMLObject*.
Reason: The function is extended to handle instance attributes (which
are not of type UMLClassifierListItem).
- At functions deleteChildItem and findChildObject change argument type
to UMLObject*. Reason: The functions are extended to handle instance
attributes (which are not of type UMLClassifierListItem).
- At type ChildObjectMap change key of QMap from UMLClassifierListItem*
to UMLObject*. Reason: The map now also stores instance attributes.
umbrello/umllistviewitem.cpp
- In function updateObject handle case (ot == ot_InstanceAttribute).
umbrello/umllistview.cpp
- In function slotMenuSelection add case ListPopupMenu::mt_Instance.
- In function mayHaveChildItems return false for case ot_Instance.
Reason: UMLInstanceAttribute is not a UMLClassifierListItem.
- In function connectNewObjectsSlots case UMLObject::ot_Instance remove
connecting of childObjectAdded.
Reason: On constructing new UMLInstance the instance attributes are
automatically added using the master classifier.
Adding/removing attributes is done at the classifier only; dependent
instances are updated automatically by a different signal connection.
- In function moveObject handle case lvt_Instance alongside Interface/
Enum/Datatype.
- In function addNewItem case !Model_Utils::typeIsClassifierList(type),
- local bool instanceOfClass is true if type is lvt_Instance and
parent is a UMLClassifier;
- local `package' is set to parent->umlPackage() if instanceOfClass
is true;
- if instanceOfClass is true then construct list view items for the
UMLInstance::AttributeValues of object->asUMLInstance().
- In function isUnique add handling of UMLListViewItem::lvt_Instance.
- In function loadChildrenFromXMI add handling of lvt_InstanceAttribute.
umbrello/object_factory.cpp
- In function createNewUMLObject case UMLObject::ot_Instance, if
parentPkg is a UMLClassifier then
- local temporary UMLClassifier *c acts as shorthand for
parentPkg->asUMLClassifier();
- call to o->asUMLInstance()->setClassifierCmd(c) automatically
constructs the instance attributes corresponding to the attributes
of `c';
- parentPkg is set to c->umlPackage() to normalize parentage for the
new UMLInstance.
- In function createChildObject :
- In switch (type) remove case UMLObject::ot_InstanceAttribute.
Reason: We use special logic for creating instance attributes.
- Before returning, check that returnObject can be cast to
UMLClassifierListItem* and log an error if it can't.
umbrello/model_utils.cpp
- In function findObjectInList handle case UMLObject::ot_Instance
separately from classifier derived types.
Reason: UMLInstance is not a UMLClassifier.
- In function isClassifierListitem return false for type
UMLObject::ot_InstanceAttribute.
Reason: UMLInstanceAttribute is not a UMLClassifierListItem.
- In function typeIsCanvasWidget return true for case lvt_Instance.
- In function typeIsClassifierList return false for type
UMLListViewItem::lvt_InstanceAttribute.
Reason: UMLInstanceAttribute is not a UMLClassifierListItem.
- In function typeIsAllowedInType,
- for case lvt_Attribute return (parentType == lvt_Class);
- for case lvt_InstanceAttribute return (parentType == lvt_Instance).
- In function typeIsAllowedInDiagram :
- In case Uml::DiagramType::Class accept UMLObject::ot_Instance.
This prepares for using class diagram in style of UML2 composite
structure diagram.
- In case Uml::DiagramType::Object accept UMLObject::ot_Instance.
umbrello/assocrules.cpp
- In m_AssocRules[] AssociationType Coll_Mesg_Sync and Coll_Mesg_Async,
- permit wt_Instance as widgetA/widgetB;
- permit combinations of wt_Object/wt_Instance as widgetA/widgetB.
This prepares for supporting instances in collaboration diagrams.
umbrello/version.h
- Increase XMI_FILE_VERSION to "1.7.2" due to changed save format of
UMLInstanceAttribute.
M +0 -1 umbrello/CMakeLists.txt
M +6 -0 umbrello/assocrules.cpp
M +2 -3 umbrello/cmds.h
D +0 -42 umbrello/cmds/generic/cmdrenameumlinstancetype.cpp
D +0 -40 umbrello/cmds/generic/cmdrenameumlinstancetype.h
M +1 -2 umbrello/dialogs/pages/classgeneralpage.cpp
M +14 -28 umbrello/dialogs/umlinstanceattributedialog.cpp
M +4 -7 umbrello/dialogs/umlinstanceattributedialog.h
M +27 -11 umbrello/model_utils.cpp
M +19 -12 umbrello/object_factory.cpp
M +1 -11 umbrello/uml1model/classifier.cpp
M +120 -99 umbrello/uml1model/instance.cpp
M +48 -14 umbrello/uml1model/instance.h
M +83 -34 umbrello/uml1model/instanceattribute.cpp
M +27 -13 umbrello/uml1model/instanceattribute.h
M +51 -11 umbrello/umllistview.cpp
M +24 -14 umbrello/umllistviewitem.cpp
M +5 -5 umbrello/umllistviewitem.h
M +17 -13 umbrello/umlscene.cpp
M +83 -60 umbrello/umlwidgets/classifierwidget.cpp
M +2 -2 umbrello/umlwidgets/classifierwidget.h
M +1 -1 umbrello/version.h
M +3 -2 umbrello/worktoolbar.cpp
https://invent.kde.org/sdk/umbrello/commit/3203b16acd7adfbed909bdfe7be40eb5c302dad0
Git commit 3337da29ac1b938a6a5bb704620ee226332d8171 by Oliver Kellogg. Committed on 07/01/2021 at 06:54. Pushed by okellogg into branch 'master'. Followup to commit 3203b16a work on UML Instances, > Inheritance cleanup: > - UMLInstance is derived from UMLObject (this might be changed to > UMLCanvasObject in future). umbrello/uml1model/instance.{h,cpp} - Derive UMLInstance from UMLCanvasObject. - Remove function findChildObjectById, use inherited function. - Remove type AttributeValues and function getAttrValues, use function subordinates() of superclass. - Remove member m_attrValues, it is obsoleted by UMLCanvasObject member m_List. umbrello/umlwidgets/classifierwidget.cpp - Synchronize function drawMembers with the above changes. umbrello/umllistview.cpp - In function connectNewObjectsSlots fix indentation of switch cases. - Synchronize functions addNewItem and loadChildrenFromXMI with the changes in class UMLInstance. M +14 -34 umbrello/uml1model/instance.cpp M +4 -20 umbrello/uml1model/instance.h M +53 -46 umbrello/umllistview.cpp M +10 -4 umbrello/umlwidgets/classifierwidget.cpp https://invent.kde.org/sdk/umbrello/commit/3337da29ac1b938a6a5bb704620ee226332d8171 Git commit 9cd1e80cabc347a3dd07e9de3e68d13cc040fd57 by Oliver Kellogg. Committed on 07/01/2021 at 11:34. Pushed by okellogg into branch 'master'. Create listview item for untyped UMLInstance after loading from XMI: umbrello/uml1model/instance.cpp - In function resolveRef add calls to maybeSignalObjectCreated(). M +5 -4 umbrello/uml1model/instance.cpp https://invent.kde.org/sdk/umbrello/commit/9cd1e80cabc347a3dd07e9de3e68d13cc040fd57 Git commit c80e77755dfb457363000c4deacae0633b41073b by Oliver Kellogg.
Committed on 07/01/2021 at 18:28.
Pushed by okellogg into branch 'master'.
Followup to commit 3203b16a - Clean up ClassifierWidget construction:
- The constructor which had originally taken a UMLClassifier* argument
had been changed to take UMLObject* in order to be usable also for
UMLInstance. Changing the argument type to UMLObject* introduced an
error in runtime method selection due to overlap with the constructor
taking UMLPackage* argument. Solution:
umbrello/umlwidgets/classifierwidget.{h,cpp}
- At constructor taking UMLObject* argument revert argument type to
UMLClassifier*.
- Add new constructor taking UMLInstance* argument.
M +28 -7 umbrello/umlwidgets/classifierwidget.cpp
M +2 -1 umbrello/umlwidgets/classifierwidget.h
https://invent.kde.org/sdk/umbrello/commit/c80e77755dfb457363000c4deacae0633b41073b
|