Procházet zdrojové kódy

Merged in marius_stanciu/flatcam_beta/Beta (pull request #271)

Beta - infobar grid icon and improvement in Geo UI
Marius Stanciu před 6 roky
rodič
revize
b3431e8d9a

+ 12 - 0
FlatCAMApp.py

@@ -1038,6 +1038,7 @@ class App(QtCore.QObject):
         QtCore.QObject.__init__(self)
 
         self.ui = FlatCAMGUI(self)
+        self.on_grid_snap_triggered(state=True)
 
         theme_settings = QtCore.QSettings("Open Source", "FlatCAM")
         if theme_settings.contains("theme"):
@@ -2153,6 +2154,8 @@ class App(QtCore.QObject):
         # signal emitted when a tab is closed in the Plot Area
         self.ui.plot_tab_area.tab_closed_signal.connect(self.on_plot_area_tab_closed)
 
+        self.ui.grid_snap_btn.triggered.connect(self.on_grid_snap_triggered)
+
         # #####################################################################################
         # ########### FINISHED CONNECTING SIGNALS #############################################
         # #####################################################################################
@@ -6079,6 +6082,7 @@ class App(QtCore.QObject):
         self.report_usage("on_toggle_grid()")
 
         self.ui.grid_snap_btn.trigger()
+        self.on_grid_snap_triggered(state=True)
 
     def on_toggle_grid_lines(self):
         self.report_usage("on_toggle_grd_lines()")
@@ -7019,6 +7023,8 @@ class App(QtCore.QObject):
         self.connect_toolbar_signals()
 
         self.ui.grid_snap_btn.setChecked(True)
+        self.on_grid_snap_triggered(state=True)
+
         self.ui.grid_gap_x_entry.setText(str(self.defaults["global_gridx"]))
         self.ui.grid_gap_y_entry.setText(str(self.defaults["global_gridy"]))
         self.ui.snap_max_dist_entry.setText(str(self.defaults["global_snap_max"]))
@@ -12350,6 +12356,12 @@ class App(QtCore.QObject):
         # Clear pool to free memory
         self.clear_pool()
 
+    def on_grid_snap_triggered(self, state):
+        if state:
+            self.ui.snap_infobar_label.setPixmap(QtGui.QPixmap(self.resource_location + '/snap_filled_16.png'))
+        else:
+            self.ui.snap_infobar_label.setPixmap(QtGui.QPixmap(self.resource_location + '/snap_16.png'))
+
     def generate_cnc_job(self, objects):
         self.report_usage("generate_cnc_job()")
 

+ 10 - 0
FlatCAMObj.py

@@ -3612,6 +3612,9 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
         # this variable can be updated by the Object that generates the geometry
         self.tool_type = 'C1'
 
+        # save here the old value for the Cut Z before it is changed by selecting a V-shape type tool in the tool table
+        self.old_cutz = self.app.defaults["geometry_cutz"]
+
         # Attributes to be included in serialization
         # Always append to it because it carries contents
         # from predecessors.
@@ -3949,6 +3952,10 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
 
         self.ui.addtool_from_db_btn.clicked.connect(self.on_tool_add_from_db_clicked)
         self.ui.apply_param_to_all.clicked.connect(self.on_apply_param_to_all_clicked)
+        self.ui.cutz_entry.returnPressed.connect(self.on_cut_z_changed)
+
+    def on_cut_z_changed(self):
+        self.old_cutz = self.ui.cutz_entry.get_value()
 
     def set_tool_offset_visibility(self, current_row):
         if current_row is None:
@@ -4589,6 +4596,9 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
                     if cb_txt == 'V':
                         idx = self.ui.geo_tools_table.cellWidget(cw_row, 3).findText(_('Iso'))
                         self.ui.geo_tools_table.cellWidget(cw_row, 3).setCurrentIndex(idx)
+                    else:
+                        self.ui.cutz_entry.set_value(self.old_cutz)
+
                 self.ui_update_v_shape(tool_type_txt=self.ui.geo_tools_table.cellWidget(cw_row, 4).currentText())
 
     def update_form(self, dict_storage):

+ 2 - 0
README.md

@@ -13,6 +13,8 @@ CAD program, and create G-Code for Isolation routing.
 
 - fixed a rare issue in the generation of non-copper-region geometry started from the Gerber Object UI (selected tab)
 - Print function is now printing a PDF file for a selection of objects in the colors from canvas 
+- added an icon in the infobar that will show more clearly the status of the grid snapping
+- in Geometry Object UI (selected tab) when a tool type is changed from no matter what to V-shape, the cut_z value is saved and when the tool type is changed back to something different than V-shape, this saved cut-z value is restored
 
 19.12.2019
 

+ 1 - 0
flatcamEditors/FlatCAMExcEditor.py

@@ -2744,6 +2744,7 @@ class FlatCAMExcEditor(QtCore.QObject):
         # start with GRID toolbar activated
         if self.app.ui.grid_snap_btn.isChecked() is False:
             self.app.ui.grid_snap_btn.trigger()
+            self.app.on_grid_snap_triggered(state=True)
 
         self.app.ui.popmenu_disable.setVisible(False)
         self.app.ui.cmenu_newmenu.menuAction().setVisible(False)

+ 1 - 0
flatcamEditors/FlatCAMGeoEditor.py

@@ -3679,6 +3679,7 @@ class FlatCAMGeoEditor(QtCore.QObject):
         # start with GRID toolbar activated
         if self.app.ui.grid_snap_btn.isChecked() is False:
             self.app.ui.grid_snap_btn.trigger()
+            self.app.on_grid_snap_triggered(state=True)
 
     def on_buffer_tool(self):
         buff_tool = BufferSelectionTool(self.app, self)

+ 1 - 0
flatcamEditors/FlatCAMGrbEditor.py

@@ -3530,6 +3530,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
         # start with GRID toolbar activated
         if self.app.ui.grid_snap_btn.isChecked() is False:
             self.app.ui.grid_snap_btn.trigger()
+            self.app.on_grid_snap_triggered(state=True)
 
         # adjust the visibility of some of the canvas context menu
         self.app.ui.popmenu_edit.setVisible(False)

+ 4 - 0
flatcamGUI/FlatCAMGUI.py

@@ -2149,6 +2149,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
         self.fcinfo = FlatCAMInfoBar(app=self.app)
         self.infobar.addWidget(self.fcinfo, stretch=1)
 
+        self.snap_infobar_label = QtWidgets.QLabel()
+        self.snap_infobar_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/snap_16.png'))
+        self.infobar.addWidget(self.snap_infobar_label)
+
         self.rel_position_label = QtWidgets.QLabel(
             "<b>Dx</b>: 0.0000&nbsp;&nbsp;   <b>Dy</b>: 0.0000&nbsp;&nbsp;&nbsp;&nbsp;")
         self.rel_position_label.setMinimumWidth(110)

binární
share/snap_16.png


binární
share/snap_filled_16.png