https://bugs.kde.org/show_bug.cgi?id=427532
--- Comment #2 from Oliver Kellogg <okell...@users.sourceforge.net> --- Git commit 9817ffc9eeef527181ee40904e76352796f4955a by Oliver Kellogg. Committed on 11/10/2020 at 20:54. Pushed by okellogg into branch 'master'. https://bugs.kde.org/show_bug.cgi?id=427532#c1 Remove default datatypes of previous Active Language: umbrello/uml1model/datatype.{h,cpp} - Add member variable m_isActive initialized to true by constructor. - Add accessor functions setActive(bool active = true), isActive(). - Peripheral cleanup: Override function load1 in lieu of loadFromXMI1. umbrello/uml1model/datatype.cpp - In function load1, set m_isActive true if XMI attribute "isActive" does not exist or if its value is not "false". - In function saveToXMI1, setAttribute "isActive" to "false" on the classifierElement if m_isActive is false. umbrello/uml1model/package.{h,cpp} - At function containedObjects add optional argument includeInactive of type bool defaulting to false. If includeInactive is true then include datatypes with isActive() false in the returned list. umbrello/uml1model/package.cpp - In function removeObject do not delete a datatype from its package but just set its isActive flag false. umbrello/uml1model/folder.cpp - In function load1 avoid duplicate creation of datatype when its name already exists in m_objects. umbrello/umldoc.{h,cpp} - At function datatypes() add optional argument includeInactive of type bool defaulting to false. If includeInactive is true then include datatypes which have isActive() == false in the returned list. - New function removeDatatype(const QString &name) removes a datatype from m_datatypeRoot->containedObjects() by name. umbrello/umldoc.cpp - In function createDatatype, - at call to m_datatypeRoot->containedObjects() provide argument includeInactive = true; - if Model_Utils::findUMLObject() returns non null and the retuned object is a UMLDatatype then set its isActive flag to true and emit sigObjectCreated; do not call Object_Factory::createUMLObject(). umbrello/uml.cpp - In function setGenerator, if m_codegen is non null on entry then query m_codegen->defaultDatatypes() and call m_doc->removeDatatype() for each name returned. umbrello/umllistview.cpp - In function slotObjectCreated, if object->baseType() is ot_Datatype then check that the isActive flag is true; else refuse to create the UMLListViewItem. umbrello/main.cpp - At function initDocument : - Add argument progLang of type Uml::ProgrammingLanguage::Enum. - If UMLApp::app()->newDocument() is called then follow it by UMLApp::app()->setActiveLanguage(progLang). - If a file shall be opened, the programming language set by the <XMI.extensions> <codegeneration> element in the file shall take precedence over the language set via command line parameter, therefore do not call UMLApp::app()->setActiveLanguage. - Adjust main program to change of function initDocument. umbrello/version.h - Increase XMI_FILE_VERSION to "1.6.19" due to the <UML:DataType> new attribute "isActive". M +4 -4 umbrello/main.cpp M +5 -0 umbrello/uml.cpp M +29 -7 umbrello/uml1model/datatype.cpp M +5 -1 umbrello/uml1model/datatype.h M +17 -0 umbrello/uml1model/folder.cpp M +39 -4 umbrello/uml1model/package.cpp M +1 -1 umbrello/uml1model/package.h M +31 -5 umbrello/umldoc.cpp M +2 -1 umbrello/umldoc.h M +9 -1 umbrello/umllistview.cpp M +1 -1 umbrello/version.h https://invent.kde.org/sdk/umbrello/commit/9817ffc9eeef527181ee40904e76352796f4955a -- You are receiving this mail because: You are watching all bug changes.