Skip to content

Commit 2ab8e77

Browse files
committed
Saving only when user click OK.
1 parent 094a761 commit 2ab8e77

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

orangecanvas/application/canvasmain.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1521,11 +1521,12 @@ def save_scheme_as(self):
15211521
objectName="save-as-ows-filedialog",
15221522
)
15231523
dialog.setNameFilter(self.tr("Orange Workflow (*.ows)"))
1524-
dialog.exec()
1525-
files = dialog.selectedFiles()
1524+
# `deleteLater` can be ivoked before `exec` as PyQt 6.9 doc says, that
1525+
# it is activated after `exec`, and work on PyQt 5 version well (here)
15261526
dialog.deleteLater()
1527-
if files:
1528-
filename = files[0]
1527+
# dialog.exec waits for user action
1528+
if dialog.exec():
1529+
filename = dialog.selectedFiles()[0]
15291530
settings.setValue("last-scheme-dir", os.path.dirname(filename))
15301531
if self.save_scheme_to(curr_scheme, filename):
15311532
document.setPath(filename)
@@ -1564,7 +1565,7 @@ def save_scheme_to(self, scheme, filename):
15641565
exc_info=True,
15651566
parent=self
15661567
)
1567-
return False
1568+
return False # return False here because there is second part
15681569

15691570
try:
15701571
with open(filename, "wb") as f:
@@ -1581,7 +1582,6 @@ def save_scheme_to(self, scheme, filename):
15811582
informative_text=self.tr("Choose another location."),
15821583
parent=self
15831584
)
1584-
return False
15851585
except PermissionError as ex:
15861586
log.error("%s saving '%s'", type(ex).__name__, filename,
15871587
exc_info=True)
@@ -1594,7 +1594,6 @@ def save_scheme_to(self, scheme, filename):
15941594
"another location."),
15951595
parent=self
15961596
)
1597-
return False
15981597
except OSError as ex:
15991598
log.error("%s saving '%s'", type(ex).__name__, filename,
16001599
exc_info=True)
@@ -1605,8 +1604,6 @@ def save_scheme_to(self, scheme, filename):
16051604
exc_info=True,
16061605
parent=self
16071606
)
1608-
return False
1609-
16101607
except Exception: # pylint: disable=broad-except
16111608
log.error("Error saving %r to %r", scheme, filename, exc_info=True)
16121609
message_critical(
@@ -1616,7 +1613,7 @@ def save_scheme_to(self, scheme, filename):
16161613
exc_info=True,
16171614
parent=self
16181615
)
1619-
return False
1616+
return False # default behaviour
16201617

16211618
def save_swp(self):
16221619
"""

0 commit comments

Comments
 (0)