Преглед изворни кода

Merge https://bitbucket.org/jpcgt/flatcam/src/master into add_flipx_flipy_function

Marius Stanciu пре 7 година
родитељ
комит
174c809e0a
2 измењених фајлова са 33 додато и 7 уклоњено
  1. 31 5
      FlatCAMTool.py
  2. 2 2
      MeasurementTool.py

+ 31 - 5
FlatCAMTool.py

@@ -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):

+ 2 - 2
MeasurementTool.py

@@ -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)