- added a new toggle option in Edit -> Preferences -> General Tab -> App Preferences -> "Open" Behavior. It controls which path is used when opening a new file. If checked the last saved path is used when saving files and the last opened path is used when opening files. If unchecked then the path for the last action (either open or save) is used.

This commit is contained in:
Marius Stanciu 2019-05-18 17:17:37 +03:00
parent 630d9c733d
commit 8ccd73b919
6 changed files with 96 additions and 51 deletions

View File

@ -324,6 +324,8 @@ class App(QtCore.QObject):
"global_worker_number": self.ui.general_defaults_form.general_app_group.worker_number_sb, "global_worker_number": self.ui.general_defaults_form.general_app_group.worker_number_sb,
"global_tolerance": self.ui.general_defaults_form.general_app_group.tol_entry, "global_tolerance": self.ui.general_defaults_form.general_app_group.tol_entry,
"global_open_style": self.ui.general_defaults_form.general_app_group.open_style_cb,
"global_compression_level": self.ui.general_defaults_form.general_app_group.compress_combo, "global_compression_level": self.ui.general_defaults_form.general_app_group.compress_combo,
"global_save_compressed": self.ui.general_defaults_form.general_app_group.save_type_cb, "global_save_compressed": self.ui.general_defaults_form.general_app_group.save_type_cb,
@ -604,6 +606,7 @@ class App(QtCore.QObject):
"global_toggle_tooltips": True, "global_toggle_tooltips": True,
"global_worker_number": 2, "global_worker_number": 2,
"global_tolerance": 0.01, "global_tolerance": 0.01,
"global_open_style": True,
"global_compression_level": 3, "global_compression_level": 3,
"global_save_compressed": True, "global_save_compressed": True,
@ -663,7 +666,7 @@ class App(QtCore.QObject):
"global_zdownrate": None, "global_zdownrate": None,
# General GUI Settings # General GUI Settings
"global_hover": True, "global_hover": False,
"global_selection_shape": True, "global_selection_shape": True,
"global_layout": "compact", "global_layout": "compact",
# Gerber General # Gerber General
@ -2776,7 +2779,8 @@ class App(QtCore.QObject):
except: except:
self.inform.emit(_("[ERROR_NOTCL] Failed to write defaults to file.")) self.inform.emit(_("[ERROR_NOTCL] Failed to write defaults to file."))
return return
if self.defaults["global_open_style"] is False:
self.file_opened.emit("preferences", filename)
self.file_saved.emit("preferences", filename) self.file_saved.emit("preferences", filename)
self.inform.emit("[success] Exported Defaults to %s" % filename) self.inform.emit("[success] Exported Defaults to %s" % filename)
@ -4398,8 +4402,8 @@ class App(QtCore.QObject):
return return
# Just for adding it to the recent files list. # Just for adding it to the recent files list.
if self.defaults["global_open_style"] is False:
self.file_opened.emit("cncjob", filename) self.file_opened.emit("cncjob", filename)
self.file_saved.emit("cncjob", filename) self.file_saved.emit("cncjob", filename)
self.inform.emit(_("Saved to: %s") % filename) self.inform.emit(_("Saved to: %s") % filename)
@ -6070,6 +6074,8 @@ class App(QtCore.QObject):
return return
else: else:
self.export_svg(name, filename) self.export_svg(name, filename)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("SVG", filename)
self.file_saved.emit("SVG", filename) self.file_saved.emit("SVG", filename)
def on_file_exportpng(self): def on_file_exportpng(self):
@ -6099,6 +6105,8 @@ class App(QtCore.QObject):
return return
else: else:
write_png(filename, data) write_png(filename, data)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("png", filename)
self.file_saved.emit("png", filename) self.file_saved.emit("png", filename)
def on_file_savegerber(self): def on_file_savegerber(self):
@ -6138,6 +6146,8 @@ class App(QtCore.QObject):
return return
else: else:
self.save_source_file(name, filename) self.save_source_file(name, filename)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("Gerber", filename)
self.file_saved.emit("Gerber", filename) self.file_saved.emit("Gerber", filename)
def on_file_saveexcellon(self): def on_file_saveexcellon(self):
@ -6177,6 +6187,8 @@ class App(QtCore.QObject):
return return
else: else:
self.save_source_file(name, filename) self.save_source_file(name, filename)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("Excellon", filename)
self.file_saved.emit("Excellon", filename) self.file_saved.emit("Excellon", filename)
def on_file_exportexcellon(self): def on_file_exportexcellon(self):
@ -6216,6 +6228,8 @@ class App(QtCore.QObject):
return return
else: else:
self.export_excellon(name, filename) self.export_excellon(name, filename)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("Excellon", filename)
self.file_saved.emit("Excellon", filename) self.file_saved.emit("Excellon", filename)
def on_file_exportgerber(self): def on_file_exportgerber(self):
@ -6255,6 +6269,8 @@ class App(QtCore.QObject):
return return
else: else:
self.export_gerber(name, filename) self.export_gerber(name, filename)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("Gerber", filename)
self.file_saved.emit("Gerber", filename) self.file_saved.emit("Gerber", filename)
def on_file_exportdxf(self): def on_file_exportdxf(self):
@ -6306,6 +6322,8 @@ class App(QtCore.QObject):
return return
else: else:
self.export_dxf(name, filename) self.export_dxf(name, filename)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("DXF", filename)
self.file_saved.emit("DXF", filename) self.file_saved.emit("DXF", filename)
def on_file_importsvg(self, type_of_obj): def on_file_importsvg(self, type_of_obj):
@ -6560,7 +6578,7 @@ class App(QtCore.QObject):
else: else:
self.worker_task.emit({'fcn': self.save_project, self.worker_task.emit({'fcn': self.save_project,
'params': [self.project_filename]}) 'params': [self.project_filename]})
if self.defaults["global_open_style"] is False:
self.file_opened.emit("project", self.project_filename) self.file_opened.emit("project", self.project_filename)
self.file_saved.emit("project", self.project_filename) self.file_saved.emit("project", self.project_filename)
@ -6606,8 +6624,8 @@ class App(QtCore.QObject):
self.save_project(filename, quit) self.save_project(filename, quit)
# self.save_project(filename) # self.save_project(filename)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("project", filename) self.file_opened.emit("project", filename)
self.file_saved.emit("project", filename) self.file_saved.emit("project", filename)
if not make_copy: if not make_copy:
self.project_filename = filename self.project_filename = filename
@ -6665,7 +6683,8 @@ class App(QtCore.QObject):
svgcode = parse_xml_string(svg_elem) svgcode = parse_xml_string(svg_elem)
with open(filename, 'w') as fp: with open(filename, 'w') as fp:
fp.write(svgcode.toprettyxml()) fp.write(svgcode.toprettyxml())
if self.defaults["global_open_style"] is False:
self.file_opened.emit("SVG", filename)
self.file_saved.emit("SVG", filename) self.file_saved.emit("SVG", filename)
self.inform.emit(_("[success] SVG file exported to %s") % filename) self.inform.emit(_("[success] SVG file exported to %s") % filename)
@ -6770,7 +6789,8 @@ class App(QtCore.QObject):
fp.write(doc.toprettyxml()) fp.write(doc.toprettyxml())
self.progress.emit(100) self.progress.emit(100)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("SVG", filename)
self.file_saved.emit("SVG", filename) self.file_saved.emit("SVG", filename)
self.inform.emit(_("[success] SVG file exported to %s") % filename) self.inform.emit(_("[success] SVG file exported to %s") % filename)
@ -6884,7 +6904,8 @@ class App(QtCore.QObject):
with open(filename, 'w') as fp: with open(filename, 'w') as fp:
fp.write(doc.toprettyxml()) fp.write(doc.toprettyxml())
self.progress.emit(100) self.progress.emit(100)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("SVG", filename)
self.file_saved.emit("SVG", filename) self.file_saved.emit("SVG", filename)
self.inform.emit(_("[success] SVG file exported to %s") % filename) self.inform.emit(_("[success] SVG file exported to %s") % filename)
@ -7034,7 +7055,8 @@ class App(QtCore.QObject):
with open(filename, 'w') as fp: with open(filename, 'w') as fp:
fp.write(exported_excellon) fp.write(exported_excellon)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("Excellon", filename)
self.file_saved.emit("Excellon", filename) self.file_saved.emit("Excellon", filename)
self.inform.emit(_("[success] Excellon file exported to %s") % filename) self.inform.emit(_("[success] Excellon file exported to %s") % filename)
except Exception as e: except Exception as e:
@ -7150,7 +7172,8 @@ class App(QtCore.QObject):
with open(filename, 'w') as fp: with open(filename, 'w') as fp:
fp.write(exported_gerber) fp.write(exported_gerber)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("Gerber", filename)
self.file_saved.emit("Gerber", filename) self.file_saved.emit("Gerber", filename)
self.inform.emit(_("[success] Gerber file exported to %s") % filename) self.inform.emit(_("[success] Gerber file exported to %s") % filename)
except Exception as e: except Exception as e:
@ -7208,7 +7231,8 @@ class App(QtCore.QObject):
try: try:
dxf_code = obj.export_dxf() dxf_code = obj.export_dxf()
dxf_code.saveas(filename) dxf_code.saveas(filename)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("DXF", filename)
self.file_saved.emit("DXF", filename) self.file_saved.emit("DXF", filename)
self.inform.emit(_("[success] DXF file exported to %s") % filename) self.inform.emit(_("[success] DXF file exported to %s") % filename)
except: except:

