From 2e61be739fee2e0947fe4d8c0b9f86f8a3262979 Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Sun, 17 Nov 2013 14:17:01 -0800 Subject: [PATCH] Don't copy the context menu of ViewBoxes. This allows customization of the context menu of a ViewBox simply by calling viewbox.menu.addAction(...). See issue #13. Also some cleanup. --- pyqtgraph/graphicsItems/ViewBox/ViewBox.py | 19 ++++--------------- .../graphicsItems/ViewBox/ViewBoxMenu.py | 2 +- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/pyqtgraph/graphicsItems/ViewBox/ViewBox.py b/pyqtgraph/graphicsItems/ViewBox/ViewBox.py index 5ab118f7..6e0a20d2 100644 --- a/pyqtgraph/graphicsItems/ViewBox/ViewBox.py +++ b/pyqtgraph/graphicsItems/ViewBox/ViewBox.py @@ -1054,26 +1054,15 @@ class ViewBox(GraphicsWidget): if ev.button() == QtCore.Qt.RightButton and self.menuEnabled(): ev.accept() self.raiseContextMenu(ev) - + def raiseContextMenu(self, ev): - #print "viewbox.raiseContextMenu called." - - #menu = self.getMenu(ev) menu = self.getMenu(ev) self.scene().addParentContextMenus(self, menu, ev) - #print "2:", [str(a.text()) for a in self.menu.actions()] - pos = ev.screenPos() - #pos2 = ev.scenePos() - #print "3:", [str(a.text()) for a in self.menu.actions()] - #self.sigActionPositionChanged.emit(pos2) + menu.popup(ev.screenPos().toPoint()) - menu.popup(QtCore.QPoint(pos.x(), pos.y())) - #print "4:", [str(a.text()) for a in self.menu.actions()] - def getMenu(self, ev): - self._menuCopy = self.menu.copy() ## temporary storage to prevent menu disappearing - return self._menuCopy - + return self.menu + def getContextMenus(self, event): if self.menuEnabled(): return self.menu.subMenus() diff --git a/pyqtgraph/graphicsItems/ViewBox/ViewBoxMenu.py b/pyqtgraph/graphicsItems/ViewBox/ViewBoxMenu.py index 5242ecdd..b508fd4b 100644 --- a/pyqtgraph/graphicsItems/ViewBox/ViewBoxMenu.py +++ b/pyqtgraph/graphicsItems/ViewBox/ViewBoxMenu.py @@ -275,4 +275,4 @@ class ViewBoxMenu(QtGui.QMenu): from .ViewBox import ViewBox - \ No newline at end of file +