diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-10-02 19:46:31 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-10-02 23:01:13 +0200 |
| commit | 6ee26103c5383cef8664d9e7d19c96c83f9a89af (patch) | |
| tree | 09acf52f1cd0450a016b455a541858e8c37865f1 /src/base | |
| parent | 6e7ac053693acb454db63aac22266386782205c9 (diff) | |
| download | qxmpp-6ee26103c5383cef8664d9e7d19c96c83f9a89af.tar.gz | |
Error: Add fromFileDevice()
Diffstat (limited to 'src/base')
| -rw-r--r-- | src/base/QXmppError.cpp | 15 | ||||
| -rw-r--r-- | src/base/QXmppError.h | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/base/QXmppError.cpp b/src/base/QXmppError.cpp index bd894c10..98203778 100644 --- a/src/base/QXmppError.cpp +++ b/src/base/QXmppError.cpp @@ -40,7 +40,10 @@ QXmppError QXmppError::fromIoDevice(const QIODevice &device) { if (const auto *file = dynamic_cast<const QFileDevice *>(&device)) { - return QXmppError { file->errorString(), file->error() }; + return QXmppError::fromFileDevice(*file); + } + if (const auto *networkReply = dynamic_cast<const QNetworkReply *>(&device)) { + return QXmppError::fromNetworkReply(*networkReply); } return QXmppError { device.errorString(), std::any() }; } @@ -56,6 +59,16 @@ QXmppError QXmppError::fromNetworkReply(const QNetworkReply &reply) } /// +/// \brief Constructs a QXmppError from a QFileDevice +/// +/// It creates a QXmppError with the error string and a QFileDevice::FileError. +/// +QXmppError QXmppError::fromFileDevice(const QFileDevice &file) +{ + return QXmppError { file.errorString(), file.error() }; +} + +/// /// Returns whether the error is a QNetworkReply::NetworkError. /// bool QXmppError::isFileError() const diff --git a/src/base/QXmppError.h b/src/base/QXmppError.h index 65dc4308..1433bb8f 100644 --- a/src/base/QXmppError.h +++ b/src/base/QXmppError.h @@ -10,6 +10,7 @@ #include <any> #include <optional> +class QFileDevice; class QIODevice; class QNetworkReply; @@ -20,6 +21,7 @@ struct QXMPP_EXPORT QXmppError static QXmppError fromIoDevice(const QIODevice &device); static QXmppError fromNetworkReply(const QNetworkReply &reply); + static QXmppError fromFileDevice(const QFileDevice &file); bool isFileError() const; bool isNetworkError() const; |
