[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