diff --git a/grum/menus/barmenu.py b/grum/menus/barmenu.py index 64121ef..4f528f5 100644 --- a/grum/menus/barmenu.py +++ b/grum/menus/barmenu.py @@ -1,13 +1,15 @@ from PyQt5.QtWidgets import QAction +from .menubase import MenuBase -class BarMenu: + +class BarMenu(MenuBase): def __init__(self, bar, name): + super().__init__() self.qmenu = qmenu = bar.addMenu(name) qmenu.triggered[QAction].connect(self.on_select) self.actions = {} - self.checkboxes = {} def on_select(self, p): txt = p.text() @@ -20,14 +22,5 @@ class BarMenu: self.qmenu.addAction(name) self.actions[name] = func - def addSeparator(self): - self.qmenu.addSeparator() - - def addCheckbox(self, name, state=False): - action = QAction(name, checkable=True, parent=self.qmenu) - action.setChecked(state) - self.qmenu.addAction(action) - self.checkboxes[name] = action - diff --git a/grum/menus/menubase.py b/grum/menus/menubase.py new file mode 100644 index 0000000..f244296 --- /dev/null +++ b/grum/menus/menubase.py @@ -0,0 +1,19 @@ +from PyQt5.QtWidgets import QAction + + +class MenuBase: + + def __init__(self): + self.checkboxes = {} + + def addSeparator(self): + self.qmenu.addSeparator() + + def addCheckbox(self, name, state=False): + action = QAction(name, checkable=True, parent=self.qmenu) + action.setChecked(state) + self.qmenu.addAction(action) + self.checkboxes[name] = action + + + diff --git a/grum/menus/rclickmenu.py b/grum/menus/rclickmenu.py index 644324c..375d0aa 100644 --- a/grum/menus/rclickmenu.py +++ b/grum/menus/rclickmenu.py @@ -2,10 +2,13 @@ from PyQt5.QtCore import Qt, QPoint from PyQt5.QtWidgets import QMenu, QAction from PyQt5.QtGui import QCursor +from .menubase import MenuBase -class RClickMenu: + +class RClickMenu(MenuBase): def __init__(self, obj): + super().__init__() self.obj = obj self.qmenu = QMenu() obj.setContextMenuPolicy(Qt.CustomContextMenu) @@ -19,8 +22,5 @@ class RClickMenu: action = QAction(name, triggered=func, parent=self.obj) # here, parent needs to be set self.qmenu.addAction(action) - def addSeparator(self): - self.qmenu.addSeparator() -