- added multiple object selection on Open ... and Import ... (idea and code snippet came from Travers Carter, BitBucket user https://bitbucket.org/travc/

This commit is contained in:
Marius Stanciu
2019-01-24 15:48:34 +02:00
committed by Marius
parent 8f787fc61a
commit e8acee5850
2 changed files with 45 additions and 42 deletions

View File

@@ -4141,21 +4141,20 @@ class App(QtCore.QObject):
"All Files (*.*)" "All Files (*.*)"
try: try:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Open Gerber", filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Open Gerber",
directory=self.get_last_folder(), filter=_filter_) directory=self.get_last_folder(), filter=_filter_)
except TypeError: except TypeError:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Open Gerber", filter=_filter_) filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Open Gerber", filter=_filter_)
# The Qt methods above will return a QString which can cause problems later. filenames = [str(filename) for filename in filenames]
# So far json.dump() will fail to serialize it.
# TODO: Improve the serialization methods and remove this fix.
filename = str(filename)
if filename == "": if len(filenames) == 0:
self.inform.emit("[warning_notcl]Open Gerber cancelled.") self.inform.emit("[warning_notcl]Open Gerber cancelled.")
else: else:
self.worker_task.emit({'fcn': self.open_gerber, for filename in filenames:
'params': [filename]}) if filename != '':
self.worker_task.emit({'fcn': self.open_gerber,
'params': [filename]})
def on_fileopengerber_follow(self): def on_fileopengerber_follow(self):
""" """
@@ -4207,21 +4206,20 @@ class App(QtCore.QObject):
"All Files (*.*)" "All Files (*.*)"
try: try:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Open Excellon", filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Open Excellon",
directory=self.get_last_folder(), filter=_filter_) directory=self.get_last_folder(), filter=_filter_)
except TypeError: except TypeError:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Open Excellon", filter=_filter_) filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Open Excellon", filter=_filter_)
# The Qt methods above will return a QString which can cause problems later. filenames = [str(filename) for filename in filenames]
# So far json.dump() will fail to serialize it.
# TODO: Improve the serialization methods and remove this fix.
filename = str(filename)
if filename == "": if len(filenames) == 0:
self.inform.emit("[warning_notcl]Open Excellon cancelled.") self.inform.emit("[warning_notcl]Open Excellon cancelled.")
else: else:
self.worker_task.emit({'fcn': self.open_excellon, for filename in filenames:
'params': [filename]}) if filename != '':
self.worker_task.emit({'fcn': self.open_excellon,
'params': [filename]})
def on_fileopengcode(self): def on_fileopengcode(self):
""" """
@@ -4238,21 +4236,20 @@ class App(QtCore.QObject):
" *.din *.xpi *.hnc *.h *.i *.ncp *.min *.gcd *.rol *.mpr *.ply *.out *.eia *.plt *.sbp *.mpf);;" \ " *.din *.xpi *.hnc *.h *.i *.ncp *.min *.gcd *.rol *.mpr *.ply *.out *.eia *.plt *.sbp *.mpf);;" \
"All Files (*.*)" "All Files (*.*)"
try: try:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Open G-Code", filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Open G-Code",
directory=self.get_last_folder(), filter=_filter_) directory=self.get_last_folder(), filter=_filter_)
except TypeError: except TypeError:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Open G-Code", filter=_filter_) filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Open G-Code", filter=_filter_)
# The Qt methods above will return a QString which can cause problems later. filenames = [str(filename) for filename in filenames]
# So far json.dump() will fail to serialize it.
# TODO: Improve the serialization methods and remove this fix.
filename = str(filename)
if filename == "": if len(filenames) == 0:
self.inform.emit("[warning_notcl]Open G-Code cancelled.") self.inform.emit("[warning_notcl]Open G-Code cancelled.")
else: else:
self.worker_task.emit({'fcn': self.open_gcode, for filename in filenames:
'params': [filename]}) if filename != '':
self.worker_task.emit({'fcn': self.open_gcode,
'params': [filename]})
def on_file_openproject(self): def on_file_openproject(self):
""" """
@@ -4472,21 +4469,23 @@ class App(QtCore.QObject):
filter = "SVG File (*.svg);;All Files (*.*)" filter = "SVG File (*.svg);;All Files (*.*)"
try: try:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Import SVG", filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Import SVG",
directory=self.get_last_folder(), filter=filter) directory=self.get_last_folder(), filter=filter)
except TypeError: except TypeError:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Import SVG", filter=filter) filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Import SVG", filter=filter)
filename = str(filename)
if type_of_obj is not "geometry" and type_of_obj is not "gerber": if type_of_obj is not "geometry" and type_of_obj is not "gerber":
type_of_obj = "geometry" type_of_obj = "geometry"
if filename == "": filenames = [str(filename) for filename in filenames]
self.inform.emit("[warning_notcl]Open cancelled.")
if len(filenames) == 0:
self.inform.emit("[warning_notcl]Open SVG cancelled.")
else: else:
self.worker_task.emit({'fcn': self.import_svg, for filename in filenames:
'params': [filename, type_of_obj]}) if filename != '':
# self.import_svg(filename, "geometry") self.worker_task.emit({'fcn': self.import_svg,
'params': [filename, type_of_obj]})
def on_file_importdxf(self, type_of_obj): def on_file_importdxf(self, type_of_obj):
""" """
@@ -4500,20 +4499,23 @@ class App(QtCore.QObject):
filter = "DXF File (*.DXF);;All Files (*.*)" filter = "DXF File (*.DXF);;All Files (*.*)"
try: try:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Import DXF", filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Import DXF",
directory=self.get_last_folder(), filter=filter) directory=self.get_last_folder(), filter=filter)
except TypeError: except TypeError:
filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Import DXF", filter=filter) filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption="Import DXF", filter=filter)
filename = str(filename)
if type_of_obj is not "geometry" and type_of_obj is not "gerber": if type_of_obj is not "geometry" and type_of_obj is not "gerber":
type_of_obj = "geometry" type_of_obj = "geometry"
if filename == "": filenames = [str(filename) for filename in filenames]
self.inform.emit("[warning_notcl]Open cancelled.")
if len(filenames) == 0:
self.inform.emit("[warning_notcl]Open DXF cancelled.")
else: else:
self.worker_task.emit({'fcn': self.import_dxf, for filename in filenames:
'params': [filename, type_of_obj]}) if filename != '':
self.worker_task.emit({'fcn': self.import_dxf,
'params': [filename, type_of_obj]})
def on_filerunscript(self): def on_filerunscript(self):
""" """

View File

@@ -15,6 +15,7 @@ CAD program, and create G-Code for Isolation routing.
- fixed the Copy Object function when the object is Gerber - fixed the Copy Object function when the object is Gerber
- added the Copy entry to the Project context menu - added the Copy entry to the Project context menu
- made the functions behind Disable and Enable project context menu entries, non-threaded to fix a possible issue - made the functions behind Disable and Enable project context menu entries, non-threaded to fix a possible issue
- added multiple object selection on Open ... and Import ... (idea and code snippet came from Travers Carter, BitBucket user https://bitbucket.org/travc/
23.01.2019 23.01.2019