Explorar el Código

- fixed issue #394 - the saveDialog in Linux did not added the selected extension
- fixed issue #389 - in previous commits
- fixed issue #391 - in previous commits

Marius Stanciu hace 5 años
padre
commit
abce81d802

+ 25 - 24
FlatCAMApp.py

@@ -53,6 +53,7 @@ from camlib import to_dict, dict2obj, ET, ParseError
 from flatcamGUI.PlotCanvas import *
 from flatcamGUI.PlotCanvas import *
 from flatcamGUI.PlotCanvasLegacy import *
 from flatcamGUI.PlotCanvasLegacy import *
 from flatcamGUI.FlatCAMGUI import *
 from flatcamGUI.FlatCAMGUI import *
+from flatcamGUI.GUIElements import FCFileSaveDialog
 
 
 from FlatCAMCommon import LoudDict, BookmarkManager, ToolsDB, ToolsDB2, color_variant
 from FlatCAMCommon import LoudDict, BookmarkManager, ToolsDB, ToolsDB2, color_variant
 from FlatCAMPostProc import load_preprocessors
 from FlatCAMPostProc import load_preprocessors
@@ -4134,13 +4135,13 @@ class App(QtCore.QObject):
 
 
         filter__ = "Config File (*.FlatConfig);;All Files (*.*)"
         filter__ = "Config File (*.FlatConfig);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export FlatCAM Preferences"),
                 caption=_("Export FlatCAM Preferences"),
                 directory=self.data_path + '/preferences_' + self.date,
                 directory=self.data_path + '/preferences_' + self.date,
                 filter=filter__
                 filter=filter__
             )
             )
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export FlatCAM Preferences"),
+            filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export FlatCAM Preferences"),
                                                                  filter=filter__)
                                                                  filter=filter__)
 
 
         filename = str(filename)
         filename = str(filename)
@@ -9800,12 +9801,12 @@ class App(QtCore.QObject):
 
 
         _filter = "SVG File (*.svg);;All Files (*.*)"
         _filter = "SVG File (*.svg);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export SVG"),
                 caption=_("Export SVG"),
                 directory=self.get_last_save_folder() + '/' + str(name) + '_svg',
                 directory=self.get_last_save_folder() + '/' + str(name) + '_svg',
                 filter=_filter)
                 filter=_filter)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export SVG"), filter=_filter)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), filter=_filter)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -9837,12 +9838,12 @@ class App(QtCore.QObject):
 
 
         filter_ = "PNG File (*.png);;All Files (*.*)"
         filter_ = "PNG File (*.png);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export PNG Image"),
                 caption=_("Export PNG Image"),
                 directory=self.get_last_save_folder() + '/png_' + self.date,
                 directory=self.get_last_save_folder() + '/png_' + self.date,
                 filter=filter_)
                 filter=filter_)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export PNG Image"), filter=filter_)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG Image"), filter=filter_)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -9884,12 +9885,12 @@ class App(QtCore.QObject):
 
 
         _filter = "Gerber File (*.GBR);;Gerber File (*.GRB);;All Files (*.*)"
         _filter = "Gerber File (*.GBR);;Gerber File (*.GRB);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption="Save Gerber source file",
                 caption="Save Gerber source file",
                 directory=self.get_last_save_folder() + '/' + name,
                 directory=self.get_last_save_folder() + '/' + name,
                 filter=_filter)
                 filter=_filter)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Gerber source file"), filter=_filter)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Gerber source file"), filter=_filter)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -9928,12 +9929,12 @@ class App(QtCore.QObject):
 
 
         _filter = "FlatCAM Scripts (*.FlatScript);;All Files (*.*)"
         _filter = "FlatCAM Scripts (*.FlatScript);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption="Save Script source file",
                 caption="Save Script source file",
                 directory=self.get_last_save_folder() + '/' + name,
                 directory=self.get_last_save_folder() + '/' + name,
                 filter=_filter)
                 filter=_filter)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Script source file"), filter=_filter)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Script source file"), filter=_filter)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -9972,12 +9973,12 @@ class App(QtCore.QObject):
 
 
         _filter = "FlatCAM Documents (*.FlatDoc);;All Files (*.*)"
         _filter = "FlatCAM Documents (*.FlatDoc);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption="Save Document source file",
                 caption="Save Document source file",
                 directory=self.get_last_save_folder() + '/' + name,
                 directory=self.get_last_save_folder() + '/' + name,
                 filter=_filter)
                 filter=_filter)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Document source file"), filter=_filter)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Document source file"), filter=_filter)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -10016,12 +10017,12 @@ class App(QtCore.QObject):
 
 
         _filter = "Excellon File (*.DRL);;Excellon File (*.TXT);;All Files (*.*)"
         _filter = "Excellon File (*.DRL);;Excellon File (*.TXT);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Save Excellon source file"),
                 caption=_("Save Excellon source file"),
                 directory=self.get_last_save_folder() + '/' + name,
                 directory=self.get_last_save_folder() + '/' + name,
                 filter=_filter)
                 filter=_filter)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Excellon source file"), filter=_filter)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Excellon source file"), filter=_filter)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -10060,12 +10061,12 @@ class App(QtCore.QObject):
 
 
         _filter = self.defaults["excellon_save_filters"]
         _filter = self.defaults["excellon_save_filters"]
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export Excellon"),
                 caption=_("Export Excellon"),
                 directory=self.get_last_save_folder() + '/' + name,
                 directory=self.get_last_save_folder() + '/' + name,
                 filter=_filter)
                 filter=_filter)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Excellon"), filter=_filter)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Excellon"), filter=_filter)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -10107,12 +10108,12 @@ class App(QtCore.QObject):
 
 
         _filter_ = self.defaults['gerber_save_filters']
         _filter_ = self.defaults['gerber_save_filters']
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export Gerber"),
                 caption=_("Export Gerber"),
                 directory=self.get_last_save_folder() + '/' + name,
                 directory=self.get_last_save_folder() + '/' + name,
                 filter=_filter_)
                 filter=_filter_)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Gerber"), filter=_filter_)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Gerber"), filter=_filter_)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -10166,12 +10167,12 @@ class App(QtCore.QObject):
 
 
         _filter_ = "DXF File (*.DXF);;All Files (*.*)"
         _filter_ = "DXF File (*.DXF);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export DXF"),
                 caption=_("Export DXF"),
                 directory=self.get_last_save_folder() + '/' + name,
                 directory=self.get_last_save_folder() + '/' + name,
                 filter=_filter_)
                 filter=_filter_)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export DXF"),
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export DXF"),
                                                                  filter=_filter_)
                                                                  filter=_filter_)
 
 
         filename = str(filename)
         filename = str(filename)
@@ -10588,14 +10589,14 @@ class App(QtCore.QObject):
 
 
         filter_ = "FlatCAM Project (*.FlatPrj);; All Files (*.*)"
         filter_ = "FlatCAM Project (*.FlatPrj);; All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Save Project As ..."),
                 caption=_("Save Project As ..."),
                 directory='{l_save}/{proj}_{date}'.format(l_save=str(self.get_last_save_folder()), date=self.date,
                 directory='{l_save}/{proj}_{date}'.format(l_save=str(self.get_last_save_folder()), date=self.date,
                                                           proj=_("Project")),
                                                           proj=_("Project")),
                 filter=filter_
                 filter=filter_
             )
             )
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Project As ..."), filter=filter_)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Project As ..."), filter=filter_)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -10642,7 +10643,7 @@ class App(QtCore.QObject):
 
 
         filter_ = "PDF File (*.PDF);; All Files (*.*)"
         filter_ = "PDF File (*.PDF);; All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Save Object as PDF ..."),
                 caption=_("Save Object as PDF ..."),
                 directory='{l_save}/{obj_name}_{date}'.format(l_save=str(self.get_last_save_folder()),
                 directory='{l_save}/{obj_name}_{date}'.format(l_save=str(self.get_last_save_folder()),
                                                               obj_name=obj_name,
                                                               obj_name=obj_name,
@@ -10650,7 +10651,7 @@ class App(QtCore.QObject):
                 filter=filter_
                 filter=filter_
             )
             )
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Object as PDF ..."), filter=filter_)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Object as PDF ..."), filter=filter_)
 
 
         filename = str(filename)
         filename = str(filename)
 
 

+ 4 - 4
FlatCAMCommon.py

@@ -13,7 +13,7 @@
 
 
 from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5 import QtGui, QtCore, QtWidgets
 from flatcamGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, \
 from flatcamGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, \
-    FCTree, RadioSet
+    FCTree, RadioSet, FCFileSaveDialog
 from camlib import to_dict
 from camlib import to_dict
 
 
 import sys
 import sys
@@ -358,7 +358,7 @@ class BookmarkManager(QtWidgets.QWidget):
         date = date.replace(' ', '_')
         date = date.replace(' ', '_')
 
 
         filter__ = "Text File (*.TXT);;All Files (*.*)"
         filter__ = "Text File (*.TXT);;All Files (*.*)"
