This commit is contained in:
Marius Stanciu 2018-06-05 19:06:53 +03:00
commit 174c809e0a
2 changed files with 33 additions and 7 deletions

View File

@ -32,13 +32,39 @@ class FlatCAMTool(QtGui.QWidget):
self.menuAction = None
def install(self, icon=None, separator=None):
if icon is None:
self.menuAction = self.app.ui.menutool.addAction(self.toolName)
def install(self, icon=None, separator=None, **kwargs):
before = None
# 'pos' is the menu where the Action has to be installed
# if no 'pos' kwarg is provided then by default our Action will be installed in the menutool
# as it previously was
if 'pos' in kwargs:
pos = kwargs['pos']
else:
self.menuAction = self.app.ui.menutool.addAction(icon, self.toolName)
pos = self.app.ui.menutool
# 'before' is the Action in the menu stated by 'pos' kwarg, before which we want our Action to be installed
# if 'before' kwarg is not provided, by default our Action will be added in the last place.
if 'before' in kwargs:
before = (kwargs['before'])
# create the new Action
self.menuAction = QtGui.QAction(self)
# if provided, add an icon to this Action
if icon is not None:
self.menuAction.setIcon(icon)
# set the text name of the Action, which will be displayed in the menu
self.menuAction.setText(self.toolName)
# add a ToolTip to the new Action
# self.menuAction.setToolTip(self.toolTip) # currently not available
# insert the action in the position specified by 'before' and 'pos' kwargs
pos.insertAction(before, self.menuAction)
# if separator parameter is True add a Separator after the newly created Action
if separator is True:
self.app.ui.menutool.addSeparator()
pos.addSeparator()
self.menuAction.triggered.connect(self.run)
def run(self):

View File

@ -29,8 +29,8 @@ class Measurement(FlatCAMTool):
self.click_subscription = None
self.move_subscription = None
def install(self, icon=None, separator=None):
FlatCAMTool.install(self, icon, separator)
def install(self, icon=None, separator=None, **kwargs):
FlatCAMTool.install(self, icon, separator, **kwargs)
self.app.ui.right_layout.addWidget(self)
self.app.plotcanvas.mpl_connect('key_press_event', self.on_key_press)