From: APTX Date: Fri, 11 Feb 2011 01:29:53 +0000 (+0100) Subject: Make it possible to know if a *Reply class is ready/succeeded without the replyReady... X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=e944658b3e3439642a824977ef8a93163e24af4a;p=anidbudpclient.git Make it possible to know if a *Reply class is ready/succeeded without the replyReady signal. --- diff --git a/abstractcommand.cpp b/abstractcommand.cpp index 24f9573..9e13892 100644 --- a/abstractcommand.cpp +++ b/abstractcommand.cpp @@ -31,6 +31,8 @@ AbstractReply::AbstractReply(const QByteArray &id, QObject *parent) : QObject(pa { m_replyCode = UNKNOWN_REPLY; m_id = id; + m_isReady = false; + m_success = false; m_commandPtr = 0; m_controlCommand = false; } @@ -49,6 +51,7 @@ void AbstractReply::setRawReply(ReplyCode replyCode, const QString &reply) { m_replyCode = replyCode; m_rawReply = reply; + m_isReady = true; } QString AbstractReply::rawReply() const @@ -66,6 +69,16 @@ QByteArray AbstractReply::id() const return m_id; } +bool AbstractReply::isReady() const +{ + return m_isReady; +} + +bool AbstractReply::success() const +{ + return m_success; +} + QDateTime AbstractReply::timeSent() const { return m_timeSent; @@ -76,6 +89,12 @@ bool AbstractReply::controlCommand() const return m_controlCommand; } +void AbstractReply::signalReplyReady(bool success) +{ + m_success = success; + emit replyReady(success); +} + void AbstractReply::setId(const QByteArray &id) { m_id = id; diff --git a/abstractcommand.h b/abstractcommand.h index 335018b..63e2cc2 100644 --- a/abstractcommand.h +++ b/abstractcommand.h @@ -55,10 +55,12 @@ class ANIDBUDPCLIENTSHARED_EXPORT AbstractReply : public QObject Q_OBJECT - Q_PROPERTY(QByteArray id READ id); - Q_PROPERTY(ReplyCode replyCode READ replyCode); - Q_PROPERTY(QDateTime timeSent READ timeSent); - Q_PROPERTY(bool controlCommand READ controlCommand); + Q_PROPERTY(QByteArray id READ id) + Q_PROPERTY(ReplyCode replyCode READ replyCode) + Q_PROPERTY(bool isReady READ isReady) + Q_PROPERTY(bool success READ isReady) + Q_PROPERTY(QDateTime timeSent READ timeSent) + Q_PROPERTY(bool controlCommand READ controlCommand) public: typedef AbstractCommand CommandType; @@ -74,6 +76,9 @@ public: virtual ReplyCode replyCode() const; virtual QByteArray id() const; + bool isReady() const; + bool success() const; + QDateTime timeSent() const; bool controlCommand() const; @@ -82,12 +87,15 @@ signals: void replyReady(bool success = false); protected: + void signalReplyReady(bool success = false); void setId(const QByteArray &id); void setTimeSent(const QDateTime &timeSent = QDateTime::currentDateTime()); void setControlCommand(bool controlCommand); QString m_rawReply; ReplyCode m_replyCode; + bool m_isReady; + bool m_success; QByteArray m_id; QDateTime m_timeSent; bool m_controlCommand; diff --git a/authcommand.cpp b/authcommand.cpp index 6153b66..e36f7d1 100644 --- a/authcommand.cpp +++ b/authcommand.cpp @@ -101,24 +101,24 @@ qDebug() << replyCode; case LOGIN_ACCEPTED_NEW_VER: m_errorString = ""; m_sessionId = m_rawReply.mid(0, m_rawReply.indexOf(" ")); - emit replyReady(true); + signalReplyReady(true); break; case LOGIN_FAILED: m_errorString = tr("Username and/or password incorrect"); - emit replyReady(false); + signalReplyReady(false); break; case CLIENT_VERSION_OUTDATED: m_errorString = tr("Client version outdated"); - emit replyReady(false); + signalReplyReady(false); break; case CLIENT_BANNED: m_errorString = tr("Banned: %1").arg(m_rawReply.mid(m_rawReply.indexOf("BANNED") + 1)); - emit replyReady(false); + signalReplyReady(false); break; default: qDebug() << "ERROR CODE: " << replyCode; m_errorString = tr("Unknown errorString (CODE: %1)").arg(m_replyCode); - emit replyReady(false); + signalReplyReady(false); } } diff --git a/filecommand.cpp b/filecommand.cpp index 3bf2fd4..11f8f4d 100644 --- a/filecommand.cpp +++ b/filecommand.cpp @@ -269,15 +269,15 @@ void FileReply::setRawReply(ReplyCode replyCode, const QString &reply) { case FILE: readReplyData(reply); - emit replyReady(true); + signalReplyReady(true); break; case MULTIPLE_FILES_FOUND: // TODO - emit replyReady(true); + signalReplyReady(true); break; case NO_SUCH_FILE: default: - emit replyReady(false); + signalReplyReady(false); break; } } diff --git a/mylistaddcommand.cpp b/mylistaddcommand.cpp index e2c65a5..34ef9bd 100644 --- a/mylistaddcommand.cpp +++ b/mylistaddcommand.cpp @@ -208,19 +208,19 @@ void MyListAddReply::setRawReply(ReplyCode replyCode, const QString &reply) { m_lid = lid.toInt(); } - emit replyReady(true); + signalReplyReady(true); } break; case MYLIST_ENTRY_EDITED: case FILE_ALREADY_IN_MYLIST: - emit replyReady(true); + signalReplyReady(true); break; case NO_SUCH_MYLIST_ENTRY: case NO_SUCH_FILE: case NO_SUCH_ANIME: case NO_SUCH_GROUP: default: - emit replyReady(false); + signalReplyReady(false); break; } } diff --git a/mylistcommand.cpp b/mylistcommand.cpp index 3a98924..8ec475f 100644 --- a/mylistcommand.cpp +++ b/mylistcommand.cpp @@ -321,18 +321,18 @@ void MyListReply::setRawReply(ReplyCode replyCode, const QString &reply) m_source = parts[9]; m_other = parts[10]; m_fileState = FileState(parts[11].toInt(&ok, 10)); - emit replyReady(true); + signalReplyReady(true); } break; case MULTIPLE_MYLIST_ENTRIES: { m_multipleEntries = reply.mid(reply.indexOf("\n")).split('|', QString::KeepEmptyParts); - emit replyReady(true); + signalReplyReady(true); } break; case NO_SUCH_ENTRY: default: - emit replyReady(false); + signalReplyReady(false); break; } } diff --git a/rawcommand.cpp b/rawcommand.cpp index 673ec92..6a1cd94 100644 --- a/rawcommand.cpp +++ b/rawcommand.cpp @@ -37,9 +37,9 @@ void RawReply::setRawReply(ReplyCode replyCode, const QString &reply) { AbstractReply::setRawReply(replyCode, reply); if (200 <= replyCode && replyCode >= 299) - emit replyReady(true); + signalReplyReady(true); else - emit replyReady(false); + signalReplyReady(false); } } // namespace AniDBUdpClient diff --git a/uptimecommand.cpp b/uptimecommand.cpp index 78ac86f..b755fe2 100644 --- a/uptimecommand.cpp +++ b/uptimecommand.cpp @@ -37,11 +37,11 @@ void UptimeReply::setRawReply(ReplyCode replyCode, const QString &reply) if (!ok) m_uptime = 0; - emit replyReady(ok); + signalReplyReady(ok); } break; default: - emit replyReady(false); + signalReplyReady(false); break; } }