-        filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export FlatCAM Bookmarks"),
+        filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export FlatCAM Bookmarks"),
                                                              directory='{l_save}/FlatCAM_{n}_{date}'.format(
                                                              directory='{l_save}/FlatCAM_{n}_{date}'.format(
                                                                  l_save=str(self.app.get_last_save_folder()),
                                                                  l_save=str(self.app.get_last_save_folder()),
                                                                  n=_("Bookmarks"),
                                                                  n=_("Bookmarks"),
@@ -1094,7 +1094,7 @@ class ToolsDB(QtWidgets.QWidget):
         date = date.replace(' ', '_')
         date = date.replace(' ', '_')
 
 
         filter__ = "Text File (*.TXT);;All Files (*.*)"
         filter__ = "Text File (*.TXT);;All Files (*.*)"
-        filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Tools Database"),
+        filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export Tools Database"),
                                                              directory='{l_save}/FlatCAM_{n}_{date}'.format(
                                                              directory='{l_save}/FlatCAM_{n}_{date}'.format(
                                                                  l_save=str(self.app.get_last_save_folder()),
                                                                  l_save=str(self.app.get_last_save_folder()),
                                                                  n=_("Tools_Database"),
                                                                  n=_("Tools_Database"),
@@ -2524,7 +2524,7 @@ class ToolsDB2(QtWidgets.QWidget):
         date = date.replace(' ', '_')
         date = date.replace(' ', '_')
 
 
         filter__ = "Text File (*.TXT);;All Files (*.*)"
         filter__ = "Text File (*.TXT);;All Files (*.*)"
-        filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Tools Database"),
+        filename, _f = FCFileSaveDialog.get_saved_filename( caption=_("Export Tools Database"),
                                                              directory='{l_save}/FlatCAM_{n}_{date}'.format(
                                                              directory='{l_save}/FlatCAM_{n}_{date}'.format(
                                                                  l_save=str(self.app.get_last_save_folder()),
                                                                  l_save=str(self.app.get_last_save_folder()),
                                                                  n=_("Tools_Database"),
                                                                  n=_("Tools_Database"),

+ 3 - 2
FlatCAMObj.py

@@ -25,6 +25,7 @@ from datetime import datetime
 
 
 from flatcamEditors.FlatCAMTextEditor import TextEditor
 from flatcamEditors.FlatCAMTextEditor import TextEditor
 from flatcamGUI.ObjectUI import *
 from flatcamGUI.ObjectUI import *
+from flatcamGUI.GUIElements import FCFileSaveDialog
 from FlatCAMCommon import LoudDict
 from FlatCAMCommon import LoudDict
 from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
 from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
 from flatcamParsers.ParseExcellon import Excellon
 from flatcamParsers.ParseExcellon import Excellon
@@ -7024,13 +7025,13 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
 
 
         try:
         try:
             dir_file_to_save = self.app.get_last_save_folder() + '/' + str(name)
             dir_file_to_save = self.app.get_last_save_folder() + '/' + str(name)
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export Machine Code ..."),
                 caption=_("Export Machine Code ..."),
                 directory=dir_file_to_save,
                 directory=dir_file_to_save,
                 filter=_filter_
                 filter=_filter_
             )
             )
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Machine Code ..."), filter=_filter_)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Machine Code ..."), filter=_filter_)
 
 
         filename = str(filename)
         filename = str(filename)
 
 

+ 6 - 2
README.md

@@ -9,11 +9,15 @@ CAD program, and create G-Code for Isolation routing.
 
 
 =================================================
 =================================================
 
 
+11.04.2020 
+
+- fixed issue #394 - the saveDialog in Linux did not added the selected extension
+
 10.04.2020 
 10.04.2020 
 
 
-- made sure that the timeout parameter used by some Tcl Commands is seen as an integer in all cases
+- made sure that the timeout parameter used by some Tcl Commands is seen as an integer in all cases - fixed issue #389
 - minor changes in Paint Tool
 - minor changes in Paint Tool
-- minor changes in GUI (Save locations in Menu -> File) and the key shortcuts
+- minor changes in GUI (Save locations in Menu -> File) and the key shortcuts - fixed issue #391
 
 
 
 
 9.04.2020 
 9.04.2020 

+ 6 - 6
flatcamEditors/FlatCAMTextEditor.py

@@ -5,14 +5,14 @@
 # MIT Licence                                              #
 # MIT Licence                                              #
 # ##########################################################
 # ##########################################################
 
 
-from flatcamGUI.GUIElements import *
-from PyQt5 import QtPrintSupport
+from flatcamGUI.GUIElements import FCFileSaveDialog, FCEntry, FCTextAreaExtended, FCTextAreaLineNumber
+from PyQt5 import QtPrintSupport, QtWidgets, QtCore, QtGui
 
 
 from reportlab.platypus import SimpleDocTemplate, Paragraph
 from reportlab.platypus import SimpleDocTemplate, Paragraph
 from reportlab.lib.styles import getSampleStyleSheet
 from reportlab.lib.styles import getSampleStyleSheet
 from reportlab.lib.units import inch, mm
 from reportlab.lib.units import inch, mm
 
 
-from io import StringIO
+# from io import StringIO
 
 
 import gettext
 import gettext
 import FlatCAMTranslation as fcTranslate
 import FlatCAMTranslation as fcTranslate
@@ -211,13 +211,13 @@ class TextEditor(QtWidgets.QWidget):
                     _filter_ = "FlatConfig Files (*.FlatConfig);;PDF Files (*.pdf);;All Files (*.*)"
                     _filter_ = "FlatConfig Files (*.FlatConfig);;PDF Files (*.pdf);;All Files (*.*)"
 
 
         try:
         try:
-            filename = str(QtWidgets.QFileDialog.getSaveFileName(
+            filename = str(FCFileSaveDialog.get_saved_filename(
                 caption=_("Export Code ..."),
                 caption=_("Export Code ..."),
                 directory=self.app.defaults["global_last_folder"] + '/' + str(obj_name),
                 directory=self.app.defaults["global_last_folder"] + '/' + str(obj_name),
                 filter=_filter_
                 filter=_filter_
             )[0])
             )[0])
         except TypeError:
         except TypeError:
-            filename = str(QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Code ..."), filter=_filter_)[0])
+            filename = str(FCFileSaveDialog.get_saved_filename(caption=_("Export Code ..."), filter=_filter_)[0])
 
 
         if filename == "":
         if filename == "":
             self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export Code cancelled."))
             self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export Code cancelled."))
@@ -236,7 +236,7 @@ class TextEditor(QtWidgets.QWidget):
 
 
                     styles = getSampleStyleSheet()
                     styles = getSampleStyleSheet()
                     styleN = styles['Normal']
                     styleN = styles['Normal']
-                    styleH = styles['Heading1']
+                    # styleH = styles['Heading1']
                     story = []
                     story = []
 
 
                     if self.app.defaults['units'].lower() == 'mm':
                     if self.app.defaults['units'].lower() == 'mm':

+ 24 - 0
flatcamGUI/GUIElements.py

@@ -2853,6 +2853,30 @@ class FCTextAreaLineNumber(QtWidgets.QFrame):
         self.edit.setLineWrapMode(mode)
         self.edit.setLineWrapMode(mode)
 
 
 
 
+class FCFileSaveDialog(QtWidgets.QFileDialog):
+
+    def __init__(self, *args):
+        super(FCFileSaveDialog, self).__init__(*args)
+
+    @staticmethod
+    def get_saved_filename(parent=None, caption='', directory='', filter='', initialFilter=''):
+        filename, _filter = QtWidgets.QFileDialog.getSaveFileName(parent=parent, caption=caption,
+                                                                  directory=directory, filter=filter,
+                                                                  initialFilter=initialFilter)
+
+        filename = str(filename)
+        if filename == '':
+            return filename, _filter
+
+        extension = '.' + _filter.strip(')').rpartition('.')[2]
+
+        if filename.endswith(extension) or extension == '.*':
+            return filename, _filter
+        else:
+            filename += extension
+            return filename, _filter
+
+
 def rreplace(s, old, new, occurrence):
 def rreplace(s, old, new, occurrence):
     """
     """
     Credits go here:
     Credits go here:

+ 5 - 5
flatcamTools/ToolFilm.py

@@ -9,7 +9,7 @@ from PyQt5 import QtGui, QtCore, QtWidgets
 
 
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, \
 from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, \
-    OptionalHideInputSection, OptionalInputSection, FCComboBox
+    OptionalHideInputSection, OptionalInputSection, FCComboBox, FCFileSaveDialog
 
 
 from copy import deepcopy
 from copy import deepcopy
 import logging
 import logging
@@ -741,12 +741,12 @@ class Film(FlatCAMTool):
                          "All Files (*.*)"
                          "All Files (*.*)"
 
 
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export positive film"),
                 caption=_("Export positive film"),
                 directory=self.app.get_last_save_folder() + '/' + name + '_film',
                 directory=self.app.get_last_save_folder() + '/' + name + '_film',
                 filter=filter_ext)
                 filter=filter_ext)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export positive film"))
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export positive film"))
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -887,12 +887,12 @@ class Film(FlatCAMTool):
                          "All Files (*.*)"
                          "All Files (*.*)"
 
 
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export negative film"),
                 caption=_("Export negative film"),
                 directory=self.app.get_last_save_folder() + '/' + name + '_film',
                 directory=self.app.get_last_save_folder() + '/' + name + '_film',
                 filter=filter_ext)
                 filter=filter_ext)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export negative film"))
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export negative film"))
 
 
         filename = str(filename)
         filename = str(filename)
 
 

