1. 04 Jul, 2014 6 commits
  2. 03 Jul, 2014 9 commits
  3. 02 Jul, 2014 1 commit
  4. 01 Jul, 2014 5 commits
    • Ralf Habacker's avatar
    • Oliver Kellogg's avatar
      umbrello/uml.cpp · 3b638620
      Oliver Kellogg authored
      - In function setGenerator() revert part of commit ea25b643 which returns
        preexisting m_codegen if (m_codegen->language() == pl).
      
      umbrello/codegenerators/codegenerator.{h,cpp}
      - New virtual function finalizeRun() with empty default implementation can
        be reimplemented by concrete code generators to perform additional
        cleanups or other actions that can only be performed once all code has
        been written. The function is called in writeCodeToFile() after return
        from writeListedCodeDocsToFile().
      
      umbrello/codegenerators/simplecodegenerator.cpp
      - In function writeCodeToFile(), utilize writeCodeToFile(concepts) for
        minimizing code duplication.
      - In function writeCodeToFile(UMLClassifierList&),
        - do not writeClass(c) if Model_Utils::isCommonDataType(c->name());
        - call finalizeRun() after foreach loop over `concepts'.
      
      umbrello/codegenerators/ada/adawriter.{h,cpp}
      - Add `static' on declaration of functions isOOClass() and packageName().
      - New function declareClass() factors trunk of Ada declaration which is
        common to partial (public) and full (private) view.
      - Reimplement function finalizeRun() from CodeGenerator: Cumulative
        generation of the private part is moved from writeClass() to here.
      - New member m_pkgsGenerated is required for closing opened files in
        finalizeRun().
      - New member m_classesGenerated is required for ensuring that order of code
        generation is consistent with order of dependencies among classifiers in
        the package.
      
      umbrello/codegenerators/ada/adawriter.cpp function writeClass()
      - Return immediately without further action if `c' is already present in
        m_classesGenerated.
      - If `pkg' is found in m_pkgsGenerated then do not open file / write
        initial declarations but instead use the value() of the PackageFileMap::
        iterator found for `file'.
      - If `pkg' is found in m_pkgsGenerated then:
        - Open file and write initial declarations; in loop over `imports', do not
          write "with" if packageName(con) does not match `pkg'.
        - Assign `file' into m_pkgsGenerated[pkg].
      - Before declaring the Ada type mapped from `c', loop over
        c->getSuperClasses() and ensure that superclasses in same package are
        written beforehand.
      - Move all aggregation/composition/attribute handling to finalizeRun().
      
      umbrello/codegenerators/ada/adawriter.cpp function reservedKeywords()
      - Add Ada2005 reserved word "interface".
      
      BUG:336933
      3b638620
    • Oliver Kellogg's avatar
    • Oliver Kellogg's avatar
      umbrello/codegenerators/cpp/cppwriter.cpp · bbc6f725
      Oliver Kellogg authored
      - In function writeClassDecl() remove extraneous generated ';' after closing
        of namespace.
      bbc6f725
    • Ralf Habacker's avatar
      Fix bug not placing class N1::A below N1 package in tree view. · b37eebda
      Ralf Habacker authored
      The problem was, that Import_Utils::createUMLObject() tries to find an object
      in different namespaces and only creates an uml object if not found.
      
      In the case of parsing a c++ import class specification we simply need
      to create the related uml class object in the current namespace, which
      is provided by the additional parameter "doNotSearch".
      
      Related test case is https://bugs.kde.org/show_bug.cgi?id=336810#c10
      
      CCBUG:368810
      b37eebda
  5. 30 Jun, 2014 3 commits
  6. 28 Jun, 2014 4 commits
    • Oliver Kellogg's avatar
      umbrello/dialogs/pages/classgeneralpage.{h,cpp} · b10cdc25
      Oliver Kellogg authored
      umbrello/dialogs/dialog_utils.{h,cpp}
      - Move function insertStereotypesSorted() from ClassGeneralPage to
        Dialog_Utils.
      
      umbrello/dialogs/pages/associationgeneralpage.{h,cpp}
      - Allow for selection of stereotype in place of name.
      b10cdc25
    • Oliver Kellogg's avatar
    • Oliver Kellogg's avatar
      (In reply to comment #4) · f90f771b
      Oliver Kellogg authored
      > [...] Unfortunately the fix seems not to be complete because with
      > the following testcase class GlobalA is shown in Logical View but
      > assigned to namespace NameSpace which is wrong.
      
      Here is the fix for this case.
      The fixing of your other test cases is still wide open, help appreciated.
      
      umbrello/codeimport/kdevcppparser/cpptree2uml.cpp
      - In function parseBaseClause(), before calling
        Import_Utils::createUMLObject() for creating the parent object, call
        Import_Utils::putAtGlobalScope(true). After creation of parent object,
        call Import_Utils::putAtGlobalScope(false).
      
      CCBUG:336810
      f90f771b
    • Oliver Kellogg's avatar
      umbrello/codeimport/kdevcppparser/cpptree2uml.cpp · 0160b7d8
      Oliver Kellogg authored
      - In function parseBaseClause() first call Import_Utils::createUMLObject()
        for creating the parent object coresponding to baseName, and then call
          Import_Utils::createGeneralization(UMLClassifier*, UMLClassifier*)
        with the parent object obtained.
      
      umbrello/codeimport/import_utils.cpp
      - At function
          createGeneralization(UMLClassifier *child, const QString &parentName)
        mention its shortcoming and mention the preferred solution as applied
        above.
      
      BUG:336810
      0160b7d8
  7. 26 Jun, 2014 3 commits
  8. 25 Jun, 2014 6 commits
  9. 24 Jun, 2014 1 commit
    • Oliver Kellogg's avatar
      (In reply to comment #21) · 8449eba5
      Oliver Kellogg authored
      > [...]
      > This test case contains multiple class diagrams and exposes a bug in the
      > current import code:
      > Only the last of the class diagrams actually show up.
      
      Here is the fix:
      
      umbrello/umllistview.cpp
      - In function slotDiagramCreated(), use return value from
        findUMLObject(scene->folder()) as the `parent' argument in call to
        UMLListViewItem constructor.
      - In function slotObjectCreated(), use return value from
        findUMLObject(object->umlPackage()) for `parentItem' instead of using
        determineParentItem(object).
      
      umbrello/widgets/widget_factory.cpp
      - In function createWidget() handle type UMLObject::ot_Folder alongside
        ot_Package.
      
      umbrello/import_rose.{h,cpp}
      - At function loadFromMDL() change return type to pointer-to-UMLPackage.
        On non NULL parentPkg return result from handleControlledUnit();
        on NULL parentPkg return UMLDoc::m_root[Uml::ModelType::Logical].
      
      umbrello/petaltree2uml.h
      - At function petalTree2Uml() change return type to pointer-to-UMLPackage.
      
      umbrello/petaltree2uml.{h,cpp}
      - At function handleControlledUnit() change return type to ptr-to-UMLPackage.
        Return object created for controlled unit.
      - New function diagramType() maps Rose diagram keyword to corresponding
        Uml::DiagramType::Enum.
      - In function umbrellify(),
        - At handling of Class_Category attribute logical_models and SubSystem
          attribute physical_models, for the non controlled-unit case add handling
          of attributes logical_presentations and physical_presentations.
          If unit_reference_list is non empty then create a UML object of type
          ot_Folder instead of ot_Package.
        - At handling of {Class,UseCase,Module_,Process_}Diagram employ function
          diagramType(). Use `parentPkg' cast to UMLFolder* as the rootFolder in
          call to umlDoc->createDiagram().
      - At function petalTree2Uml(),
        - Choose attribute to find based on
          umlDoc->rootFolderType(Model_Utils::rootPackage(parentPkg)) :
          - For Uml::ModelType::Logical seek logical_models;
          - For Uml::ModelType::Component seek physical_models.
        - At definition of `atts' use the PetalNode::attributes() of the `models'
          found.
        - Return pointer to the UMLFolder which is created for the controlled unit.
      
      CCBUG:81364
      8449eba5
  10. 23 Jun, 2014 2 commits