From 1da424e9fb85dc6ff4dbd202edab411f9b94b88f Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 23 Apr 2019 21:31:17 +0300 Subject: [PATCH] - added more custom mouse cursors in Geometry and Gerber Editors - RELEASE 8.914 --- README.md | 2 ++ flatcamEditors/FlatCAMGeoEditor.py | 19 +++++++++++++++++-- flatcamEditors/FlatCAMGrbEditor.py | 9 ++++++++- share/aero_arc.png | Bin 0 -> 6915 bytes share/aero_circle_geo.png | Bin 0 -> 6915 bytes share/aero_disc.png | Bin 0 -> 5350 bytes share/aero_semidisc.png | Bin 0 -> 5348 bytes share/aero_text.png | Bin 0 -> 5350 bytes 8 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 share/aero_arc.png create mode 100644 share/aero_circle_geo.png create mode 100644 share/aero_disc.png create mode 100644 share/aero_semidisc.png create mode 100644 share/aero_text.png diff --git a/README.md b/README.md index c63dfebb..f68f9f20 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ CAD program, and create G-Code for Isolation routing. - Gerber and Geometry Editors: fixed some issues with the Add Arc/Add Semidisc; in mode 132, the norm() function was not the one from numpy but from a FlatCAM Class. Also fixed some of the texts and made sure that when changing the mode, the current points are reset to prepare for the newly selected mode. - Fixed Measurement Tool to show the mouse coordinates on the status bar (it was broken at some point) - updated the translation files +- added more custom mouse cursors in Geometry and Gerber Editors +- RELEASE 8.914 22.04.2019 diff --git a/flatcamEditors/FlatCAMGeoEditor.py b/flatcamEditors/FlatCAMGeoEditor.py index f5973f5e..33cb6312 100644 --- a/flatcamEditors/FlatCAMGeoEditor.py +++ b/flatcamEditors/FlatCAMGeoEditor.py @@ -1936,7 +1936,7 @@ class FCCircle(FCShapeTool): QtGui.QGuiApplication.restoreOverrideCursor() except: pass - self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_circle.png')) + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_circle_geo.png')) QtGui.QGuiApplication.setOverrideCursor(self.cursor) self.start_msg = _("Click on Center point ...") @@ -1984,6 +1984,13 @@ class FCArc(FCShapeTool): DrawTool.__init__(self, draw_app) self.name = 'arc' + try: + QtGui.QGuiApplication.restoreOverrideCursor() + except: + pass + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_arc.png')) + QtGui.QGuiApplication.setOverrideCursor(self.cursor) + self.start_msg = _("Click on Center point ...") self.draw_app.app.inform.emit(_("Click on Center point ...")) @@ -2314,7 +2321,7 @@ class FCPath(FCPolygon): QtGui.QGuiApplication.restoreOverrideCursor() except: pass - self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_path.png')) + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_path5.png')) QtGui.QGuiApplication.setOverrideCursor(self.cursor) def make(self): @@ -2531,6 +2538,14 @@ class FCText(FCShapeTool): FCShapeTool.__init__(self, draw_app) self.name = 'text' + try: + QtGui.QGuiApplication.restoreOverrideCursor() + except: + pass + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_text.png')) + QtGui.QGuiApplication.setOverrideCursor(self.cursor) + + # self.shape_buffer = self.draw_app.shape_buffer self.draw_app = draw_app self.app = draw_app.app diff --git a/flatcamEditors/FlatCAMGrbEditor.py b/flatcamEditors/FlatCAMGrbEditor.py index 6fe396f7..136b8bdc 100644 --- a/flatcamEditors/FlatCAMGrbEditor.py +++ b/flatcamEditors/FlatCAMGrbEditor.py @@ -1070,7 +1070,7 @@ class FCDisc(FCShapeTool): QtGui.QGuiApplication.restoreOverrideCursor() except: pass - self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_circle.png')) + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_disc.png')) QtGui.QGuiApplication.setOverrideCursor(self.cursor) size_ap = float(self.draw_app.storage_dict[self.draw_app.last_aperture_selected]['size']) @@ -1132,6 +1132,13 @@ class FCSemiDisc(FCShapeTool): DrawTool.__init__(self, draw_app) self.name = 'semidisc' + try: + QtGui.QGuiApplication.restoreOverrideCursor() + except: + pass + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_semidisc.png')) + QtGui.QGuiApplication.setOverrideCursor(self.cursor) + self.start_msg = _("Click on Center point ...") self.draw_app.app.inform.emit(_("Click on Center point ...")) diff --git a/share/aero_arc.png b/share/aero_arc.png new file mode 100644 index 0000000000000000000000000000000000000000..b953d43d65d19ed50c4398e31341e50e4c7bb9fe GIT binary patch literal 6915 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 TGgH~Pn3JlCrgEv0x&MCvm-NZ~ literal 0 HcmV?d00001 diff --git a/share/aero_disc.png b/share/aero_disc.png new file mode 100644 index 0000000000000000000000000000000000000000..8ee99e23cfd97dc99ede4e03e4d485fafcea5cf7 GIT binary patch literal 5350 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

p0=BA}udYciKrd zCk{`8Cz4Zoy}&2BuzAD2+Ajr1hc2p`HLMDFnrO`vNzCFE+vV= zmgJk@K^U)@z7w=GQf6QrMf438HJf|)#NIDFq|%JNylPMGNF!;nlZIGpg@MPk6mE|< z9*-}QUo@=OScz)jFVu{3UJ=YfD2fQIwn%wv2=o=gRZR&ZQ~~EQ0Wspml4_5mIZbA} z*%VA_11A)fTZUZ;!rXq*3r?{K3aC#(&S|ZOiA32l)#e+=*yhG818Jt7%C8SrAYC&} zUY6uqB;9RC9KuzUHWmBhiUN552+(#%WVikPynl5MGK>L&7A6Mjz*T9$|qh~1->E8s}VsFiQr z*T8-y$%NZKpJYwsO~XH`NLsM$6wHOGN3%^_Eafy!xlWftgt`+pL9M#d0{c zIl+NxD}^3&f2m;;U#`(sf3>dnm-C2H^x94j;a(x?XhE+W+w2RjH!7Z{1wQbKwd0;} zG)IU?$gn5oK9hSPs3$!+a7E!gpNQh6MbSI}07bj#=$K-3bVN;YCPy(?H0!^c5t5{? z->ikA;=5eY(h-6P($kl!*8JN^Dbj+C+AcDc6DP^zNF^72+zAwWPei0hyd@OrY$tqz z{m3k&h58!v3T?24w>cxgT3(ui13~={AyI+XZx?uiO_kg9AKyA9Stq@UA8zL7czLO; z1*@KEgKhQ=9%ydvse^TpHJ9mQ=445T+MYR77f-x@q`y;Fr^=^oP-`<>Y{!KsJhh^8 zVm%)v8%XkpWoMsfCmFYIgI=I&L)(O($DKD&GeY4kF3m?{lef3qX1pe+R?R%a3q5s_ z*;~?uLUS9&ih%_7-}xA?^o70H9e!zdL>05gPfV|j70r}@^`mvl)AB+(iI>Ls8^Bf-4tt$ioP6kHzh=o26 zXqJ<2k)`-)KQr(%13xqHGXp=$0NalQ|LAAq_=oEU4mS8!5jOZ%5f-sUWP{im@+Yw+ z