aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-03-21 15:30:38 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-03-21 16:58:47 +0000
commit6abcec77bce4ddbaa02984f4033b3d3b595d4723 (patch)
treeec542e0eac384390fe8de609623090d68e881a26
parent19eed14c97188d5fc924dc147dbb787e041eca67 (diff)
shiboken/FileOut: Add an overload that takes an error message string
This makes it easier to use it from other functions. Change-Id: I6f8c5ef8900c72d09bface011c36370e9210fba3 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--sources/shiboken2/ApiExtractor/fileout.cpp34
-rw-r--r--sources/shiboken2/ApiExtractor/fileout.h6
2 files changed, 31 insertions, 9 deletions
diff --git a/sources/shiboken2/ApiExtractor/fileout.cpp b/sources/shiboken2/ApiExtractor/fileout.cpp
index be0023c3c..4ee5abd52 100644
--- a/sources/shiboken2/ApiExtractor/fileout.cpp
+++ b/sources/shiboken2/ApiExtractor/fileout.cpp
@@ -174,6 +174,27 @@ static void diff(QList<QByteArray> a, QList<QByteArray> b)
FileOut::State FileOut::done()
{
+ QString errorMessage;
+ const State result = done(&errorMessage);
+ if (result == Failure)
+ qCWarning(lcShiboken, "%s", qPrintable(errorMessage));
+ return result;
+}
+
+QString FileOut::msgCannotOpenForReading(const QFile &f)
+{
+ return QStringLiteral("Failed to open file '%1' for reading: %2")
+ .arg(QDir::toNativeSeparators(f.fileName()), f.errorString());
+}
+
+QString FileOut::msgCannotOpenForWriting(const QFile &f)
+{
+ return QStringLiteral("Failed to open file '%1' for writing: %2")
+ .arg(QDir::toNativeSeparators(f.fileName()), f.errorString());
+}
+
+FileOut::State FileOut::done(QString *errorMessage)
+{
Q_ASSERT(!isDone);
if (name.isEmpty())
return Failure;
@@ -186,9 +207,7 @@ FileOut::State FileOut::done()
QByteArray original;
if (info.exists() && (diff || (info.size() == tmp.size()))) {
if (!fileRead.open(QIODevice::ReadOnly)) {
- qCWarning(lcShiboken).noquote().nospace()
- << QStringLiteral("failed to open file '%1' for reading")
- .arg(QDir::toNativeSeparators(fileRead.fileName()));
+ *errorMessage = msgCannotOpenForReading(fileRead);
return Failure;
}
@@ -203,17 +222,14 @@ FileOut::State FileOut::done()
if (!FileOut::dummy) {
QDir dir(info.absolutePath());
if (!dir.mkpath(dir.absolutePath())) {
- qCWarning(lcShiboken).noquote().nospace()
- << QStringLiteral("unable to create directory '%1'")
- .arg(QDir::toNativeSeparators(dir.absolutePath()));
+ *errorMessage = QStringLiteral("unable to create directory '%1'")
+ .arg(QDir::toNativeSeparators(dir.absolutePath()));
return Failure;
}
QFile fileWrite(name);
if (!fileWrite.open(QIODevice::WriteOnly)) {
- qCWarning(lcShiboken).noquote().nospace()
- << QStringLiteral("failed to open file '%1' for writing")
- .arg(QDir::toNativeSeparators(fileWrite.fileName()));
+ *errorMessage = msgCannotOpenForWriting(fileWrite);
return Failure;
}
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
diff --git a/sources/shiboken2/ApiExtractor/fileout.h b/sources/shiboken2/ApiExtractor/fileout.h
index 14ce3a251..de08a824c 100644
--- a/sources/shiboken2/ApiExtractor/fileout.h
+++ b/sources/shiboken2/ApiExtractor/fileout.h
@@ -32,6 +32,8 @@
#include <QtCore/QObject>
#include <QtCore/QTextStream>
+QT_FORWARD_DECLARE_CLASS(QFile)
+
class FileOut : public QObject
{
private:
@@ -49,6 +51,10 @@ public:
}
State done();
+ State done(QString *errorMessage);
+
+ static QString msgCannotOpenForReading(const QFile &f);
+ static QString msgCannotOpenForWriting(const QFile &f);
QTextStream stream;