diff options
Diffstat (limited to 'src/base/QXmppError.cpp')
| -rw-r--r-- | src/base/QXmppError.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/base/QXmppError.cpp b/src/base/QXmppError.cpp index 80578c0d..eab4c749 100644 --- a/src/base/QXmppError.cpp +++ b/src/base/QXmppError.cpp @@ -32,6 +32,20 @@ /// /// +/// Constructs a QXmppError from an QIODevice +/// +/// It tries to cast the IO device to different known IO devices to get a useful more specific +/// error, i.e. it returns a QXmppError with QFileDevice::FileError for QFileDevices. +/// +QXmppError QXmppError::fromIoDevice(const QIODevice &device) +{ + if (const auto *file = dynamic_cast<const QFileDevice *>(&device)) { + return QXmppError { file->errorString(), file->error() }; + } + return QXmppError { device.errorString(), std::any() }; +} + +/// /// Returns whether the error is a QNetworkReply::NetworkError. /// bool QXmppError::isFileError() const |
