1. 01 Jul, 2014 3 commits
  2. 30 Jun, 2014 3 commits
  3. 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
  4. 26 Jun, 2014 3 commits
  5. 25 Jun, 2014 6 commits
  6. 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
  7. 23 Jun, 2014 2 commits
  8. 22 Jun, 2014 1 commit
  9. 21 Jun, 2014 3 commits
    • Oliver Kellogg's avatar
      umbrello/petaltree2uml.{h,cpp} · 8a1e776b
      Oliver Kellogg authored
      umbrello/import_rose.cpp
      - Merge function importLogicalPresentations() into importView().
        To this end, add following arguments to importView():
        QString firstNodeName : Name of first node in the root category
                                is checked to be equal to this name.
        QString presentationsName : Name of attribute containing diagrams
                                is checked to be equal to this name.
      
      umbrello/petaltree2uml.cpp
      - In function clean() remove from start of `str' not only "Logical View::"
        but all scope prefixes. This mitigates oversizing of UseCaseView ellipse.
      - In function handleAssocView() avoid dereferencing roleview_list when NULL.
      - In function umbrellify(),
        - Handle component package "SubSystem" alongside "Class_Category".
        - At objType "Class" implement stereotype "CORBAInterface".
        - Add handling of "module" aka "Component".
        - At objType "Association" fix null-pointer test of `roles'.
        - Handle "Module_Diagram" and "Process_Diagram" alongside "ClassDiagram"
          and "UseCaseDiagram".
        - Handle "ModView" and "SubSysView" alongside "CategoryView", "ClassView",
          and "UseCaseView".
      8a1e776b
    • Oliver Kellogg's avatar
      umbrello/petaltree2uml.cpp · f0e30894
      Oliver Kellogg authored
      - In function handleAssocView(),
        - Add support for attribute "roleview_list";
        - Produce precise uError() message on errors decoding supplier/client.
      - In function umbrellify(),
        - At objType "Class_Category" add missing parentPkg->addObject(o).
        - At objTypes "Class" and "UseCase",
          - Use Object_Factory instead of Import_Utils for createUMLObject();
          - Add missing parentPkg->addObject(o).
        - At objType "Association" add missing assoc->setUMLPackage(parentPkg).
        - At objTypes "ClassDiagram" and "UseCaseDiagram" loop over `atts',
          - At objTypes "CategoryView" / "ClassView" / "UseCaseView" use default
            values for attributes "width" and "height" when not found;
          - Support objType "AssociationViewNew";
          - At objType "NoteView" add an artificial "quidu" attribute onto `attr'.
      - In function petalTree2Uml() use Object_Factory instead of Import_Utils for
        createUMLObject().
      f0e30894
    • Oliver Kellogg's avatar
      umbrello/petaltree2uml.cpp · 27fc09f2
      Oliver Kellogg authored
      - New function handleAssocView() is factored from function umbrellify()
        handling of objType "InheritView".
      - In function umbrellify(),
        - Extend handling of objType "InheritView" to also apply to "RealizeView";
        - Handle objTypes "AttachView" and "UsesView".
      27fc09f2
  10. 20 Jun, 2014 2 commits
    • Oliver Kellogg's avatar
      umbrello/petaltree2uml.cpp · ed4e5120
      Oliver Kellogg authored
      - In SuperclassesReader and RealizationsReader function insertAtParent()
        set the UMLPackage of `assoc' to that of m_classifier.
      - In function umbrellify(), map objType "InheritView" to AssociationWidget
        with association type Generalization.
      ed4e5120
    • Oliver Kellogg's avatar
      Address TODO of commit 8344d5f4, · 86642f13
      Oliver Kellogg authored
      > [...]
      > - At the code past the (parentPkg_sav != NULL) return,
      >  - Remove call to importLogicalView(); the code farther above in effect
      >    performs importLogicalView() but at the same time deals with controlled
      >    units. Perhaps should be refactored for clean separation of these tasks.
      
      umbrello/import_rose.cpp
      - In function loadFromMDL() move import of views for the case
        (parentPkg == NULL) from function petalTree2Uml(PetalNode*, UMLPackage*)
        to here.
      
      umbrello/petaltree2uml.h
      - Publish functions importView() and importLogicalPresentations(), they are
        now called directly by function loadFromMDL()
      - At function petalTree2Uml(PetalNode *root, UMLPackage *parentPkg) remove
        default value of parentPkg.
      
      umbrello/petaltree2uml.cpp
      - In class ParametersReader function insertAtParent(), generate a new ID for
        `item' if item->id() returns Uml::ID::None.
        Reason: Rose "object Parameter" does not include "quid".
      - In function umbrellify(PetalNode *node, UMLPackage *parentPkg),
        - Remove default value at parentPkg;
        - At objType "Class" support stereotype "Actor";
        - Support objType "UseCase";
        - At "ClassDiagram" and "UseCaseDiagram" nested objType "NoteView", map
          attribute "label" to NoteWidget documentation.
      - Remove function folderType();
      - Remove function umbrellify(PetalNode*, const QString&, UMLListViewItem*);
      - At function importLogicalPresentations(PetalNode*, const QString &) add
        argument UMLPackage *parent and pass parent into call of umbrellify();
      - Remove function importLogicalView();
      - At function importView() replace argument UMLListViewItem *lvParent by
        UMLPackage *parent.
      86642f13
  11. 19 Jun, 2014 5 commits
    • Oliver Kellogg's avatar
      umbrello/petaltree2uml.cpp function umbrellify(PetalNode*, UMLPackage*) · 8344d5f4
      Oliver Kellogg authored
      - At handling of (objType == "ClassDiagram" || objType == "UseCaseDiagram"),
        choose Uml::DiagramType and umlDoc->rootFolder() according to objType.
      - At the code past the (parentPkg_sav != NULL) return,
        - Remove call to importLogicalView(); the code farther above in effect
          performs importLogicalView() but at the same time deals with controlled
          units. Perhaps should be refactored for clean separation of these tasks.
        - Move call to importLogicalPresentations(root, "root_usecase_package") to
          the "import Use Case View" section.
      8344d5f4
    • Oliver Kellogg's avatar
    • Oliver Kellogg's avatar
      umbrello/import_rose.cpp · 9f2c0115
      Oliver Kellogg authored
      - Implementation-level global variable `dirPrefix' of type QString buffers
        the directory prefix of the main .mdl file passed into user level call to
        loadFromMDL(). It is used for finding .cat/.sub controlled units if no
        path is given at their definition.
      
      umbrello/import_rose.{h,cpp}
      - At function loadFromMDL() change type of parameter `file' from QIODevice
        to QFile. Reason: Body of loadFromMDL() requires access to fileName().
      - New function mdlPath() returns dirPrefix.
      
      umbrello/petaltree2uml.cpp
      - At function fetchLocation() add arguments `width' and `height'.
        Reason: Encapsulate scaling by `Rose2Qt' in function body.
      - In function handleControlledUnit(), before attempting instantiation of
        QFile(file_name), if file_name is not an absolute path then prefix
        Import_Rose::mdlPath() to it.
      - In function petalTree2Uml(),
        - Store original parentPkg in parentPkg_sav;
        - Before for-loop calling umbrellify(), if parentPkg is NULL then set
          parentPkg to umldoc->rootFolder(Uml::ModelType::Logical);
        - At shortcut "return true" after for-loop, test parentPkg_sav in lieu of
          parentPkg.
      9f2c0115
    • Oliver Kellogg's avatar
      merge master@8f5cdde · 69f447eb
      Oliver Kellogg authored
      69f447eb
    • Oliver Kellogg's avatar
      umbrello/umldoc.cpp · 8f5cdde1
      Oliver Kellogg authored
      - In function openDocument(), at tests of `filetype' extension,
        - Simplify tests by using QString::endsWith() in lieu of indexOf(QRegExp())
        - Add test for extension ".tar.gz";
      - At function createDiagramName(), fix doc of @param name.
      
      umbrello/umllistview.cpp
      - At start of function slotDiagramCreated(), replace condition for premature
        return `m_doc->loading()' by `findItem(id)'.
        Reason: On importing Rose MDL files, diagram listview items are not created
        at all if (m_doc->loading()) is in effect.
      - At function setDocument(), fix typo in doc.
      8f5cdde1
  12. 18 Jun, 2014 1 commit
    • Oliver Kellogg's avatar
      umbrello/petaltree2uml.cpp · f1e73f10
      Oliver Kellogg authored
      - The Rose diagram coordinate system is roughly twice the scale of Qt.
        I.e. when going from Rose diagram-object location/width/height to Qt,
        we need to shrink everything.
        New constant Rose2Qt lets use configure the exact factor.
      - In function fetchLocation(),
        - add missing "return" at case !ok;
        - multiply `x' and `y' by Rose2Qt on constructing QPointF() return value.
      - In function fetchDouble(), multiply value by Rose2Qt on returning.
      - In function umbrellify(), declare `width' and `height' before start of
        for-loop over `atts'. Reason: Rose diagram locations denote the object
        CENTER thus on seeing a "location",
        - for X we must subtract width/2
        - for Y we must subtract height/2
      f1e73f10
  13. 16 Jun, 2014 5 commits
    • Oliver Kellogg's avatar
      umbrello/version.h : Increment XMI_FILE_VERSION due to · 8cb24713
      Oliver Kellogg authored
      - added saving/loading of "widgetaid" in <portwidget>
      - removed saving/loading of "textid" in <pinwidget>
      8cb24713
    • Oliver Kellogg's avatar
      b251041c
    • Oliver Kellogg's avatar
      Completion of commit cd1979ae - factoring of abstract base class from · 17e9a744
      Oliver Kellogg authored
      PinWidget and PortWidget
      
      umbrello/widgets/pinportbase.{h,cpp}
      - Factor new abstract base class PinPortBase from Portwidget and PinWidget.
      
      umbrello/widgets/pinwidget.{h,cpp}
      umbrello/widgets/portwidget.{h,cpp}
      - Inherit from PinPortBase instead of UMLWidget.
      
      umbrello/widgets/activitywidget.{h,cpp}
      - New signal sigActMoved(diffX,diffY) is emitted when the activity widget is
        moved (cf. ComponentWidget::sigCompMoved).
      - Reimplement UMLWidget virtual function moveWidgetBy() for adding emission
        of sigActMoved().
      
      umbrello/widgets/widget_factory.cpp
      - In function createWidget(UMLScene*,UMLObject*) case ot_Port, call
        PinPortBase::attachToOwner() on the newly constructed PortWidget.
      - In function makeWidgetFromXMI() case tag == "pinwidget", call
        PinPortBase::attachToOwner() on the newly constructed PinWidget.
      
      umbrello/listpopupmenu.cpp
      - In function insertSingleSelectionMenu() case WidgetBase::wt_Pin add
        mt_NameAsTooltip. Set action checked if the object's floatingTextWidget()
        returns NULL.
      
      umbrello/umlscene.cpp
      - In function setupNewWidget() admit w->baseType() == WidgetBase::wt_Pin to
        call to PinPortBase::attachToOwner().
      
      umbrello/CMakeLists.txt
      - Add widgets/pinportbase.cpp to libwidgets_SRCS.
      
      CCBUG:335399
      17e9a744
    • Oliver Kellogg's avatar
      umbrello/widgets/umlwidget.cpp · 3405bbfb
      Oliver Kellogg authored
      - In function onWidget() comment out uDebug() calls.
      3405bbfb
    • Oliver Kellogg's avatar
      umbrello/widgets/componentwidget.h · 5c76aaff
      Oliver Kellogg authored
      - At documentation of signal sigCompMoved() add @param's diffX and diffY.
      5c76aaff
  14. 15 Jun, 2014 1 commit
    • Oliver Kellogg's avatar
      Preparation of PortWidget for factoring of abstract base class shared with · cd1979ae
      Oliver Kellogg authored
      PinWidget (see "BTW" at https://bugs.kde.org/show_bug.cgi?id=335399#c1)
      
      umbrello/widgets/portwidget.{h,cpp}
      - New function ownerWidget() encapsulates extraction of owning
        ComponentWidget.
        Motivation: Implementation will be different for PinWidget.
      - Rename function attachToOwningComponent() to attachToOwner().
        Motivation: Prepare for applicability to PinWidget (owner of PinWidget is
        not a ComponentWidget).
      - Rename function slotCompMoved() to slotOwnerMoved().
        Motivation: Prepare for applicability to PinWidget.
      - In C++ body, replace mentions of m_umlObject->name() by name().
        Motivation: Prepare for common base class (m_umlObject of PinWidget is
        always NULL).
      
      umbrello/umlscene.cpp
      - Adapt function setupNewWidget() to renamed PortWidget function
        attachToOwner().
      cd1979ae