[Uml-devel] branches/work/soc-umbrello/umbrello

Gopala Krishna A krishna.ggk at gmail.com
Thu Jul 10 16:18:45 UTC 2008


SVN commit 830499 by gopala:

First appearance of context menu in New* based uml widgets.


 M  +1 -1      listpopupmenu.cpp  
 M  +3 -3      listpopupmenu.h  
 M  +12 -1     newumlwidget.cpp  
 M  +2 -0      newumlwidget.h  
 M  +10 -2     textitem.cpp  
 M  +2 -0      textitem.h  


--- branches/work/soc-umbrello/umbrello/listpopupmenu.cpp #830498:830499
@@ -241,7 +241,7 @@
 }
 
 //ListPopupMenu for a canvas widget
-ListPopupMenu::ListPopupMenu(QWidget * parent, NewUMLRectWidget * object,
+ListPopupMenu::ListPopupMenu(QWidget * parent, NewUMLWidget * object,
                              bool multi, bool unique)
         : KMenu(parent)
 {
--- branches/work/soc-umbrello/umbrello/listpopupmenu.h #830498:830499
@@ -20,7 +20,7 @@
 #include "icon_utils.h"
 
 class UMLView;
-class NewUMLRectWidget;
+class NewUMLWidget;
 class ClassifierWidget;
 class UMLCategory;
 class UMLObject;
@@ -234,7 +234,7 @@
      * @param unique   True if multiple selected items all have
      *                 the same type (e.g. Class, Interface)
      */
-    ListPopupMenu(QWidget* parent, NewUMLRectWidget* object, bool multi = false, bool unique = false);
+    ListPopupMenu(QWidget* parent, NewUMLWidget* object, bool multi = false, bool unique = false);
 
     /**
      * Standard deconstructor.
@@ -419,7 +419,7 @@
     union TriggerObject{
         UMLView* m_View;
         UMLObject* m_Object;
-        NewUMLRectWidget* m_Widget;
+        NewUMLWidget* m_Widget;
     };
 
     /**
--- branches/work/soc-umbrello/umbrello/newumlwidget.cpp #830498:830499
@@ -19,6 +19,7 @@
 
 #include "newumlwidget.h"
 
+#include "listpopupmenu.h"
 #include "uml.h"
 #include "umlobject.h"
 #include "umlscene.h"
@@ -26,7 +27,7 @@
 #include "widget_utils.h"
 
 #include <QtCore/QTimer>
-#include <kdebug.h>
+#include <QtGui/QGraphicsSceneContextMenuEvent>
 
 // Documentation for some inline and other entities.
 
@@ -575,6 +576,16 @@
 }
 
 /**
+ * Reimplemented to show appropriate context menu.
+ */
+void NewUMLWidget::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
+{
+    ListPopupMenu menu(0, this, false, false);
+    menu.exec(event->screenPos());
+    event->accept();
+}
+
+/**
  * This virtual method is called by this NewUMLWidget base class to
  * notify subclasses about the need to change its boundingRect
  * Example. When a new pen is set on a widget which paints
--- branches/work/soc-umbrello/umbrello/newumlwidget.h #830498:830499
@@ -117,6 +117,8 @@
     void slotInit();
 
 protected:
+    void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
+
     virtual void updateGeometry();
 
     virtual void umlObjectChanged(UMLObject *old);
--- branches/work/soc-umbrello/umbrello/textitem.cpp #830498:830499
@@ -19,10 +19,13 @@
 
 #include "textitem.h"
 
-#include <QtGui/QTextOption>
-#include <QtGui/QTextDocument>
+#include "umlnamespace.h"
+
+#include <QtGui/QGraphicsSceneContextMenuEvent>
 #include <QtGui/QPainter>
 #include <QtGui/QStyleOptionGraphicsItem>
+#include <QtGui/QTextDocument>
+#include <QtGui/QTextOption>
 
 // Inline and other documentation BEGIN
 
@@ -249,4 +252,9 @@
     update();
 }
 
+void TextItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
+{
+    event->ignore();
+}
+
 #include "textitem.moc"
--- branches/work/soc-umbrello/umbrello/textitem.h #830498:830499
@@ -24,6 +24,7 @@
 #include <QtGui/QBrush>
 #include <QtGui/QFont>
 
+class QGraphicsSceneContextMenuEvent;
 
 class TextItem : public QGraphicsTextItem
 {
@@ -79,6 +80,7 @@
 protected:
     void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
     void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
+    void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
 
 private:
     QBrush m_hoverBrush;




More information about the umbrello-devel mailing list