Просмотр исходного кода

- fixed a bug in editing a blank Gerber object
- added handlers for the Gerber Editor context menu

Marius Stanciu 6 лет назад
Родитель
Сommit
f1b034e50c
4 измененных файлов с 24 добавлено и 10 удалено
  1. 11 1
      FlatCAMApp.py
  2. 3 1
      README.md
  3. 5 5
      flatcamEditors/FlatCAMGrbEditor.py
  4. 5 3
      flatcamGUI/FlatCAMGUI.py

+ 11 - 1
FlatCAMApp.py

@@ -1365,16 +1365,26 @@ class App(QtCore.QObject):
         self.ui.popmenu_new_exc.triggered.connect(self.new_excellon_object)
         self.ui.popmenu_new_exc.triggered.connect(self.new_excellon_object)
         self.ui.popmenu_new_prj.triggered.connect(self.on_file_new)
         self.ui.popmenu_new_prj.triggered.connect(self.on_file_new)
 
 
+        # Geometry Editor
         self.ui.draw_line.triggered.connect(self.geo_editor.draw_tool_path)
         self.ui.draw_line.triggered.connect(self.geo_editor.draw_tool_path)
         self.ui.draw_rect.triggered.connect(self.geo_editor.draw_tool_rectangle)
         self.ui.draw_rect.triggered.connect(self.geo_editor.draw_tool_rectangle)
         self.ui.draw_cut.triggered.connect(self.geo_editor.cutpath)
         self.ui.draw_cut.triggered.connect(self.geo_editor.cutpath)
         self.ui.draw_move.triggered.connect(self.geo_editor.on_move)
         self.ui.draw_move.triggered.connect(self.geo_editor.on_move)
 
 
+        # Gerber Editor
+        self.ui.grb_draw_pad.triggered.connect(self.grb_editor.on_pad_add)
+        self.ui.grb_draw_pad_array.triggered.connect(self.grb_editor.on_pad_add_array)
+        self.ui.grb_draw_track.triggered.connect(self.grb_editor.on_track_add)
+        self.ui.grb_draw_region.triggered.connect(self.grb_editor.on_region_add)
+        self.ui.grb_copy.triggered.connect(self.grb_editor.on_copy_button)
+        self.ui.grb_delete.triggered.connect(self.grb_editor.on_delete_btn)
+        self.ui.grb_move.triggered.connect(self.grb_editor.on_move_button)
+
+        # Excellon Editor
         self.ui.drill.triggered.connect(self.exc_editor.exc_add_drill)
         self.ui.drill.triggered.connect(self.exc_editor.exc_add_drill)
         self.ui.drill_array.triggered.connect(self.exc_editor.exc_add_drill_array)
         self.ui.drill_array.triggered.connect(self.exc_editor.exc_add_drill_array)
         self.ui.drill_copy.triggered.connect(self.exc_editor.exc_copy_drills)
         self.ui.drill_copy.triggered.connect(self.exc_editor.exc_copy_drills)
 
 
-
         self.ui.zoomfit.triggered.connect(self.on_zoom_fit)
         self.ui.zoomfit.triggered.connect(self.on_zoom_fit)
         self.ui.clearplot.triggered.connect(self.clear_plots)
         self.ui.clearplot.triggered.connect(self.clear_plots)
         self.ui.replot.triggered.connect(self.plot_all)
         self.ui.replot.triggered.connect(self.plot_all)

+ 3 - 1
README.md

@@ -12,7 +12,9 @@ CAD program, and create G-Code for Isolation routing.
 12.04.2019
 12.04.2019
 
 
 - Gerber Editor: added support for Oblong type of aperture
 - Gerber Editor: added support for Oblong type of aperture
-- fixed an issue with automatically filled in aperture size when the edited Gerber file has no apertures; established an default with value 10 (according to Gerber specifications)
+- fixed an issue with automatically filled in aperture code when the edited Gerber file has no apertures; established an default with value 10 (according to Gerber specifications)
+- fixed a bug in editing a blank Gerber object
+- added handlers for the Gerber Editor context menu
 
 
 11.04.2019
 11.04.2019
 
 

