@@ -1549,13 +1549,15 @@ def save_scheme_as(self):
15491549 acceptMode = QFileDialog .AcceptSave ,
15501550 windowModality = Qt .WindowModal ,
15511551 objectName = "save-as-ows-filedialog" ,
1552+ defaultSuffix = ".ows"
15521553 )
15531554 dialog .setNameFilter (self .tr ("Orange Workflow (*.ows)" ))
1554- dialog . exec ()
1555- files = dialog . selectedFiles ( )
1555+ # `deleteLater` can be ivoked before ` exec` as PyQt 6.9 doc says, that
1556+ # it is activated after `exec`, and work on PyQt 5 version well (here )
15561557 dialog .deleteLater ()
1557- if files :
1558- filename = files [0 ]
1558+ # dialog.exec waits for user action
1559+ if dialog .exec ():
1560+ filename = dialog .selectedFiles ()[0 ]
15591561 settings .setValue ("last-scheme-dir" , os .path .dirname (filename ))
15601562 if self .save_scheme_to (curr_scheme , filename ):
15611563 document .setPath (filename )
@@ -1591,7 +1593,7 @@ def save_scheme_to(self, scheme, filename):
15911593 exc_info = True ,
15921594 parent = self
15931595 )
1594- return False
1596+ return False # return False here because there is second part
15951597
15961598 try :
15971599 with open (filename , "wb" ) as f :
@@ -1608,7 +1610,6 @@ def save_scheme_to(self, scheme, filename):
16081610 informative_text = self .tr ("Choose another location." ),
16091611 parent = self
16101612 )
1611- return False
16121613 except PermissionError as ex :
16131614 log .error ("%s saving '%s'" , type (ex ).__name__ , filename ,
16141615 exc_info = True )
@@ -1621,7 +1622,6 @@ def save_scheme_to(self, scheme, filename):
16211622 "another location." ),
16221623 parent = self
16231624 )
1624- return False
16251625 except OSError as ex :
16261626 log .error ("%s saving '%s'" , type (ex ).__name__ , filename ,
16271627 exc_info = True )
@@ -1632,8 +1632,6 @@ def save_scheme_to(self, scheme, filename):
16321632 exc_info = True ,
16331633 parent = self
16341634 )
1635- return False
1636-
16371635 except Exception : # pylint: disable=broad-except
16381636 log .error ("Error saving %r to %r" , scheme , filename , exc_info = True )
16391637 message_critical (
@@ -1643,7 +1641,7 @@ def save_scheme_to(self, scheme, filename):
16431641 exc_info = True ,
16441642 parent = self
16451643 )
1646- return False
1644+ return False # default behaviour
16471645
16481646 def save_swp (self ):
16491647 """
0 commit comments