diff --git a/README.md b/README.md index 2398e87b..28f29376 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ CAD program, and create G-Code for Isolation routing. - Gerber Editor: added some messages to warn user if no selection exists when trying to do aperture deletion or aperture geometry deletion - fixed version check +- added custom mouse cursors for some tools in Gerber Editor 16.04.2019 diff --git a/flatcamEditors/FlatCAMGrbEditor.py b/flatcamEditors/FlatCAMGrbEditor.py index fee5f331..71dbae67 100644 --- a/flatcamEditors/FlatCAMGrbEditor.py +++ b/flatcamEditors/FlatCAMGrbEditor.py @@ -36,6 +36,13 @@ class FCPad(FCShapeTool): self.name = 'pad' self.draw_app = draw_app + try: + QtGui.QGuiApplication.restoreOverrideCursor() + except: + pass + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_circle.png')) + QtGui.QGuiApplication.setOverrideCursor(self.cursor) + try: self.radius = float(self.draw_app.storage_dict[self.draw_app.last_aperture_selected]['size']) / 2 except KeyError: @@ -226,6 +233,13 @@ class FCPadArray(FCShapeTool): else: self.dont_execute = False + try: + QtGui.QGuiApplication.restoreOverrideCursor() + except: + pass + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_array.png')) + QtGui.QGuiApplication.setOverrideCursor(self.cursor) + self.storage_obj = self.draw_app.storage_dict[self.draw_app.last_aperture_selected]['solid_geometry'] self.steps_per_circ = self.draw_app.app.defaults["geometry_circle_steps"] @@ -593,7 +607,18 @@ class FCRegion(FCShapeTool): self.gridx_size = float(self.draw_app.app.ui.grid_gap_x_entry.get_value()) self.gridy_size = float(self.draw_app.app.ui.grid_gap_y_entry.get_value()) + self.temp_points = [] + # this will store the inflexion point in the geometry + self.inter_point = None + + try: + QtGui.QGuiApplication.restoreOverrideCursor() + except: + pass + + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero.png')) + QtGui.QGuiApplication.setOverrideCursor(self.cursor) self.start_msg = _("Click on 1st point ...") @@ -612,16 +637,18 @@ class FCRegion(FCShapeTool): self.gridy_size = float(self.draw_app.app.ui.grid_gap_y_entry.get_value()) def utility_geometry(self, data=None): + if len(self.points) == 0: + return DrawToolUtilityShape(Point(data).buffer(self.buf_val)) if len(self.points) == 1: - temp_points = [x for x in self.points] - temp_points.append(data) - return DrawToolUtilityShape(LineString(temp_points).buffer(self.buf_val, join_style=1)) + self.temp_points = [x for x in self.points] + self.temp_points.append(data) + return DrawToolUtilityShape(LineString(self.temp_points).buffer(self.buf_val, join_style=1)) if len(self.points) > 1: - temp_points = [x for x in self.points] - temp_points.append(data) - return DrawToolUtilityShape(LinearRing(temp_points).buffer(self.buf_val, join_style=1)) + self.temp_points = [x for x in self.points] + self.temp_points.append(data) + return DrawToolUtilityShape(LinearRing(self.temp_points).buffer(self.buf_val, join_style=1)) return None def make(self): @@ -657,6 +684,14 @@ class FCTrack(FCRegion): self.name = 'track' self.draw_app = draw_app + + try: + QtGui.QGuiApplication.restoreOverrideCursor() + except: + pass + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_path.png')) + QtGui.QGuiApplication.setOverrideCursor(self.cursor) + self.draw_app.app.inform.emit(_('Track Mode 1: 45 degrees ...')) self.mode = 1 @@ -1042,6 +1077,11 @@ class FCApertureSelect(DrawTool): self.grb_editor_app.hide_tool('all') self.grb_editor_app.hide_tool('select') + try: + QtGui.QGuiApplication.restoreOverrideCursor() + except: + pass + def set_origin(self, origin): self.origin = origin @@ -2660,8 +2700,14 @@ class FlatCAMGrbEditor(QtCore.QObject): self.app.panning_action = False else: if self.in_action is False: + try: + QtGui.QGuiApplication.restoreOverrideCursor() + except: + pass + if self.active_tool.complete is False and not isinstance(self.active_tool, FCApertureSelect): self.active_tool.complete = True + self.in_action = False self.delete_utility_geometry() self.select_tool('select') else: diff --git a/share/aero.png b/share/aero.png new file mode 100644 index 00000000..a5bc5981 Binary files /dev/null and b/share/aero.png differ diff --git a/share/aero_array.png b/share/aero_array.png new file mode 100644 index 00000000..e8a4a4f4 Binary files /dev/null and b/share/aero_array.png differ diff --git a/share/aero_buffer.png b/share/aero_buffer.png new file mode 100644 index 00000000..077ae73b Binary files /dev/null and b/share/aero_buffer.png differ diff --git a/share/aero_circle.png b/share/aero_circle.png new file mode 100644 index 00000000..42cfd73c Binary files /dev/null and b/share/aero_circle.png differ diff --git a/share/aero_path.png b/share/aero_path.png new file mode 100644 index 00000000..10e4a6df Binary files /dev/null and b/share/aero_path.png differ