+ 5 - 5
flatcamEditors/FlatCAMGrbEditor.py

@@ -472,7 +472,6 @@ class FCRegion(FCShapeTool):
             temp_points = [x for x in self.points]
             temp_points = [x for x in self.points]
             temp_points.append(data)
             temp_points.append(data)
             return DrawToolUtilityShape(LinearRing(temp_points).buffer(self.buf_val, join_style=1))
             return DrawToolUtilityShape(LinearRing(temp_points).buffer(self.buf_val, join_style=1))
-
         return None
         return None
 
 
     def make(self):
     def make(self):
@@ -508,7 +507,6 @@ class FCTrack(FCRegion):
             temp_points.append(data)
             temp_points.append(data)
 
 
             return DrawToolUtilityShape(LineString(temp_points).buffer(self.buf_val))
             return DrawToolUtilityShape(LineString(temp_points).buffer(self.buf_val))
-
         return None
         return None
 
 
     def on_key(self, key):
     def on_key(self, key):
@@ -1257,9 +1255,6 @@ class FlatCAMGrbEditor(QtCore.QObject):
         ## List of selected shapes.
         ## List of selected shapes.
         self.selected = []
         self.selected = []
 
 
-        self.move_timer = QtCore.QTimer()
-        self.move_timer.setSingleShot(True)
-
         self.key = None  # Currently pressed key
         self.key = None  # Currently pressed key
         self.modifiers = None
         self.modifiers = None
         self.x = None  # Current mouse cursor pos
         self.x = None  # Current mouse cursor pos
@@ -1269,6 +1264,11 @@ class FlatCAMGrbEditor(QtCore.QObject):
         self.snap_y = None
         self.snap_y = None
         self.pos = None
         self.pos = None
 
 
+        # signal that there is an action active like polygon or path
+        self.in_action = False
+        # this will flag if the Editor "tools" are launched from key shortcuts (True) or from menu toolbar (False)
+        self.launched_from_shortcuts = False
+
         def make_callback(thetool):
         def make_callback(thetool):
             def f():
             def f():
                 self.on_tool_select(thetool)
                 self.on_tool_select(thetool)

+ 5 - 3
flatcamGUI/FlatCAMGUI.py

@@ -1453,10 +1453,12 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
         self.draw_move = self.g_editor_cmenu.addAction(QtGui.QIcon('share/move32.png'), _("Move"))
         self.draw_move = self.g_editor_cmenu.addAction(QtGui.QIcon('share/move32.png'), _("Move"))
 
 
         self.grb_editor_cmenu = self.popMenu.addMenu(QtGui.QIcon('share/draw32.png'), _("Gerber Editor"))
         self.grb_editor_cmenu = self.popMenu.addMenu(QtGui.QIcon('share/draw32.png'), _("Gerber Editor"))
-        self.grb_draw_track = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/aperture32.png'), _("Pad"))
-        self.grb_draw_track = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/path32.png'), _("Track"))
-        self.grb_draw_zone = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/polygon32.png'), _("Region"))
+        self.grb_draw_pad = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/aperture32.png'), _("Pad"))
+        self.grb_draw_pad_array = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/padarray32.png'), _("Pad Array"))
+        self.grb_draw_track = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/track32.png'), _("Track"))
+        self.grb_draw_region = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/polygon32.png'), _("Region"))
         self.grb_editor_cmenu.addSeparator()
         self.grb_editor_cmenu.addSeparator()
+        self.grb_copy = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/copy.png'), _("Copy"))
         self.grb_delete = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/trash32.png'), _("Delete"))
         self.grb_delete = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/trash32.png'), _("Delete"))
         self.grb_move = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/move32.png'), _("Move"))
         self.grb_move = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/move32.png'), _("Move"))