aboutsummaryrefslogtreecommitdiffstats
path: root/examples/widgets/mainwindows/application/application.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/widgets/mainwindows/application/application.py')
-rw-r--r--examples/widgets/mainwindows/application/application.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/examples/widgets/mainwindows/application/application.py b/examples/widgets/mainwindows/application/application.py
index e0a46bdad..624fb47d5 100644
--- a/examples/widgets/mainwindows/application/application.py
+++ b/examples/widgets/mainwindows/application/application.py
@@ -229,19 +229,22 @@ class MainWindow(QtWidgets.QMainWindow):
self.statusBar().showMessage("File loaded", 2000)
def saveFile(self, fileName):
- file = QtCore.QFile(fileName)
- if not file.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text):
- QtWidgets.QMessageBox.warning(self, "Application",
- "Cannot write file %s:\n%s." % (fileName, file.errorString()))
- return False
-
- outf = QtCore.QTextStream(file)
+ error = None
QtWidgets.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor)
-
- # FIXME: Once file is out of scope, the file is empty, instead of having text.
- outf << self.textEdit.toPlainText()
+ file = QtCore.QSaveFile(fileName)
+ if file.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text):
+ outf = QtCore.QTextStream(file)
+ outf << self.textEdit.toPlainText()
+ if not file.commit():
+ error = "Cannot write file %s:\n%s." % (fileName, file.errorString())
+ else:
+ error = "Cannot open file %s:\n%s." % (fileName, file.errorString())
QtWidgets.QApplication.restoreOverrideCursor()
+ if error:
+ QtWidgets.QMessageBox.warning(self, "Application", error)
+ return False
+
self.setCurrentFile(fileName)
self.statusBar().showMessage("File saved", 2000)
return True