[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [Konversation] 0e9b164: More server nick info tracking. If you want
From: Gary Cramblitt <garycramblitt () comcast ! net>
Date: 2010-07-01 13:27:18
Message-ID: 20100701132718.E9E8BBB5595 () projects ! kde ! org
[Download RAW message or body]
commit 0e9b164405d0532184ef88037cf8322d1a843376
Author: Gary Cramblitt <garycramblitt@comcast.net>
Date: Sun Jan 25 04:02:17 2004 +0000
More server nick info tracking. If you want to play with this, \
uncomment define USE_NICKINFO in server.h.
svn path=/trunk/kdeextragear-2/konversation/; revision=282414
diff --git a/konversation/inputfilter.cpp b/konversation/inputfilter.cpp
index 40ba570..3d06134 100644
--- a/konversation/inputfilter.cpp
+++ b/konversation/inputfilter.cpp
@@ -972,6 +972,11 @@ void InputFilter::parseServerCommand(const QString \
&prefix, const QString &comma }
case RPL_AWAY:
{
+#ifdef USE_NICKINFO
+ NickInfo* nickInfo = server->obtainNickInfo(parameterList[1]);
+ nickInfo->setAway(true);
+ nickInfo->setAwayMessage(trailing);
+#endif
server->appendStatusMessage(i18n("Away"),i18n("%1 is away: \
%2").arg(parameterList[1]).arg(trailing)); break;
}
@@ -980,8 +985,23 @@ void InputFilter::parseServerCommand(const QString \
&prefix, const QString &comma
server->appendStatusMessage(i18n("Invite"),i18n("You invited %1 \
into channel %2.").arg(parameterList[1]).arg(parameterList[2])); break;
}
+/* Sample WHOIS response
+/WHOIS psn
+[19:11] :zahn.freenode.net 311 PhantomsDad psn ~psn \
h106n2fls23o1068.bredband.comhem.se * :Peter Simonsson +[19:11] \
:zahn.freenode.net 319 PhantomsDad psn :#kde-devel #koffice +[19:11] \
:zahn.freenode.net 312 PhantomsDad psn irc.freenode.net \
:http://freenode.net/ +[19:11] :zahn.freenode.net 301 PhantomsDad psn \
:away +[19:11] :zahn.freenode.net 320 PhantomsDad psn :is an identified \
user +[19:11] :zahn.freenode.net 317 PhantomsDad psn 4921 1074973024 \
:seconds idle, signon time +[19:11] :zahn.freenode.net 318 PhantomsDad psn \
:End of /WHOIS list. +*/
case RPL_WHOISUSER:
{
+#ifdef USE_NICKINFO
+ NickInfo* nickInfo = server->obtainNickInfo(parameterList[1]);
+ nickInfo->setHostmask(i18n("%1@%2").arg(parameterList[2]).arg(parameterList[3]));
+ nickInfo->setRealName(trailing);
+#endif
server->appendStatusMessage(i18n("Whois"),
i18n("%1 is %2@%3 \
(%4)").arg(parameterList[1]) // Use @ instead of @
.arg(parameterList[2]) \
// to avoid parsing as email @@ -1002,17 +1022,47 @@ void \
InputFilter::parseServerCommand(const QString &prefix, const QString &comma \
{ QString lookChannel=channelList[index];
if(lookChannel.startsWith("*"))
+ {
adminChannels.append(lookChannel.mid(1));
+#ifdef USE_NICKINFO
+ server->setChannelNick(lookChannel.mid(1), parameterList[1], \
16); +#endif
+ }
else if(lookChannel.startsWith("!"))
+ {
ownerChannels.append(lookChannel.mid(1));
+#ifdef USE_NICKINFO
+ server->setChannelNick(lookChannel.mid(1), parameterList[1], \
8); +#endif
+ }
else if(lookChannel.startsWith("@"))
+ {
opChannels.append(lookChannel.mid(1));
+#ifdef USE_NICKINFO
+ server->setChannelNick(lookChannel.mid(1), parameterList[1], \
4); +#endif
+ }
else if(lookChannel.startsWith("%"))
+ {
halfopChannels.append(lookChannel.mid(1));
+#ifdef USE_NICKINFO
+ server->setChannelNick(lookChannel.mid(1), parameterList[1], \
2); +#endif
+ }
else if(lookChannel.startsWith("+"))
+ {
voiceChannels.append(lookChannel.mid(1));
+#ifdef USE_NICKINFO
+ server->setChannelNick(lookChannel.mid(1), parameterList[1], \
1); +#endif
+ }
else
+ {
userChannels.append(lookChannel);
+#ifdef USE_NICKINFO
+ server->setChannelNick(lookChannel, parameterList[1], 0);
+#endif
+ }
} // endfor
if(userChannels.count())
{
@@ -1054,6 +1104,15 @@ void InputFilter::parseServerCommand(const QString \
&prefix, const QString &comma }
case RPL_WHOISSERVER:
{
+#ifdef USE_NICKINFO
+ NickInfo* nickInfo = server->obtainNickInfo(parameterList[1]);
+ nickInfo->setNetServer(parameterList[2]);
+ nickInfo->setNetServerInfo(trailing);
+ // Clear the away state on assumption that if nick is away, this \
message will be followed + // by a 301 RPL_AWAY message. Not \
necessary a invalid assumption, but what can we do? + \
nickInfo->setAway(false); + \
nickInfo->setAwayMessage(QString::null); +#endif
server->appendStatusMessage(i18n("Whois"),
i18n("%1 is online via %2 \
(%3)").arg(parameterList[1])
.arg(parameterList[2])
@@ -1096,12 +1155,20 @@ void InputFilter::parseServerCommand(const QString \
&prefix, const QString &comma QDateTime when;
when.setTime_t(parameterList[3].toUInt());
+#ifdef USE_NICKINFO
+ NickInfo* nickInfo = server->obtainNickInfo(parameterList[1]);
+ nickInfo->setOnlineSince(when);
+#endif
server->appendStatusMessage(i18n("Whois"),i18n("%1 is online \
since %2.").arg(parameterList[1]).arg(when.toString(Qt::LocalDate))); \
break; }
}
case RPL_ENDOFWHOIS:
{
+#ifdef USE_NICKINFO
+ NickInfo* nickInfo = server->getNickInfo(parameterList[1]);
+ if (nickInfo) server->nickInfoUpdated(nickInfo);
+#endif
server->appendStatusMessage(i18n("Whois"),i18n("End of WHOIS \
list.")); break;
}
@@ -1124,7 +1191,7 @@ void InputFilter::parseServerCommand(const QString \
&prefix, const QString &comma mask=mask.mid(1);
if(ircOp) nick=nick.left(nick.length()-1);
- // inform serer of this user's data
+ // inform server of this user's data
emit userhost(nick,mask,away,ircOp);
// display message only if this was no automatic request
diff --git a/konversation/nickinfo.cpp b/konversation/nickinfo.cpp
index 8ea7773..b068741 100644
--- a/konversation/nickinfo.cpp
+++ b/konversation/nickinfo.cpp
@@ -45,6 +45,10 @@ QString NickInfo::getAwayMessage() { return awayMessage; \
} QString NickInfo::getIdentdInfo() { return identdInfo; }
QString NickInfo::getVersionInfo() { return versionInfo; }
bool NickInfo::isNotified() { return notified; }
+QString NickInfo::getRealName() { return realName; }
+QString NickInfo::getNetServer() { return netServer; }
+QString NickInfo::getNetServerInfo() { return netServerInfo; }
+QDateTime NickInfo::getOnlineSince() { return onlineSince; }
// Return the Server object that owns this NickInfo object.
Server* NickInfo::getServer() { return owningServer; }
@@ -52,13 +56,13 @@ Server* NickInfo::getServer() { return owningServer; }
// Set properties of NickInfo object.
// If any of these are called, call Server::nickInfoUpdated to let Server \
know about the change. void NickInfo::setNickname(const QString& \
newNickname) { nickname = newNickname; }
-void NickInfo::setHostmask(const QString& newMask)
-{
- if (!newMask.isEmpty()) hostmask = newMask;
-}
+void NickInfo::setHostmask(const QString& newMask) { if \
(!newMask.isEmpty()) hostmask = newMask; } void NickInfo::setAway(bool \
state) { away = state; } void NickInfo::setAwayMessage(const QString& \
newMessage) { awayMessage = newMessage; } void \
NickInfo::setIdentdInfo(const QString& newIdentdInfo) {identdInfo = \
newIdentdInfo; } void NickInfo::setVersionInfo(const QString& \
newVersionInfo) { versionInfo = newVersionInfo; } void \
NickInfo::setNotified(bool state) { notified = state; }
-
+void NickInfo::setRealName(const QString& newRealName) { if \
(!newRealName.isEmpty()) realName = newRealName; } +void \
NickInfo::setNetServer(const QString& newNetServer) { if \
(!newNetServer.isEmpty()) netServer = newNetServer; } +void \
NickInfo::setNetServerInfo(const QString& newNetServerInfo) { if \
(!newNetServerInfo.isEmpty()) netServerInfo = newNetServerInfo; } +void \
NickInfo::setOnlineSince(const QDateTime& datetime) { if \
(!datetime.isNull()) onlineSince = datetime; }
diff --git a/konversation/nickinfo.h b/konversation/nickinfo.h
index a7bf135..6e4a6dc 100644
--- a/konversation/nickinfo.h
+++ b/konversation/nickinfo.h
@@ -20,6 +20,7 @@
*/
#include <qstringlist.h>
+#include <qdatetime.h>
class Server;
@@ -44,6 +45,10 @@ class NickInfo
QString getIdentdInfo();
QString getVersionInfo();
bool isNotified();
+ QString getRealName();
+ QString getNetServer();
+ QString getNetServerInfo();
+ QDateTime getOnlineSince();
// Return the Server object that owns this NickInfo object.
Server* getServer();
@@ -57,6 +62,10 @@ class NickInfo
void setIdentdInfo(const QString& newIdentdInfo);
void setVersionInfo(const QString& newVersionInfo);
void setNotified(bool state);
+ void setRealName(const QString& newRealName);
+ void setNetServer(const QString& newNetServer);
+ void setNetServerInfo(const QString& newNetServerInfo);
+ void setOnlineSince(const QDateTime& datetime);
protected:
QString nickname;
@@ -67,6 +76,10 @@ class NickInfo
QString identdInfo;
QString versionInfo;
bool notified;
+ QString realName;
+ QString netServer;
+ QString netServerInfo;
+ QDateTime onlineSince;
};
#endif
diff --git a/konversation/nicksonline.cpp b/konversation/nicksonline.cpp
index d85eea8..52f1970 100644
--- a/konversation/nicksonline.cpp
+++ b/konversation/nicksonline.cpp
@@ -26,6 +26,10 @@
#include "server.h"
#include "konversationapplication.h"
+#ifdef USE_NICKINFO
+#include "images.h"
+#endif
+
NicksOnline::NicksOnline(QWidget* parent): ChatWindow(parent)
{
setName(i18n("Watched Nicks Online"));
@@ -69,31 +73,49 @@ void NicksOnline::setOnlineList(const QString& \
serverName,const QStringList& lis nickListView->setColumnText(0, \
i18n("Server/Nickname/Channel")); }
KListViewItem* newServerRoot=new \
KListViewItem(nickListView,serverName); + // Get a green LED for \
flagging of joined channels. + Images leds;
+ QIconSet currentLeds = leds.getGreenLed(false);
+ QPixmap joinedLed = currentLeds.pixmap(QIconSet::Automatic, \
QIconSet::Active, QIconSet::On); + // Get the server object \
corresponding to the server name.
KonversationApplication *konvApp=static_cast<KonversationApplication \
*>(KApplication::kApplication()); Server* server = \
konvApp->getServerByName(serverName); + // List online nicknames.
const NickInfoList* nickInfoList = server->getNicksOnline();
NickInfoListIterator itOnline(*nickInfoList);
- // Online nicknames.
NickInfo* nickInfo;
for ( ; (nickInfo=itOnline.current()) ; ++itOnline)
{
QString lcNickName = itOnline.currentKey();
QString nickname = nickInfo->getNickname();
+ // Construct additional information string for nick.
QString nickAdditionalInfo;
if (nickInfo->isAway())
{
nickAdditionalInfo = nickAdditionalInfo + i18n("Away");
- QString awayMsg = nickInfo->getAwayMessage();
- if (!awayMsg.isEmpty()) nickAdditionalInfo = nickAdditionalInfo + \
"(" + awayMsg + ")"; + if (!nickInfo->getAwayMessage().isEmpty())
+ nickAdditionalInfo = nickAdditionalInfo + "(" + \
nickInfo->getAwayMessage() + ")"; + }
+ if (!nickInfo->getHostmask().isEmpty())
+ nickAdditionalInfo = nickAdditionalInfo + " " + \
nickInfo->getHostmask(); + if (!nickInfo->getRealName().isEmpty())
+ nickAdditionalInfo = nickAdditionalInfo + " (" + \
nickInfo->getRealName() + ")"; + if \
(!nickInfo->getNetServer().isEmpty()) + {
+ nickAdditionalInfo = nickAdditionalInfo + " online via " + \
nickInfo->getNetServer(); + if \
(!nickInfo->getNetServerInfo().isEmpty()) + nickAdditionalInfo = \
nickAdditionalInfo + " (" + nickInfo->getNetServerInfo() + ")"; }
- nickAdditionalInfo = nickAdditionalInfo + " ";
- nickAdditionalInfo = nickAdditionalInfo + nickInfo->getHostmask();
+ if (!nickInfo->getOnlineSince().isNull())
+ nickAdditionalInfo = nickAdditionalInfo + " since " + \
nickInfo->getOnlineSince().toString(Qt::LocalDate); +
KListViewItem* nickRoot = new KListViewItem(newServerRoot, nickname, \
nickAdditionalInfo); QStringList channelList = \
server->getNickChannels(nickname); for ( unsigned int index=0; \
index<channelList.count(); index++ ) {
// Known channels where nickname is online and mode in each \
channel.
- ChannelNick* channelNick = \
server->getChannelNick(channelList[index].lower(), lcNickName); + \
QString channelName = channelList[index]; + ChannelNick* channelNick \
= server->getChannelNick(channelName, lcNickName); unsigned int \
nickModeWord = channelNick->mode; QString nickMode;
if (nickModeWord & 1) nickMode = nickMode + i18n(" Voice");
@@ -105,11 +127,15 @@ void NicksOnline::setOnlineList(const QString& \
serverName,const QStringList& lis if (nickModeWord & 1) nickMode = \
nickMode + i18n(" Owner"); nickModeWord >>= 1;
if (nickModeWord & 1) nickMode = nickMode + i18n(" Admin");
- new KListViewItem(nickRoot, channelList[index], nickMode);
+ KListViewItem* channelItem = new KListViewItem(nickRoot, \
channelName, nickMode); + if \
(server->getJoinedChannelMembers(channelName) != 0) + {
+ channelItem->setPixmap(0, joinedLed);
+ }
}
nickRoot->setOpen(true);
}
- // Offline nicknames.
+ // List offline nicknames.
KListViewItem* offlineRoot = new KListViewItem(newServerRoot, \
i18n("Offline")); nickInfoList = server->getNicksOffline();
NickInfoListIterator itOffline(*nickInfoList);
@@ -120,6 +146,7 @@ void NicksOnline::setOnlineList(const QString& \
serverName,const QStringList& lis newServerRoot->setOpen(true);
offlineRoot->setOpen(true);
nickListView->adjustColumn(0);
+ nickListView->adjustColumn(1);
}
#else
diff --git a/konversation/server.cpp b/konversation/server.cpp
index 01a3a86..5ca81fe 100644
--- a/konversation/server.cpp
+++ b/konversation/server.cpp
@@ -881,21 +881,44 @@ NickInfo* Server::getNickInfo(const QString& \
nickname) return allNicks.find(lcNickname);
}
-// Returns the list of members for a channel in the joinedChannels list. \
0 if channel is not in the joinedChannels list. +// Anyone who changes the \
contents of a NickInfo should call this method to let server +// know that \
it has changed. +void Server::nickInfoUpdated(const NickInfo* nickInfo)
+{
+ if (nickInfo) emit nickInfoChanged(this, nickInfo);
+}
+
+// Given a nickname, returns an existing NickInfo object, or creates a new \
NickInfo object. +// Returns pointer to the found or created NickInfo \
object. +NickInfo* Server::obtainNickInfo(const QString& nickname)
+{
+ NickInfo* nickInfo = getNickInfo(nickname);
+ if (!nickInfo)
+ {
+ nickInfo = new NickInfo(nickname, this);
+ allNicks.insert(nickname.lower(), nickInfo);
+ }
+ return nickInfo;
+}
+
+// Returns the list of members for a channel in the joinedChannels list.
+// 0 if channel is not in the joinedChannels list.
// Using code must not alter the list.
const ChannelNickList* Server::getJoinedChannelMembers(const QString& \
channelName) const {
return joinedChannels.find(channelName);
}
-// Returns the list of members for a channel in the unjoinedChannels list. \
0 if channel is not in the unjoinedChannels list. +// Returns the list of \
members for a channel in the unjoinedChannels list. +// 0 if channel is not \
in the unjoinedChannels list. // Using code must not alter the list.
const ChannelNickList* Server::getUnjoinedChannelMembers(const QString& \
channelName) const {
return unjoinedChannels.find(channelName);
}
-// Searches the Joined and Unjoined lists for the given channel and \
returns the member list. 0 if channel is not in either list. +// Searches \
the Joined and Unjoined lists for the given channel and returns the member \
list. +// 0 if channel is not in either list.
// Using code must not alter the list.
const ChannelNickList* Server::getChannelMembers(const QString& \
channelName) const {
@@ -921,6 +944,35 @@ ChannelNick* Server::getChannelNick(const QString& \
channelName, const QString& n }
}
+// Updates a nickname in a channel. If not on the joined or unjoined \
lists, and nick +// is in the watch list, adds the channel and nick to the \
unjoinedChannels list. +// If mode != 99, sets the mode for the nick in the \
channel. +// Returns the NickInfo object if nick is on any lists, otherwise \
0. +NickInfo* Server::setChannelNick(const QString& channelName, const \
QString& nickname, unsigned int mode) +{
+ QString lcNickname = nickname.lower();
+ // If already on a list, update mode.
+ ChannelNick* channelNick = getChannelNick(channelName, lcNickname);
+ if (channelNick)
+ {
+ if (mode != 99) channelNick->mode = mode;
+ return channelNick->nickInfo;
+ }
+ else
+ {
+ // Get watch list from preferences.
+ QString watchlist=KonversationApplication::preferences.getNotifyString();
+ // Create a lower case nick list from the watch list.
+ QStringList watchLowerList=QStringList::split(' ',watchlist.lower());
+ // If on the watch list, add channel and nick to unjoinedChannels \
list. + if (watchLowerList.find(lcNickname) != watchLowerList.end())
+ {
+ return addNickToUnjoinedChannelsList(channelName, nickname, mode);
+ }
+ else return 0;
+ }
+}
+
// Returns a list of all the channels (joined or unjoined) that a nick is \
in. QStringList Server::getNickChannels(QString& nickname)
{
@@ -1597,7 +1649,7 @@ NickInfo* Server::addNickToUnjoinedChannelsList(const \
QString& channelName, cons }
// Move the channel from joined list (if present) to unjoined list.
QString lcChannelName = channelName.lower();
- ChannelNickList* members=joinedChannels.find(lcChannelName);
+ ChannelNickList* members = joinedChannels.find(lcChannelName);
if (members)
{
joinedChannels.remove(lcChannelName);
@@ -1606,18 +1658,18 @@ NickInfo* \
Server::addNickToUnjoinedChannelsList(const QString& channelName, cons \
else {
// Create a new list in the unjoined channels if not already present.
- members=unjoinedChannels.find(lcChannelName);
+ members = unjoinedChannels.find(lcChannelName);
if (!members)
{
members = new ChannelNickList;
unjoinedChannels.insert(lcChannelName, members);
}
}
- // Add NickInfo to joinedChannels list if not already in the list.
- ChannelNick* channelNick=members->find(lcNickname);
+ // Add NickInfo to unjoinedChannels list if not already in the list.
+ ChannelNick* channelNick = members->find(lcNickname);
if (!channelNick)
{
- ChannelNick* channelNick = new ChannelNick;
+ channelNick = new ChannelNick;
channelNick->nickInfo = nickInfo;
channelNick->mode = 0;
members->insert(lcNickname, channelNick);
@@ -1636,7 +1688,8 @@ NickInfo* Server::addNickToUnjoinedChannelsList(const \
QString& channelName, cons NickInfo* \
Server::addNickToUnjoinedChannelsList(const QString&, const QString&, \
unsigned int) { return 0; } #endif
-// Adds a nickname to the Online list, removing it from the Offline list, \
if present. Returns the NickInfo of the nickname. +// Adds a nickname to \
the Online list, removing it from the Offline list, if present. +// Returns \
the NickInfo of the nickname. // Creates new NickInfo if necessary.
#ifdef USE_NICKINFO
NickInfo* Server::addNickToOnlineList(const QString& nickname)
@@ -1659,7 +1712,8 @@ NickInfo* Server::addNickToOnlineList(const QString& \
nickname) NickInfo* Server::addNickToOnlineList(const QString&) { return \
0; } #endif
-// Adds a nickname to the Offline list provided it is on the watch list, \
removing it from the Online list, if present. +// Adds a nickname to the \
Offline list provided it is on the watch list, +// removing it from the \
Online list, if present. // Also removes it from all channels on the \
joined and unjoined lists. // Returns the NickInfo of the nickname or 0 if \
deleted altogether. // Creates new NickInfo if necessary.
@@ -1843,7 +1897,11 @@ void Server::addNickToChannel(const QString \
&channelName,const QString &nickname
#ifdef USE_NICKINFO
// Update NickInfo.
- unsigned int mode = (admin << 4) | (owner << 3) | (op << 2) | (halfop << \
1) | voice; + unsigned int mode = (admin ? 16 : 0)+
+ (owner ? 8 : 0)+
+ (op ? 4 : 0)+
+ (halfop ? 2 : 0)+
+ (voice ? 1 : 0);
NickInfo* nickInfo = addNickToJoinedChannelsList(channelName, nickname, \
mode); nickInfo->setHostmask(hostmask);
#endif
diff --git a/konversation/server.h b/konversation/server.h
index 59dcffb..c79374d 100644
--- a/konversation/server.h
+++ b/konversation/server.h
@@ -154,20 +154,34 @@ class Server : public QObject
// Given a nickname, returns NickInfo object. 0 if not found.
NickInfo* getNickInfo(const QString& nickname);
- // Returns the list of members for a channel in the joinedChannels \
list. 0 if channel is not in the joinedChannels list. + // Given a \
nickname, returns an existing NickInfo object, or creates a new NickInfo \
object. + // Returns pointer to the found or created NickInfo object.
+ NickInfo* obtainNickInfo(const QString& nickname);
+ // Anyone who changes the contents of a NickInfo should call this \
method to let server + // know that it has changed.
+ void nickInfoUpdated(const NickInfo* nickInfo);
+ // Returns the list of members for a channel in the joinedChannels \
list. + // 0 if channel is not in the joinedChannels list.
// Using code must not alter the list.
const ChannelNickList* getJoinedChannelMembers(const QString& \
channelName) const;
- // Returns the list of members for a channel in the unjoinedChannels \
list. 0 if channel is not in the unjoinedChannels list. + // Returns \
the list of members for a channel in the unjoinedChannels list. + // 0 \
if channel is not in the unjoinedChannels list. // Using code must not \
alter the list.
const ChannelNickList* getUnjoinedChannelMembers(const QString& \
channelName) const;
- // Searches the Joined and Unjoined lists for the given channel and \
returns the member list. 0 if channel is not in either list. + // \
Searches the Joined and Unjoined lists for the given channel and returns \
the member list. + // 0 if channel is not in either list.
// Using code must not alter the list.
const ChannelNickList* getChannelMembers(const QString& channelName) \
const;
// Returns a list of all the channels (joined or unjoined) that a nick \
is in. QStringList getNickChannels(QString& nickname);
// Returns pointer to the ChannelNick (mode and pointer to NickInfo) \
for a given channel and nickname.
- // 0 if not found.
+ // 0 if not found.
ChannelNick* getChannelNick(const QString& channelName, const QString& \
nickname); + // Updates a nickname in a channel. If not on the joined \
or unjoined lists, and nick + // is in the watch list, adds the channel \
and nick to the unjoinedChannels list. + // If mode != 99, sets the mode \
for the nick in the channel. + // Returns the NickInfo object if nick is \
on any lists, otherwise 0. + NickInfo* setChannelNick(const QString& \
channelName, const QString& nickname, unsigned int mode = 99); // Returns \
a list of the nicks on the watch list that are online. const NickInfoList* \
getNicksOnline(); // Returns a list of the nicks on the watch list that \
are offline. @@ -186,6 +200,22 @@ class Server : public QObject
void awayState(bool away); // will be connected to any user input \
panel;
void multiServerCommand(const QString& command, const QString& \
parameter);
void serverOnline(bool state); // will be connected to all server \
dependant tabs + // Note that these signals haven't been implemented \
yet. + // Fires when the information in a NickInfo object changes.
+ void nickInfoChanged(Server* server, const NickInfo* nickInfo);
+ // Fires when the mode of a nick in a channel changes.
+ void channelNickChanged(Server* server, const ChannelNick* \
channelNick); + // Fires when a nick leaves or joins a channel. Based \
on joined flag, receiver could + // call getJoinedChannelMembers or \
getUnjoinedChannelMembers, or just + // getChannelMembers to get a list \
of all the nicks now in the channel. + // parted indicates whether the \
nick joined or left the channel. + void channelMembersChanged(Server* \
server, const QString& channelName, bool joined, bool parted, const \
QString& nickname); + // Fires when a channel is moved to/from the \
Joinied/Unjoined lists. + // joined indicates which list it is now on. \
Note that if joined is False, it is + // possible the channel does not \
exist in any list anymore. + void channelJoinedOrUnjoined(Server* \
server, const QString& channelName, bool joined); + // Fires when a nick \
on the watch list goes online or offline. + void \
watchedNickChanged(Server* server, const NickInfo* nickInfo, bool online); \
public slots:
void connectToIRCServer();
@@ -276,10 +306,12 @@ class Server : public QObject
// If mode != 99 sets the mode for this nick in this channel.
// Returns the NickInfo for the nickname.
NickInfo* addNickToUnjoinedChannelsList(const QString& channelName, \
const QString& nickname, unsigned int mode = 99);
- // Adds a nickname to the Online list, removing it from the Offline \
list, if present. Returns the NickInfo of the nickname. + // Adds a \
nickname to the Online list, removing it from the Offline list, if present. \
+ // Returns the NickInfo of the nickname. // Creates new NickInfo if \
necessary. NickInfo* addNickToOnlineList(const QString& nickname);
- // Adds a nickname to the Offline list provided it is on the watch \
list, removing it from the Online list, if present. + // Adds a nickname \
to the Offline list provided it is on the watch list, + // removing it \
from the Online list, if present. // Returns the NickInfo of the nickname \
or 0 if deleted altogether. // Creates new NickInfo if necessary.
NickInfo* addNickToOfflineList(const QString& nickname, const \
QStringList& watchList);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic