aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2019-06-12 10:32:21 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2019-06-12 10:32:21 +0200
commit077db7a4a432c78490ae34ead3f1d5338175b81c (patch)
tree695f7dec0bd44472d6df5081b2dd1b9a9e626f65 /examples
parent1e8896f509bd3435b97b6036c02fb177e5f5e526 (diff)
Examples: Use QSaveFile
QSaveFile should preferably used for writing out files from editor applications to ensure files are properly written and existing files are not overwritten should writing fail. Change-Id: I5d9b98c168649d23f5ee31171b1729fd230dc8de Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/widgets/mainwindows/application/application.py23
-rw-r--r--examples/widgets/mainwindows/mdi/mdi.py24
2 files changed, 27 insertions, 20 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
diff --git a/examples/widgets/mainwindows/mdi/mdi.py b/examples/widgets/mainwindows/mdi/mdi.py
index b3c1c1eb9..9daca826d 100644
--- a/examples/widgets/mainwindows/mdi/mdi.py
+++ b/examples/widgets/mainwindows/mdi/mdi.py
@@ -43,7 +43,7 @@
"""PySide2 port of the widgets/draganddrop/draggabletext example from Qt v5.x, originating from PyQt"""
from PySide2.QtCore import (QFile, QFileInfo, QPoint, QSettings, QSignalMapper,
- QSize, QTextStream, Qt)
+ QSaveFile, QSize, QTextStream, Qt)
from PySide2.QtGui import QIcon, QKeySequence
from PySide2.QtWidgets import (QAction, QApplication, QFileDialog, QMainWindow,
QMdiArea, QMessageBox, QTextEdit, QWidget)
@@ -100,18 +100,22 @@ class MdiChild(QTextEdit):
return self.saveFile(fileName)
def saveFile(self, fileName):
- file = QFile(fileName)
-
- if not file.open(QFile.WriteOnly | QFile.Text):
- QMessageBox.warning(self, "MDI",
- "Cannot write file %s:\n%s." % (fileName, file.errorString()))
- return False
-
- outstr = QTextStream(file)
+ error = None
QApplication.setOverrideCursor(Qt.WaitCursor)
- outstr << self.toPlainText()
+ file = QSaveFile(fileName)
+ if file.open(QFile.WriteOnly | QFile.Text):
+ outstr = QTextStream(file)
+ outstr << self.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())
QApplication.restoreOverrideCursor()
+ if error:
+ QMessageBox.warning(self, "MDI", error)
+ return False
+
self.setCurrentFile(fileName)
return True