[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [umbrello/394230-bug-fixing] umbrello: Fix adding ports to components on component diagram
From:       Ralf Habacker <null () kde ! org>
Date:       2018-09-17 11:35:51
Message-ID: E1g1rol-0003n8-Pd () code ! kde ! org
[Download RAW message or body]

Git commit 6377bb02345a82030ac7c0fa1b3bdea131cae6a6 by Ralf Habacker.
Committed on 17/09/2018 at 10:32.
Pushed by habacker into branch '394230-bug-fixing'.

Fix adding ports to components on component diagram

CCBUG:394230

M  +11   -0    umbrello/menus/widgetbasepopupmenu.cpp
M  +15   -0    umbrello/umlwidgets/umlwidget.cpp

https://commits.kde.org/umbrello/6377bb02345a82030ac7c0fa1b3bdea131cae6a6

diff --git a/umbrello/menus/widgetbasepopupmenu.cpp \
b/umbrello/menus/widgetbasepopupmenu.cpp index 1f14d0b10..abd230db5 100644
--- a/umbrello/menus/widgetbasepopupmenu.cpp
+++ b/umbrello/menus/widgetbasepopupmenu.cpp
@@ -617,6 +617,17 @@ void \
WidgetBasePopupMenu::insertSubMenuNew(WidgetBase::WidgetType type, KMenu *m  menu = \
makeNewMenu();  
     switch (type) {
+        case WidgetBase::wt_Actor:
+        case WidgetBase::wt_UseCase:
+            insert(mt_Actor, menu);
+            insert(mt_UseCase, menu);
+            break;
+        case WidgetBase::wt_Component:
+            insert(mt_Component, menu);
+            if (Settings::optionState().generalState.uml2)
+                insert(mt_Port, menu);
+            insert(mt_Artifact, menu);
+            break;
         case WidgetBase::wt_Class:
             insert(mt_Attribute, menu, \
                Icon_Utils::SmallIcon(Icon_Utils::it_Public_Attribute), \
                i18n("Attribute..."));
             insert(mt_Operation, menu, \
                Icon_Utils::SmallIcon(Icon_Utils::it_Public_Method), \
                i18n("Operation..."));
diff --git a/umbrello/umlwidgets/umlwidget.cpp b/umbrello/umlwidgets/umlwidget.cpp
index 732db13bc..e29796b3e 100644
--- a/umbrello/umlwidgets/umlwidget.cpp
+++ b/umbrello/umlwidgets/umlwidget.cpp
@@ -23,8 +23,11 @@
 #include "associationwidget.h"
 #include "floatingtextwidget.h"
 #include "notewidget.h"
+#include "object_factory.h"
 #include "idchangelog.h"
 #include "listpopupmenu.h"
+#include "port.h"
+#include "portwidget.h"
 #include "settingsdialog.h"
 #include "uml.h"
 #include "umldoc.h"
@@ -847,6 +850,18 @@ void UMLWidget::slotMenuSelection(QAction *trigger)
         break;
     }
 
+    case ListPopupMenu::mt_Port: {
+        // TODO: merge with ToolbarStateOneWidget::setWidget()
+        UMLPackage* component = umlObject()->asUMLPackage();
+        QString name = Model_Utils::uniqObjectName(UMLObject::ot_Port, component);
+        if (Dialog_Utils::askName(i18n("Enter Port Name"), i18n("Enter the port"), \
name)) { +            UMLPort *port = \
Object_Factory::createUMLObject(UMLObject::ot_Port, name, component)->asUMLPort(); +  \
UMLWidget *umlWidget = Widget_Factory::createWidget(umlScene(), port); +            \
umlScene()->setupNewWidget(umlWidget); +        }
+        break;
+    }
+
     case ListPopupMenu::mt_UseCase: {
         UMLUseCase *useCase = new UMLUseCase;
         UMLWidget *widget = new UseCaseWidget(umlScene(), useCase);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic