diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7cfef1c3..a0e7a99b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,7 @@ CHANGELOG for FlatCAM beta
- in CNCJob UI Autolevelling - Probing GCode has now a header
- in CNCJob UI Autolevelling - Added entries in Preferences
- in CNCJob UI Autolevelling - finished the Import Height Map method
+- in CNCJob UI Autolevelling - made autolevelling checkbox state persistent between app restarts
14.08.2020
diff --git a/appGUI/ObjectUI.py b/appGUI/ObjectUI.py
index 95fa6f5b..618b96ea 100644
--- a/appGUI/ObjectUI.py
+++ b/appGUI/ObjectUI.py
@@ -2389,9 +2389,6 @@ class CNCObjectUI(ObjectUI):
self.al_probe_points_table.setMinimumHeight(self.al_probe_points_table.getHeight())
self.al_probe_points_table.setMaximumHeight(self.al_probe_points_table.getHeight())
- # Signals
- self.sal_cb.stateChanged.connect(lambda state: self.al_frame.show() if state else self.al_frame.hide())
-
# Set initial UI
self.al_frame.hide()
# self.on_mode_radio(val='grid')
diff --git a/appObjects/FlatCAMCNCJob.py b/appObjects/FlatCAMCNCJob.py
index 4af20771..29ddcfea 100644
--- a/appObjects/FlatCAMCNCJob.py
+++ b/appObjects/FlatCAMCNCJob.py
@@ -544,25 +544,13 @@ class CNCJobObject(FlatCAMObj, CNCjob):
# set if to display text annotations
self.ui.annotation_cb.set_value(self.app.defaults["cncjob_annotation"])
- # Show/Hide Advanced Options
- if self.app.defaults["global_app_level"] == 'b':
- self.ui.level.setText(_(
- 'Basic'
- ))
-
- self.ui.sal_cb.hide()
- else:
- self.ui.level.setText(_(
- 'Advanced'
- ))
- self.ui.sal_cb.show()
-
self.ui.updateplot_button.clicked.connect(self.on_updateplot_button_click)
self.ui.export_gcode_button.clicked.connect(self.on_exportgcode_button_click)
self.ui.review_gcode_button.clicked.connect(self.on_edit_code_click)
self.ui.editor_button.clicked.connect(lambda: self.app.object2editor())
# autolevelling signals
+ self.ui.sal_cb.stateChanged.connect(self.on_autolevelling)
self.ui.al_mode_radio.activated_custom.connect(self.on_mode_radio)
self.ui.al_controller_combo.currentIndexChanged.connect(self.on_controller_change)
self.ui.com_search_button.clicked.connect(self.on_search_ports)
@@ -578,6 +566,21 @@ class CNCJobObject(FlatCAMObj, CNCjob):
self.ui.cncplot_method_combo.activated_custom.connect(self.on_plot_kind_change)
+ # Show/Hide Advanced Options
+ if self.app.defaults["global_app_level"] == 'b':
+ self.ui.level.setText(_(
+ 'Basic'
+ ))
+
+ self.ui.sal_cb.hide()
+ self.ui.sal_cb.set_value(False)
+ else:
+ self.ui.level.setText(_(
+ 'Advanced'
+ ))
+ self.ui.sal_cb.show()
+ self.ui.sal_cb.set_value(self.app.defaults["cncjob_al_status"])
+
preamble = self.append_snippet
postamble = self.prepend_snippet
gc = self.export_gcode(preamble=preamble, postamble=postamble, to_file=True)
@@ -829,6 +832,10 @@ class CNCJobObject(FlatCAMObj, CNCjob):
if key == QtCore.Qt.Key_J or key == 'J':
l_x, l_y = self.app.on_jump_to()
+ def on_autolevelling(self, state):
+ self.ui.al_frame.show() if state else self.ui.al_frame.hide()
+ self.app.defaults["cncjob_al_status"] = True if state else False
+
def on_show_al_table(self, state):
self.ui.al_probe_points_table.show() if state else self.ui.al_probe_points_table.hide()
@@ -992,7 +999,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
header += '(Type: ' + "Autolevelling Probing GCode " + ')\n'
header += '(Units: ' + self.units.upper() + ')\n'
- header += '(Created on ' + time_str + ')\n\n'
+ header += '(Created on ' + time_str + ')\n'
# commands
if controller == 'MACH3':
@@ -1019,7 +1026,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
# #############################################################################################################
# header
- p_gcode += header + '\n\n'
+ p_gcode += header + '\n'
# supplementary message for LinuxCNC
if controller == 'LinuxCNC':
probing_var += "The file with the stored probing points can be found\n" \
diff --git a/defaults.py b/defaults.py
index 297839f8..dfb93eda 100644
--- a/defaults.py
+++ b/defaults.py
@@ -376,6 +376,7 @@ class FlatCAMDefaults:
"cncjob_annotation_fontsize": 9,
"cncjob_annotation_fontcolor": '#990000',
# Autolevelling
+ "cncjob_al_status": False,
"cncjob_al_mode": 'grid',
"cncjob_al_rows": 4,
"cncjob_al_columns": 4,