X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fidentity.cpp;h=b8afedf03c1a4f13801769ea3d2cb65d613a75ce;hp=40b0b2b6000034c78f7ef9e09896f732e369a7e8;hb=9e5ced750e86fc8b5d0d6b69b927323a2de7c3ec;hpb=7b7f0f6852c95b53a9b02d3a22a02e7c16ac7194 diff --git a/src/common/identity.cpp b/src/common/identity.cpp index 40b0b2b6..b8afedf0 100644 --- a/src/common/identity.cpp +++ b/src/common/identity.cpp @@ -28,6 +28,12 @@ # include "mac_utils.h" #endif +#ifdef Q_OS_UNIX +# include +# include +# include +#endif + #ifdef Q_OS_WIN32 # include # include @@ -75,10 +81,17 @@ void Identity::init() { QString Identity::defaultNick() { QString nick = QString("quassel%1").arg(qrand() & 0xff); // FIXME provide more sensible default nicks + #ifdef Q_OS_MAC QString shortUserName = CFStringToQString(CSCopyUserName(true)); if(!shortUserName.isEmpty()) nick = shortUserName; + +#elif defined(Q_OS_UNIX) + QString userName = getlogin(); + if(!userName.isEmpty()) + nick = userName; + #elif defined(Q_OS_WIN32) TCHAR infoBuf[128]; DWORD bufCharCount = 128; @@ -93,6 +106,7 @@ QString Identity::defaultNick() { nick = nickName; } #endif + // cleaning forbidden characters from nick QRegExp rx(QString("(^[\\d-]+|[^A-Za-z\x5b-\x60\x7b-\x7d])")); nick.remove(rx); @@ -119,7 +133,7 @@ void Identity::setToDefaults() { setIdentityName(tr("")); setRealName(defaultRealName()); QStringList n; - n << defaultNick(); + n << defaultNick() << defaultNick() + "_" << defaultNick() + "__"; setNicks(n); setAwayNick(""); setAwayNickEnabled(false);