From 9e5ced750e86fc8b5d0d6b69b927323a2de7c3ec Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Wed, 11 Feb 2009 22:14:31 +0100 Subject: [PATCH] Use login name as default nick on Unix, fixes #516 --- src/common/identity.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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); -- 2.20.1