@@ -131,11 +131,25 @@ def requestWrite(self, node, fileName=None, *args, **kwargs):
131131 self ._dialog .findChild (QObject , "nameField" ).setProperty ('focus' , True )
132132
133133 def onFilenameChanged (self ):
134- fileName = self ._dialog .findChild (QObject , "nameField" ).property ('text' )
134+ fileName = self ._dialog .findChild (QObject , "nameField" ).property ('text' ).strip ()
135+
136+ forbidden_characters = "\" '´`<>()[]?*\,;:&%#$!"
137+ for forbidden_character in forbidden_characters :
138+ if forbidden_character in fileName :
139+ self ._dialog .setProperty ('validName' , False )
140+ self ._dialog .setProperty ('validationError' , 'Filename cannot contain {}' .format (forbidden_characters ))
141+ return
142+
143+ if fileName == '.' or fileName == '..' :
144+ self ._dialog .setProperty ('validName' , False )
145+ self ._dialog .setProperty ('validationError' , 'Filename cannot be "." or ".."' )
146+ return
147+
135148 self ._dialog .setProperty ('validName' , len (fileName ) > 0 )
149+ self ._dialog .setProperty ('validationError' , 'Filename too short' )
136150
137151 def onFilenameAccepted (self ):
138- self ._fileName = self ._dialog .findChild (QObject , "nameField" ).property ('text' )
152+ self ._fileName = self ._dialog .findChild (QObject , "nameField" ).property ('text' ). strip ()
139153 if not self ._fileName .endswith ('.gcode' ) and '.' not in self ._fileName :
140154 self ._fileName += '.gcode'
141155 Logger .log ("d" , self ._name_id + " | Filename set to: " + self ._fileName )
0 commit comments