+ 5 - 5
flatcamTools/ToolQRCode.py

@@ -9,7 +9,7 @@ from PyQt5 import QtWidgets, QtCore, QtGui
 from PyQt5.QtCore import Qt
 from PyQt5.QtCore import Qt
 
 
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCTextArea, FCSpinner, FCEntry, FCCheckBox, FCComboBox
+from flatcamGUI.GUIElements import RadioSet, FCTextArea, FCSpinner, FCEntry, FCCheckBox, FCComboBox, FCFileSaveDialog
 from flatcamParsers.ParseSVG import *
 from flatcamParsers.ParseSVG import *
 
 
 from shapely.geometry.base import *
 from shapely.geometry.base import *
@@ -778,12 +778,12 @@ class QRCode(FlatCAMTool):
 
 
         _filter = "PNG File (*.png);;All Files (*.*)"
         _filter = "PNG File (*.png);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export PNG"),
                 caption=_("Export PNG"),
                 directory=self.app.get_last_save_folder() + '/' + str(name) + '_png',
                 directory=self.app.get_last_save_folder() + '/' + str(name) + '_png',
                 filter=_filter)
                 filter=_filter)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export PNG"), filter=_filter)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG"), filter=_filter)
 
 
         filename = str(filename)
         filename = str(filename)
 
 
