diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-03-21 15:30:38 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-03-21 16:58:47 +0000 |
commit | 6abcec77bce4ddbaa02984f4033b3d3b595d4723 (patch) | |
tree | ec542e0eac384390fe8de609623090d68e881a26 | |
parent | 19eed14c97188d5fc924dc147dbb787e041eca67 (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.cpp | 34 | ||||
-rw-r--r-- | sources/shiboken2/ApiExtractor/fileout.h | 6 |
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; |