View File

@ -1096,10 +1096,15 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
elif type(g) == Point: elif type(g) == Point:
pass pass
else: else:
try:
for el in g: for el in g:
self.add_shape(shape=el, color=color, self.add_shape(shape=el, color=color,
face_color=random_color() if self.options['multicolored'] face_color=random_color() if self.options['multicolored']
else face_color, visible=self.options['plot']) else face_color, visible=self.options['plot'])
except TypeError:
self.add_shape(shape=g, color=color,
face_color=random_color() if self.options['multicolored']
else face_color, visible=self.options['plot'])
else: else:
for g in geometry: for g in geometry:
if type(g) == Polygon or type(g) == LineString: if type(g) == Polygon or type(g) == LineString:
@ -5550,6 +5555,8 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
if gc == 'fail': if gc == 'fail':
return return
if self.app.defaults["global_open_style"] is False:
self.app.file_opened.emit("gcode", filename)
self.app.file_saved.emit("gcode", filename) self.app.file_saved.emit("gcode", filename)
self.app.inform.emit(_("[success] Machine Code file saved to: %s") % filename) self.app.inform.emit(_("[success] Machine Code file saved to: %s") % filename)
@ -5769,7 +5776,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
# lines = StringIO(self.gcode) # lines = StringIO(self.gcode)
lines = StringIO(g) lines = StringIO(g)
## Write # Write
if filename is not None: if filename is not None:
try: try:
with open(filename, 'w') as f: with open(filename, 'w') as f:
@ -5783,6 +5790,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
return return
elif to_file is False: elif to_file is False:
# Just for adding it to the recent files list. # Just for adding it to the recent files list.
if self.app.defaults["global_open_style"] is False:
self.app.file_opened.emit("cncjob", filename) self.app.file_opened.emit("cncjob", filename)
self.app.file_saved.emit("cncjob", filename) self.app.file_saved.emit("cncjob", filename)

