From 2affe322ecc36f30f1560c53b8db51d48bbe1dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dennis=20G=C3=B6ries?= <43136580+dgoeries@users.noreply.github.com> Date: Wed, 13 Jan 2021 05:34:14 +0100 Subject: [PATCH] PlotItem: Fix enableMenu setting when passing a viewbox (#1496) * PlotItem: enableMenu setting when passing a viewbox --- pyqtgraph/graphicsItems/PlotItem/PlotItem.py | 8 +++-- .../PlotItem/tests/test_PlotItem.py | 33 +++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/pyqtgraph/graphicsItems/PlotItem/PlotItem.py b/pyqtgraph/graphicsItems/PlotItem/PlotItem.py index e6084b22..94617116 100644 --- a/pyqtgraph/graphicsItems/PlotItem/PlotItem.py +++ b/pyqtgraph/graphicsItems/PlotItem/PlotItem.py @@ -134,12 +134,14 @@ class PlotItem(GraphicsWidget): self.setLayout(self.layout) self.layout.setHorizontalSpacing(0) self.layout.setVerticalSpacing(0) - + if viewBox is None: - viewBox = ViewBox(parent=self) + viewBox = ViewBox(parent=self, enableMenu=enableMenu) self.vb = viewBox self.vb.sigStateChanged.connect(self.viewStateChanged) - self.setMenuEnabled(enableMenu, enableMenu) ## en/disable plotitem and viewbox menus + + # Enable or disable plotItem menu + self.setMenuEnabled(enableMenu, None) if name is not None: self.vb.register(name) diff --git a/pyqtgraph/graphicsItems/PlotItem/tests/test_PlotItem.py b/pyqtgraph/graphicsItems/PlotItem/tests/test_PlotItem.py index bad3555b..83d2531d 100644 --- a/pyqtgraph/graphicsItems/PlotItem/tests/test_PlotItem.py +++ b/pyqtgraph/graphicsItems/PlotItem/tests/test_PlotItem.py @@ -21,3 +21,36 @@ def test_PlotItem_shared_axis_items(orientation): with pytest.raises(RuntimeError): pi2.setAxisItems({orientation: ax1}) + + +def test_plotitem_menu_initialize(): + """Test the menu initialization of the plotitem""" + item = pg.PlotItem() + assert item.menuEnabled() is True + viewbox = item.vb + assert viewbox is not None + assert viewbox.menu is not None + assert viewbox.menuEnabled() is True + + item = pg.PlotItem(enableMenu=False) + assert item.menuEnabled() is False + viewbox = item.vb + assert viewbox is not None + assert viewbox.menu is None + assert viewbox.menuEnabled() is False + + viewbox = pg.ViewBox() + item = pg.PlotItem(viewBox=viewbox, enableMenu=False) + assert item.menuEnabled() is False + viewbox = item.vb + assert viewbox is not None + assert viewbox.menu is not None + assert viewbox.menuEnabled() is True + + viewbox = pg.ViewBox(enableMenu=False) + item = pg.PlotItem(viewBox=viewbox) + assert item.menuEnabled() is True + viewbox = item.vb + assert viewbox is not None + assert viewbox.menu is None + assert viewbox.menuEnabled() is False