Skip to content

Commit 2ad74b9

Browse files
committedMay 20, 2018
[processing] better unsaved change dialog upon closing script editor
1 parent 5a4d33f commit 2ad74b9

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed
 

‎python/plugins/processing/script/ScriptEditorDialog.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,20 +119,26 @@ def __init__(self, filePath=None, parent=None):
119119
self.setHasChanged(False)
120120

121121
def closeEvent(self, event):
122+
settings = QgsSettings()
123+
settings.setValue("/Processing/stateScriptEditor", self.saveState())
124+
settings.setValue("/Processing/geometryScriptEditor", self.saveGeometry())
125+
122126
if self.hasChanged:
123-
ret = QMessageBox.question(self,
124-
self.tr("Unsaved changes"),
125-
self.tr("There are unsaved changes in the script. Continue?"),
126-
QMessageBox.Yes | QMessageBox.No,
127-
QMessageBox.No
128-
)
129-
if ret == QMessageBox.Yes:
127+
ret = QMessageBox.question(
128+
self, self.tr('Save Script?'),
129+
self.tr('There are unsaved changes in this script. Do you want to keep those?'),
130+
QMessageBox.Save | QMessageBox.Cancel | QMessageBox.Discard, QMessageBox.Cancel)
131+
132+
if ret == QMessageBox.Save:
133+
self.updateProvider()
134+
self.saveScript(False)
135+
event.accept()
136+
elif ret == QMessageBox.Discard:
130137
self.updateProvider()
131138
event.accept()
132139
else:
133140
event.ignore()
134141
else:
135-
self.updateProvider()
136142
event.accept()
137143

138144
def updateProvider(self):

0 commit comments

Comments
 (0)
Please sign in to comment.