@@ -825,12 +825,12 @@ class QRCode(FlatCAMTool):
 
 
         _filter = "SVG File (*.svg);;All Files (*.*)"
         _filter = "SVG File (*.svg);;All Files (*.*)"
         try:
         try:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export SVG"),
                 caption=_("Export SVG"),
                 directory=self.app.get_last_save_folder() + '/' + str(name) + '_svg',
                 directory=self.app.get_last_save_folder() + '/' + str(name) + '_svg',
                 filter=_filter)
                 filter=_filter)
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export SVG"), filter=_filter)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), filter=_filter)
 
 
         filename = str(filename)
         filename = str(filename)
 
 

+ 4 - 3
flatcamTools/ToolSolderPaste.py

@@ -7,7 +7,8 @@
 
 
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 from FlatCAMCommon import LoudDict
 from FlatCAMCommon import LoudDict
-from flatcamGUI.GUIElements import FCComboBox, FCEntry, FCTable, FCInputDialog, FCDoubleSpinner, FCSpinner
+from flatcamGUI.GUIElements import FCComboBox, FCEntry, FCTable, \
+    FCInputDialog, FCDoubleSpinner, FCSpinner, FCFileSaveDialog
 from FlatCAMApp import log
 from FlatCAMApp import log
 from camlib import distance
 from camlib import distance
 from FlatCAMObj import FlatCAMCNCjob
 from FlatCAMObj import FlatCAMCNCjob
@@ -1492,13 +1493,13 @@ class SolderPaste(FlatCAMTool):
 
 
         try:
         try:
             dir_file_to_save = self.app.get_last_save_folder() + '/' + str(name)
             dir_file_to_save = self.app.get_last_save_folder() + '/' + str(name)
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(
+            filename, _f = FCFileSaveDialog.get_saved_filename(
                 caption=_("Export GCode ..."),
                 caption=_("Export GCode ..."),
                 directory=dir_file_to_save,
                 directory=dir_file_to_save,
                 filter=_filter_
                 filter=_filter_
             )
             )
         except TypeError:
         except TypeError:
-            filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Machine Code ..."), filter=_filter_)
+            filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Machine Code ..."), filter=_filter_)
 
 
         if filename == '':
         if filename == '':
             self.app.inform.emit('[WARNING_NOTCL] %s' %
             self.app.inform.emit('[WARNING_NOTCL] %s' %