- 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
This commit is contained in:
Marius Stanciu 2020-04-11 02:55:32 +03:00 committed by Marius
parent 418ebd6606
commit abce81d802
9 changed files with 82 additions and 51 deletions

View File

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

View File

@ -13,7 +13,7 @@
from PyQt5 import QtGui, QtCore, QtWidgets
from flatcamGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, \
FCTree, RadioSet
FCTree, RadioSet, FCFileSaveDialog
from camlib import to_dict
import sys
@ -358,7 +358,7 @@ class BookmarkManager(QtWidgets.QWidget):
date = date.replace(' ', '_')
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(
l_save=str(self.app.get_last_save_folder()),
n=_("Bookmarks"),
@ -1094,7 +1094,7 @@ class ToolsDB(QtWidgets.QWidget):
date = date.replace(' ', '_')
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(
l_save=str(self.app.get_last_save_folder()),
n=_("Tools_Database"),
@ -2524,7 +2524,7 @@ class ToolsDB2(QtWidgets.QWidget):
date = date.replace(' ', '_')
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(
l_save=str(self.app.get_last_save_folder()),
n=_("Tools_Database"),

View File

@ -25,6 +25,7 @@ from datetime import datetime
from flatcamEditors.FlatCAMTextEditor import TextEditor
from flatcamGUI.ObjectUI import *
from flatcamGUI.GUIElements import FCFileSaveDialog
from FlatCAMCommon import LoudDict
from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
from flatcamParsers.ParseExcellon import Excellon
@ -7024,13 +7025,13 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
try:
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 ..."),
directory=dir_file_to_save,
filter=_filter_
)
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)

View File

@ -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
- 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 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

View File

@ -5,14 +5,14 @@
# 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.lib.styles import getSampleStyleSheet
from reportlab.lib.units import inch, mm
from io import StringIO
# from io import StringIO
import gettext
import FlatCAMTranslation as fcTranslate
@ -211,13 +211,13 @@ class TextEditor(QtWidgets.QWidget):
_filter_ = "FlatConfig Files (*.FlatConfig);;PDF Files (*.pdf);;All Files (*.*)"
try:
filename = str(QtWidgets.QFileDialog.getSaveFileName(
filename = str(FCFileSaveDialog.get_saved_filename(
caption=_("Export Code ..."),
directory=self.app.defaults["global_last_folder"] + '/' + str(obj_name),
filter=_filter_
)[0])
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 == "":
self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export Code cancelled."))
@ -236,7 +236,7 @@ class TextEditor(QtWidgets.QWidget):
styles = getSampleStyleSheet()
styleN = styles['Normal']
styleH = styles['Heading1']
# styleH = styles['Heading1']
story = []
if self.app.defaults['units'].lower() == 'mm':

View File

@ -2853,6 +2853,30 @@ class FCTextAreaLineNumber(QtWidgets.QFrame):
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):
"""
Credits go here:

View File

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

View File

@ -9,7 +9,7 @@ from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import Qt
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 shapely.geometry.base import *
@ -778,12 +778,12 @@ class QRCode(FlatCAMTool):
_filter = "PNG File (*.png);;All Files (*.*)"
try:
filename, _f = QtWidgets.QFileDialog.getSaveFileName(
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export PNG"),
directory=self.app.get_last_save_folder() + '/' + str(name) + '_png',
filter=_filter)
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)
@ -825,12 +825,12 @@ class QRCode(FlatCAMTool):
_filter = "SVG File (*.svg);;All Files (*.*)"
try:
filename, _f = QtWidgets.QFileDialog.getSaveFileName(
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export SVG"),
directory=self.app.get_last_save_folder() + '/' + str(name) + '_svg',
filter=_filter)
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)

View File

@ -7,7 +7,8 @@
from FlatCAMTool import FlatCAMTool
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 camlib import distance
from FlatCAMObj import FlatCAMCNCjob
@ -1492,13 +1493,13 @@ class SolderPaste(FlatCAMTool):
try:
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 ..."),
directory=dir_file_to_save,
filter=_filter_
)
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 == '':
self.app.inform.emit('[WARNING_NOTCL] %s' %