X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fidentity.cpp;h=dcec2d92f47f0b1a9778084501a60281e303dbd7;hb=85b55cf023c96f4dbd61ec415a15214f99e281b3;hp=c2fdeaf52ba174d00f7b034323f9716e099b31cb;hpb=21d8d7f0a79eeeb541664aa80ce481fdbfc41f09;p=quassel.git diff --git a/src/common/identity.cpp b/src/common/identity.cpp index c2fdeaf5..dcec2d92 100644 --- a/src/common/identity.cpp +++ b/src/common/identity.cpp @@ -23,12 +23,12 @@ #include "identity.h" -Identity::Identity(IdentityId id, QObject *parent) : QObject(parent), _identityId(id) { +Identity::Identity(IdentityId id, QObject *parent) : SyncableObject(parent), _identityId(id) { init(); setToDefaults(); } -Identity::Identity(const Identity &other, QObject *parent) : QObject(parent), +Identity::Identity(const Identity &other, QObject *parent) : SyncableObject(parent), _identityId(other.id()), _identityName(other.identityName()), _realName(other.realName()), @@ -37,14 +37,13 @@ Identity::Identity(const Identity &other, QObject *parent) : QObject(parent), _awayNickEnabled(other.awayNickEnabled()), _awayReason(other.awayReason()), _awayReasonEnabled(other.awayReasonEnabled()), - _returnMessage(other.returnMessage()), - _returnMessageEnabled(other.returnMessageEnabled()), _autoAwayEnabled(other.autoAwayEnabled()), _autoAwayTime(other.autoAwayTime()), _autoAwayReason(other.autoAwayReason()), _autoAwayReasonEnabled(other.autoAwayReasonEnabled()), - _autoReturnMessage(other.autoReturnMessage()), - _autoReturnMessageEnabled(other.autoReturnMessageEnabled()), + _detachAwayEnabled(other.detachAwayEnabled()), + _detachAwayReason(other.detachAwayReason()), + _detachAwayReasonEnabled(other.detachAwayReasonEnabled()), _ident(other.ident()), _kickReason(other.kickReason()), _partReason(other.partReason()), @@ -55,12 +54,12 @@ Identity::Identity(const Identity &other, QObject *parent) : QObject(parent), } void Identity::init() { - _initialized = false; - setObjectName(QString::number(id())); + setObjectName(QString::number(id().toInt())); + setAllowClientUpdates(true); } void Identity::setToDefaults() { - setIdentityName(tr("Default Identity")); + setIdentityName(tr("")); setRealName(tr("Quassel IRC User")); QStringList n; n << QString("quassel%1").arg(qrand() & 0xff); // FIXME provide more sensible default nicks @@ -69,31 +68,21 @@ void Identity::setToDefaults() { setAwayNickEnabled(false); setAwayReason(tr("Gone fishing.")); setAwayReasonEnabled(true); - setReturnMessage(tr("Brought fish.")); - setReturnMessageEnabled(false); setAutoAwayEnabled(false); setAutoAwayTime(10); setAutoAwayReason(tr("Not here. No, really. not here!")); setAutoAwayReasonEnabled(false); - setAutoReturnMessage(tr("Back in action again!")); - setAutoReturnMessageEnabled(false); + setDetachAwayEnabled(false); + setDetachAwayReason(tr("All Quassel clients vanished from the face of the earth...")); + setDetachAwayReasonEnabled(false); setIdent("quassel"); setKickReason(tr("Kindergarten is elsewhere!")); setPartReason(tr("http://quassel-irc.org - Chat comfortably. Anywhere.")); setQuitReason(tr("http://quassel-irc.org - Chat comfortably. Anywhere.")); - } bool Identity::isValid() const { - return (id() > 0); -} - -bool Identity::initialized() const { - return _initialized; -} - -void Identity::setInitialized() { - _initialized = true; + return (id().toInt() > 0); } IdentityId Identity::id() const { @@ -128,14 +117,6 @@ bool Identity::awayReasonEnabled() const { return _awayReasonEnabled; } -QString Identity::returnMessage() const { - return _returnMessage; -} - -bool Identity::returnMessageEnabled() const { - return _returnMessageEnabled; -} - bool Identity::autoAwayEnabled() const { return _autoAwayEnabled; } @@ -152,12 +133,16 @@ bool Identity::autoAwayReasonEnabled() const { return _autoAwayReasonEnabled; } -QString Identity::autoReturnMessage() const { - return _autoReturnMessage; +bool Identity::detachAwayEnabled() const { + return _detachAwayEnabled; +} + +QString Identity::detachAwayReason() const { + return _detachAwayReason; } -bool Identity::autoReturnMessageEnabled() const { - return _autoReturnMessageEnabled; +bool Identity::detachAwayReasonEnabled() const { + return _detachAwayReasonEnabled; } QString Identity::ident() const { @@ -180,7 +165,7 @@ QString Identity::quitReason() const { // NOTE: DO NOT USE ON SYNCHRONIZED OBJECTS! void Identity::setId(IdentityId _id) { _identityId = _id; - setObjectName(QString::number(id())); + setObjectName(QString::number(id().toInt())); //emit idSet(id); } @@ -209,11 +194,6 @@ void Identity::setAwayReason(const QString &reason) { emit awayReasonSet(reason); } -void Identity::setReturnMessage(const QString &message) { - _returnMessage = message; - emit returnMessageSet(message); -} - void Identity::setAwayNickEnabled(bool enabled) { _awayNickEnabled = enabled; emit awayNickEnabledSet(enabled); @@ -224,11 +204,6 @@ void Identity::setAwayReasonEnabled(bool enabled) { emit awayReasonEnabledSet(enabled); } -void Identity::setReturnMessageEnabled(bool enabled) { - _returnMessageEnabled = enabled; - emit returnMessageEnabledSet(enabled); -} - void Identity::setAutoAwayEnabled(bool enabled) { _autoAwayEnabled = enabled; emit autoAwayEnabledSet(enabled); @@ -249,14 +224,19 @@ void Identity::setAutoAwayReasonEnabled(bool enabled) { emit autoAwayReasonEnabledSet(enabled); } -void Identity::setAutoReturnMessage(const QString & message) { - _autoReturnMessage = message; - emit autoReturnMessageSet(message); +void Identity::setDetachAwayEnabled(bool enabled) { + _detachAwayEnabled = enabled; + emit detachAwayEnabledSet(enabled); +} + +void Identity::setDetachAwayReason(const QString & reason) { + _detachAwayReason = reason; + emit detachAwayReasonSet(reason); } -void Identity::setAutoReturnMessageEnabled(bool enabled) { - _autoReturnMessageEnabled = enabled; - emit autoReturnMessageEnabledSet(enabled); +void Identity::setDetachAwayReasonEnabled(bool enabled) { + _detachAwayReasonEnabled = enabled; + emit detachAwayReasonEnabledSet(enabled); } void Identity::setIdent(const QString & ident) { @@ -290,14 +270,14 @@ for(int idx = metaObject()->propertyOffset(); idx < metaObject()->propertyCount( } } } -#include + bool Identity::operator==(const Identity &other) { for(int idx = metaObject()->propertyOffset(); idx < metaObject()->propertyCount(); idx++) { QMetaProperty metaProp = metaObject()->property(idx); Q_ASSERT(metaProp.isValid()); QVariant v1 = this->property(metaProp.name()); - QVariant v2 = other.property(metaProp.name()); //qDebug() << v1 << v2; - // QVariant cannot compare custom types, so we need to check for this case + QVariant v2 = other.property(metaProp.name()); // qDebug() << v1 << v2; + // QVariant cannot compare custom types, so we need to check for this special case if(QString(v1.typeName()) == "IdentityId") { if(v1.value() != v2.value()) return false; } else { @@ -313,56 +293,15 @@ bool Identity::operator!=(const Identity &other) { /////////////////////////////// -// we use a hash, so we can easily extend identities without breaking saved ones -QDataStream &operator<<(QDataStream &out, const Identity &id) { - QVariantMap i; - i["IdentityId"] = id.id(); - i["IdentityName"] = id.identityName(); - i["RealName"] = id.realName(); - i["Nicks"] = id.nicks(); - i["AwayNick"] = id.awayNick(); - i["AwayNickEnabled"] = id.awayNickEnabled(); - i["AwayReason"] = id.awayReason(); - i["AwayReasonEnabled"] = id.awayReasonEnabled(); - i["ReturnMessage"] = id.returnMessage(); - i["ReturnMessageEnabled"] = id.returnMessageEnabled(); - i["AutoAwayEnabled"] = id.autoAwayEnabled(); - i["AutoAwayTime"] = id.autoAwayTime(); - i["AutoAwayReason"] = id.autoAwayReason(); - i["AutoAwayReasonEnabled"] = id.autoAwayReasonEnabled(); - i["AutoReturnMessage"] = id.autoReturnMessage(); - i["AutoReturnMessageEnabled"] = id.autoReturnMessageEnabled(); - i["Ident"] = id.ident(); - i["KickReason"] = id.kickReason(); - i["PartReason"] = id.partReason(); - i["QuitReason"] = id.quitReason(); - out << i; +QDataStream &operator<<(QDataStream &out, Identity id) { + out << id.toVariantMap(); return out; } + QDataStream &operator>>(QDataStream &in, Identity &id) { QVariantMap i; in >> i; - id._identityId = i["IdentityId"].toUInt(); - id.setIdentityName(i["IdentityName"].toString()); - id.setRealName(i["RealName"].toString()); - id.setNicks(i["Nicks"].toStringList()); - id.setAwayNick(i["AwayNick"].toString()); - id.setAwayNickEnabled(i["AwayNickEnabled"].toBool()); - id.setAwayReason(i["AwayReason"].toString()); - id.setAwayReasonEnabled(i["AwayReasonEnabled"].toBool()); - id.setReturnMessage(i["ReturnMessage"].toString()); - id.setReturnMessageEnabled(i["ReturnMessageEnabled"].toBool()); - id.setAutoAwayEnabled(i["AutoAwayEnabled"].toBool()); - id.setAutoAwayTime(i["AutoAwayTime"].toInt()); - id.setAutoAwayReason(i["AutoAwayReason"].toString()); - id.setAutoAwayReasonEnabled(i["AutoAwayReasonEnabled"].toBool()); - id.setAutoReturnMessage(i["AutoReturnMessage"].toString()); - id.setAutoReturnMessageEnabled(i["AutoReturnMessageEnabled"].toBool()); - id.setIdent(i["Ident"].toString()); - id.setKickReason(i["KickReason"].toString()); - id.setPartReason(i["PartReason"].toString()); - id.setQuitReason(i["QuitReason"].toString()); + id.fromVariantMap(i); return in; } -