diff --git a/src/dbus/qdbuserror.cpp b/src/dbus/qdbuserror.cpp index 9db279e0057..81afe6c4839 100644 --- a/src/dbus/qdbuserror.cpp +++ b/src/dbus/qdbuserror.cpp @@ -302,6 +302,24 @@ QDBusError &QDBusError::operator=(const QDBusError &other) return *this; } +/*! + \internal + Assignment operator from a QDBusMessage +*/ +QDBusError &QDBusError::operator=(const QDBusMessage &qdmsg) +{ + if (qdmsg.type() == QDBusMessage::ErrorMessage) { + code = ::get(qdmsg.errorName().toUtf8().constData()); + nm = qdmsg.errorName(); + msg = qdmsg.errorMessage(); + } else { + code =NoError; + nm.clear(); + msg.clear(); + } + return *this; +} + /*! Returns this error's ErrorType. diff --git a/src/dbus/qdbuserror.h b/src/dbus/qdbuserror.h index ed0bfaad9b7..3057f887156 100644 --- a/src/dbus/qdbuserror.h +++ b/src/dbus/qdbuserror.h @@ -98,6 +98,7 @@ public: QDBusError(ErrorType error, const QString &message); QDBusError(const QDBusError &other); QDBusError &operator=(const QDBusError &other); + QDBusError &operator=(const QDBusMessage &msg); ErrorType type() const; QString name() const;