aboutsummaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-10-02 19:46:31 +0200
committerLinus Jahn <lnj@kaidan.im>2022-10-02 23:01:13 +0200
commit6ee26103c5383cef8664d9e7d19c96c83f9a89af (patch)
tree09acf52f1cd0450a016b455a541858e8c37865f1 /src/base
parent6e7ac053693acb454db63aac22266386782205c9 (diff)
downloadqxmpp-6ee26103c5383cef8664d9e7d19c96c83f9a89af.tar.gz
Error: Add fromFileDevice()
Diffstat (limited to 'src/base')
-rw-r--r--src/base/QXmppError.cpp15
-rw-r--r--src/base/QXmppError.h2
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;