View File

@ -9,6 +9,10 @@ CAD program, and create G-Code for Isolation routing.
================================================= =================================================
18.05.2019
- added a new toggle option in Edit -> Preferences -> General Tab -> App Preferences -> "Open" Behavior. It controls which path is used when opening a new file. If checked the last saved path is used when saving files and the last opened path is used when opening files. If unchecked then the path for the last action (either open or save) is used.
17.05.2019 17.05.2019
- remade the Tool Cutout to work on panels - remade the Tool Cutout to work on panels

View File

@ -5990,7 +5990,7 @@ class CNCjob(Geometry):
if self.dwell is True: if self.dwell is True:
self.gcode += self.doformat(p.dwell_code) # Dwell time self.gcode += self.doformat(p.dwell_code) # Dwell time
## Iterate over geometry paths getting the nearest each time. # Iterate over geometry paths getting the nearest each time.
log.debug("Starting G-Code...") log.debug("Starting G-Code...")
path_count = 0 path_count = 0
current_pt = (0, 0) current_pt = (0, 0)

View File

@ -3928,9 +3928,16 @@ class GeneralAppPrefGroupUI(OptionsGroupUI):
# to the main layout of this TAB # to the main layout of this TAB
self.layout.addLayout(self.form_box) self.layout.addLayout(self.form_box)
# hlay = QtWidgets.QHBoxLayout() # Save compressed project CB
# self.layout.addLayout(hlay) self.open_style_cb = FCCheckBox(_('"Open" behavior'))
# hlay.addStretch() self.open_style_cb.setToolTip(
_("When checked the path for the last saved file is used when saving files,\n"
"and the path for the last opened file is used when opening files.\n\n"
"When unchecked the path for opening files is the one used last: either the\n"
"path for saving files or the path for opening files.")
)
# self.advanced_cb.setLayoutDirection(QtCore.Qt.RightToLeft)
self.layout.addWidget(self.open_style_cb)
# Save compressed project CB # Save compressed project CB
self.save_type_cb = FCCheckBox(_('Save Compressed Project')) self.save_type_cb = FCCheckBox(_('Save Compressed Project'))

View File

@ -1390,6 +1390,8 @@ class SolderPaste(FlatCAMTool):
self.app.inform.emit(_("[WARNING_NOTCL] No such file or directory")) self.app.inform.emit(_("[WARNING_NOTCL] No such file or directory"))
return return
if self.app.defaults["global_open_style"] is False:
self.app.file_opened.emit("gcode", filename)
self.app.file_saved.emit("gcode", filename) self.app.file_saved.emit("gcode", filename)
self.app.inform.emit(_("[success] Solder paste dispenser GCode file saved to: %s") % filename) self.app.inform.emit(_("[success] Solder paste dispenser GCode file saved to: %s") % filename)