X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fidentity.cpp;h=3e6f3fc3c47068d989b42c7365684c35f95b08d2;hp=7f1cac69fe666fb66d28209b63d22b4a24d738be;hb=HEAD;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf diff --git a/src/common/identity.cpp b/src/common/identity.cpp index 7f1cac69..80bffc14 100644 --- a/src/common/identity.cpp +++ b/src/common/identity.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,79 +21,75 @@ #include "identity.h" #include -#include #include +#include #ifdef Q_OS_MAC -# include -# include "mac_utils.h" +# include + +# include "mac_utils.h" #endif #ifdef Q_OS_UNIX -# include -# include -# include +# include +# include +# include #endif #ifdef Q_OS_WIN -# include -# include -# define SECURITY_WIN32 -# include +# include +# include +# define SECURITY_WIN32 +# include #endif -INIT_SYNCABLE_OBJECT(Identity) -Identity::Identity(IdentityId id, QObject *parent) - : SyncableObject(parent), - _identityId(id) +Identity::Identity(IdentityId id, QObject* parent) + : SyncableObject(parent) + , _identityId(id) { init(); setToDefaults(); } - -Identity::Identity(const Identity &other, QObject *parent) - : SyncableObject(parent), - _identityId(other.id()), - _identityName(other.identityName()), - _realName(other.realName()), - _nicks(other.nicks()), - _awayNick(other.awayNick()), - _awayNickEnabled(other.awayNickEnabled()), - _awayReason(other.awayReason()), - _awayReasonEnabled(other.awayReasonEnabled()), - _autoAwayEnabled(other.autoAwayEnabled()), - _autoAwayTime(other.autoAwayTime()), - _autoAwayReason(other.autoAwayReason()), - _autoAwayReasonEnabled(other.autoAwayReasonEnabled()), - _detachAwayEnabled(other.detachAwayEnabled()), - _detachAwayReason(other.detachAwayReason()), - _detachAwayReasonEnabled(other.detachAwayReasonEnabled()), - _ident(other.ident()), - _kickReason(other.kickReason()), - _partReason(other.partReason()), - _quitReason(other.quitReason()) +Identity::Identity(const Identity& other, QObject* parent) + : SyncableObject(parent) + , _identityId(other.id()) + , _identityName(other.identityName()) + , _realName(other.realName()) + , _nicks(other.nicks()) + , _awayNick(other.awayNick()) + , _awayNickEnabled(other.awayNickEnabled()) + , _awayReason(other.awayReason()) + , _awayReasonEnabled(other.awayReasonEnabled()) + , _autoAwayEnabled(other.autoAwayEnabled()) + , _autoAwayTime(other.autoAwayTime()) + , _autoAwayReason(other.autoAwayReason()) + , _autoAwayReasonEnabled(other.autoAwayReasonEnabled()) + , _detachAwayEnabled(other.detachAwayEnabled()) + , _detachAwayReason(other.detachAwayReason()) + , _detachAwayReasonEnabled(other.detachAwayReasonEnabled()) + , _ident(other.ident()) + , _kickReason(other.kickReason()) + , _partReason(other.partReason()) + , _quitReason(other.quitReason()) { init(); } - #ifdef Q_OS_WIN -#ifdef UNICODE -QString tcharToQString(TCHAR *tchar) +# ifdef UNICODE +QString tcharToQString(TCHAR* tchar) { - return QString::fromUtf16(reinterpret_cast(tchar)); + return QString::fromUtf16(reinterpret_cast(tchar)); } - -#else -QString tcharToQString(TCHAR *tchar) +# else +QString tcharToQString(TCHAR* tchar) { return QString::fromLocal8Bit(tchar); } - -#endif +# endif #endif void Identity::init() @@ -102,10 +98,9 @@ void Identity::init() setAllowClientUpdates(true); } - QString Identity::defaultNick() { - QString nick = QString("quassel%1").arg(qrand() & 0xff); // FIXME provide more sensible default nicks + QString nick = QString("quassel%1").arg(qrand() & 0xff); // FIXME provide more sensible default nicks #ifdef Q_OS_MAC QString shortUserName = CFStringToQString(CSCopyUserName(true)); @@ -114,7 +109,7 @@ QString Identity::defaultNick() #elif defined(Q_OS_UNIX) QString userName; - struct passwd *pwd = getpwuid(getuid()); + struct passwd* pwd = getpwuid(getuid()); if (pwd) userName = pwd->pw_name; if (!userName.isEmpty()) @@ -123,7 +118,7 @@ QString Identity::defaultNick() #elif defined(Q_OS_WIN) TCHAR infoBuf[128]; DWORD bufCharCount = 128; - //if(GetUserNameEx(/* NameSamCompatible */ 1, infoBuf, &bufCharCount)) + // if(GetUserNameEx(/* NameSamCompatible */ 1, infoBuf, &bufCharCount)) if (GetUserNameEx(NameSamCompatible, infoBuf, &bufCharCount)) { QString nickName(tcharToQString(infoBuf)); int lastBs = nickName.lastIndexOf('\\'); @@ -136,12 +131,11 @@ QString Identity::defaultNick() #endif // cleaning forbidden characters from nick - QRegExp rx(QString("(^[\\d-]+|[^A-Za-z0-9\x5b-\x60\x7b-\x7d])")); + QRegExp rx(QString("(^[\\d-]+|[^A-Za-z0-9\x5b-\x60\x7b-\x7d])")); // NOLINT(modernize-raw-string-literal) nick.remove(rx); return nick; } - QString Identity::defaultRealName() { QString generalDefault = tr("Quassel IRC User"); @@ -151,7 +145,7 @@ QString Identity::defaultRealName() #elif defined(Q_OS_UNIX) QString realName; - struct passwd *pwd = getpwuid(getuid()); + struct passwd* pwd = getpwuid(getuid()); if (pwd) realName = QString::fromUtf8(pwd->pw_gecos); if (!realName.isEmpty()) @@ -171,7 +165,6 @@ QString Identity::defaultRealName() #endif } - void Identity::setToDefaults() { setIdentityName(tr("")); @@ -186,7 +179,7 @@ void Identity::setToDefaults() setAutoAwayTime(10); setAutoAwayReason(tr("Not here. No, really. not here!")); setAutoAwayReasonEnabled(false); - setDetachAwayEnabled(false); + setDetachAwayEnabled(true); setDetachAwayReason(tr("All Quassel clients vanished from the face of the earth...")); setDetachAwayReasonEnabled(false); setIdent("quassel"); @@ -195,7 +188,6 @@ void Identity::setToDefaults() setQuitReason(tr("https://quassel-irc.org - Chat comfortably. Anywhere.")); } - /*** setters ***/ void Identity::setId(IdentityId _id) @@ -203,140 +195,121 @@ void Identity::setId(IdentityId _id) _identityId = _id; SYNC(ARG(_id)) emit idSet(_id); - renameObject(QString::number(id().toInt())); + setObjectName(QString::number(id().toInt())); } - -void Identity::setIdentityName(const QString &identityName) +void Identity::setIdentityName(const QString& identityName) { _identityName = identityName; SYNC(ARG(identityName)) } - -void Identity::setRealName(const QString &realName) +void Identity::setRealName(const QString& realName) { _realName = realName; SYNC(ARG(realName)) } - -void Identity::setNicks(const QStringList &nicks) +void Identity::setNicks(const QStringList& nicks) { _nicks = nicks; SYNC(ARG(nicks)) emit nicksSet(nicks); } - -void Identity::setAwayNick(const QString &nick) +void Identity::setAwayNick(const QString& nick) { _awayNick = nick; SYNC(ARG(nick)) } - -void Identity::setAwayReason(const QString &reason) +void Identity::setAwayReason(const QString& reason) { _awayReason = reason; SYNC(ARG(reason)) } - void Identity::setAwayNickEnabled(bool enabled) { _awayNickEnabled = enabled; SYNC(ARG(enabled)) } - void Identity::setAwayReasonEnabled(bool enabled) { _awayReasonEnabled = enabled; SYNC(ARG(enabled)) } - void Identity::setAutoAwayEnabled(bool enabled) { _autoAwayEnabled = enabled; SYNC(ARG(enabled)) } - void Identity::setAutoAwayTime(int time) { _autoAwayTime = time; SYNC(ARG(time)) } - -void Identity::setAutoAwayReason(const QString &reason) +void Identity::setAutoAwayReason(const QString& reason) { _autoAwayReason = reason; SYNC(ARG(reason)) } - void Identity::setAutoAwayReasonEnabled(bool enabled) { _autoAwayReasonEnabled = enabled; SYNC(ARG(enabled)) } - void Identity::setDetachAwayEnabled(bool enabled) { _detachAwayEnabled = enabled; SYNC(ARG(enabled)) } - -void Identity::setDetachAwayReason(const QString &reason) +void Identity::setDetachAwayReason(const QString& reason) { _detachAwayReason = reason; SYNC(ARG(reason)) } - void Identity::setDetachAwayReasonEnabled(bool enabled) { _detachAwayReasonEnabled = enabled; SYNC(ARG(enabled)) } - -void Identity::setIdent(const QString &ident) +void Identity::setIdent(const QString& ident) { _ident = ident; SYNC(ARG(ident)) } - -void Identity::setKickReason(const QString &reason) +void Identity::setKickReason(const QString& reason) { _kickReason = reason; SYNC(ARG(reason)) } - -void Identity::setPartReason(const QString &reason) +void Identity::setPartReason(const QString& reason) { _partReason = reason; SYNC(ARG(reason)) } - -void Identity::setQuitReason(const QString &reason) +void Identity::setQuitReason(const QString& reason) { _quitReason = reason; SYNC(ARG(reason)) } - /*** ***/ -void Identity::copyFrom(const Identity &other) +void Identity::copyFrom(const Identity& other) { for (int idx = staticMetaObject.propertyOffset(); idx < staticMetaObject.propertyCount(); idx++) { QMetaProperty metaProp = staticMetaObject.property(idx); @@ -347,50 +320,43 @@ void Identity::copyFrom(const Identity &other) } } - -bool Identity::operator==(const Identity &other) const +bool Identity::operator==(const Identity& other) const { for (int idx = staticMetaObject.propertyOffset(); idx < staticMetaObject.propertyCount(); idx++) { QMetaProperty metaProp = staticMetaObject.property(idx); Q_ASSERT(metaProp.isValid()); QVariant v1 = this->property(metaProp.name()); - QVariant v2 = other.property(metaProp.name()); // qDebug() << v1 << v2; + 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; + if (v1.value() != v2.value()) + return false; } else { - if (v1 != v2) return false; + if (v1 != v2) + return false; } } return true; } - -bool Identity::operator!=(const Identity &other) const +bool Identity::operator!=(const Identity& other) const { return !(*this == other); } - /////////////////////////////// -QDataStream &operator<<(QDataStream &out, Identity id) +QDataStream& operator<<(QDataStream& out, Identity id) { out << id.toVariantMap(); return out; } - -QDataStream &operator>>(QDataStream &in, Identity &id) +QDataStream& operator>>(QDataStream& in, Identity& id) { QVariantMap i; in >> i; id.fromVariantMap(i); return in; } - - -#ifdef HAVE_SSL -INIT_SYNCABLE_OBJECT(CertManager) -#endif // HAVE_SSL