[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [Konversation] 9e64833: Switch from QDicts to QMaps to support
From: Gary Cramblitt <garycramblitt () comcast ! net>
Date: 2010-07-01 13:27:22
Message-ID: 20100701132722.7A8F2BB55BC () projects ! kde ! org
[Download RAW message or body]
commit 9e6483346903f938a5897c26aa63a84283683ae2
Author: Gary Cramblitt <garycramblitt@comcast.net>
Date: Mon Mar 8 22:03:20 2004 +0000
Switch from QDicts to QMaps to support locale-aware sorting. Uncomment define \
USE_NICKINFO in server.h if you want to play with this.
svn path=/trunk/kdeextragear-2/konversation/; revision=294551
diff --git a/konversation/nickinfo.h b/konversation/nickinfo.h
index 6e4a6dc..fb4f35b 100644
--- a/konversation/nickinfo.h
+++ b/konversation/nickinfo.h
@@ -21,6 +21,7 @@
#include <qstringlist.h>
#include <qdatetime.h>
+#include <ksharedptr.h>
class Server;
@@ -31,7 +32,7 @@ class Server;
let Server know that the object has been modified.
*/
-class NickInfo
+class NickInfo : public KShared
{
public:
NickInfo(const QString& nick, Server* server);
diff --git a/konversation/nicksonline.cpp b/konversation/nicksonline.cpp
index 1e6ec1f..def42db 100644
--- a/konversation/nicksonline.cpp
+++ b/konversation/nicksonline.cpp
@@ -36,6 +36,9 @@ NicksOnline::NicksOnline(QWidget* parent): ChatWindow(parent)
setType(ChatWindow::NicksOnline);
nickListView=new KListView(this);
+
+ // TODO: Need to derive from KListView and override sort() method in order to sort \
in + // locale-aware order.
#ifdef USE_NICKINFO
nickListView->addColumn(i18n("Server/Nickname/Channel"));
@@ -47,7 +50,7 @@ NicksOnline::NicksOnline(QWidget* parent): ChatWindow(parent)
nickListView->setFullWidth(true);
nickListView->setRootIsDecorated(false);
#endif
-
+
setMargin(KDialog::marginHint());
setSpacing(KDialog::spacingHint());
@@ -93,7 +96,7 @@ QListViewItem* NicksOnline::findItemChild(const QListViewItem* \
parent, const QSt }
#ifdef USE_NICKINFO
-void NicksOnline::updateServerOnlineList(Server* server, bool changed)
+void NicksOnline::updateServerOnlineList(Server* server, bool)
{
bool whoisRequested = false;
bool newServerRoot = false;
@@ -115,12 +118,13 @@ void NicksOnline::updateServerOnlineList(Server* server, bool \
changed) QIconSet currentLeds = leds.getGreenLed(false);
QPixmap joinedLed = currentLeds.pixmap(QIconSet::Automatic, QIconSet::Active, \
QIconSet::On); // List online nicknames.
- const NickInfoList* nickInfoList = server->getNicksOnline();
- NickInfoListIterator itOnline(*nickInfoList);
- NickInfo* nickInfo;
- for ( ; (nickInfo=itOnline.current()) ; ++itOnline)
+ const NickInfoMap* nickInfoList = server->getNicksOnline();
+ NickInfoMap::ConstIterator itOnline;
+ NickInfoPtr nickInfo;
+ for ( itOnline = nickInfoList->begin(); itOnline != nickInfoList->end() ; \
++itOnline) {
- QString lcNickName = itOnline.currentKey();
+ QString lcNickName = itOnline.key();
+ nickInfo = itOnline.data();
nickname = nickInfo->getNickname();
// Construct additional information string for nick.
QString nickAdditionalInfo;
@@ -161,7 +165,7 @@ void NicksOnline::updateServerOnlineList(Server* server, bool \
changed) {
// Known channels where nickname is online and mode in each channel.
QString channelName = channelList[index];
- ChannelNick* channelNick = server->getChannelNick(channelName, lcNickName);
+ ChannelNickPtr channelNick = server->getChannelNick(channelName, \
lcNickName); unsigned int nickModeWord = channelNick->mode;
QString nickMode;
if (nickModeWord & 1) nickMode = nickMode + i18n(" Voice");
@@ -200,16 +204,17 @@ void NicksOnline::updateServerOnlineList(Server* server, bool \
changed) while (child)
{
nextChild = child->nextSibling();
- if (!nickInfoList->find(child->text(0))) delete child;
+ if (!nickInfoList->contains(LocaleString(child->text(0).lower()))) delete \
child; child = nextChild;
}
// List offline nicknames.
QListViewItem* offlineRoot = findItemChild(serverRoot, i18n("Offline"));
if (!offlineRoot) offlineRoot = new KListViewItem(serverRoot, i18n("Offline"));
nickInfoList = server->getNicksOffline();
- NickInfoListIterator itOffline(*nickInfoList);
- for ( ; (nickInfo=itOffline.current()) ; ++itOffline)
+ NickInfoMap::ConstIterator itOffline;
+ for ( itOffline = nickInfoList->begin(); itOffline != nickInfoList->end() ; \
++itOffline) {
+ nickInfo = itOffline.data();
nickname = nickInfo->getNickname();
if (!findItemChild(offlineRoot, nickname))
{
@@ -221,7 +226,7 @@ void NicksOnline::updateServerOnlineList(Server* server, bool \
changed) while (child)
{
nextChild = child->nextSibling();
- if (!nickInfoList->find(child->text(0))) delete child;
+ if (!nickInfoList->contains(LocaleString(child->text(0).lower()))) delete \
child; child = nextChild;
}
// Expand server if newly added to list.
@@ -259,15 +264,17 @@ void NicksOnline::timerFired()
refreshAllServerOnlineLists();
}
-void NicksOnline::setOnlineList(const QString& serverName,const QStringList& \
list,bool changed)
-{
#ifdef USE_NICKINFO
+void NicksOnline::setOnlineList(const QString& serverName,const QStringList&,bool \
changed) +{
// Get the server object corresponding to the server name.
KonversationApplication *konvApp=static_cast<KonversationApplication \
*>(KApplication::kApplication()); Server* server = \
konvApp->getServerByName(serverName); updateServerOnlineList(server, changed);
+}
#else
-
+void NicksOnline::setOnlineList(const QString& serverName,const QStringList& \
list,bool changed) +{
QListViewItem* serverRoot=nickListView->findItem(serverName,0);
// If server is not in our list, or if the list changed, then display the new \
list. if ( (serverRoot == 0) || changed)
@@ -283,8 +290,8 @@ void NicksOnline::setOnlineList(const QString& serverName,const \
QStringList& lis newServerRoot->setOpen(true);
}
}
-#endif
}
+#endif
void NicksOnline::processDoubleClick(QListViewItem* item)
{
diff --git a/konversation/server.cpp b/konversation/server.cpp
index 5f0c3a1..11ca41c 100644
--- a/konversation/server.cpp
+++ b/konversation/server.cpp
@@ -215,23 +215,16 @@ Server::~Server()
if(resolver.running()) resolver.exit();
#endif
- // Delete all the NickInfos.
- allNicks.setAutoDelete(TRUE);
+ // Delete all the NickInfos and ChannelNick structures.
allNicks.clear();
- // Delete all the ChannelNick structures.
- ChannelNickList* members;
- ChannelMembershipListIterator joinedChannelIterator(joinedChannels);
- for( ; (members=joinedChannelIterator.current()); ++joinedChannelIterator )
- {
- members->setAutoDelete(TRUE);
- members->clear();
- }
- ChannelMembershipListIterator unjoinedChannelIterator(joinedChannels);
- for( ; (members=unjoinedChannelIterator.current()); ++unjoinedChannelIterator )
- {
- members->setAutoDelete(TRUE);
- members->clear();
- }
+ ChannelMembershipMap::Iterator it;
+ for ( it = joinedChannels.begin(); it != joinedChannels.end(); ++it ) delete \
it.data(); + joinedChannels.clear();
+ for ( it = unjoinedChannels.begin(); it != unjoinedChannels.end(); ++it ) delete \
it.data(); + unjoinedChannels.clear();
+ nicknamesOnline.clear();
+ nicknamesOffline.clear();
+ queryNicks.clear();
// notify KonversationApplication that this server is gone
emit deleted(this);
@@ -549,7 +542,7 @@ void Server::notifyResponse(const QString& nicksOnline)
unsigned int index;
for(index=0;index<nickLowerList.count();index++)
{
- if (nicknamesOnline.find(nickLowerList[index]) == 0)
+ if (!nicknamesOnline.contains(nickLowerList[index]))
{
addNickToOnlineList(nickList[index]);
nicksOnlineChanged = true;
@@ -562,11 +555,11 @@ void Server::notifyResponse(const QString& nicksOnline)
}
}
// Any watched nicks now offline?
- NickInfoListIterator it(nicknamesOnline);
- NickInfo* nickInfo;
- for( ; (nickInfo=it.current()); ++it )
+ NickInfoMap::Iterator it;
+ NickInfoPtr nickInfo;
+ for( it = nicknamesOnline.begin() ; it != nicknamesOnline.end(); ++it )
{
- if (nickLowerList.find(it.currentKey()) == nickLowerList.end())
+ if (nickLowerList.find(it.key()) == nickLowerList.end())
{
nicksOnlineChanged = true;
addNickToOfflineList(nickInfo->getNickname(), watchLowerList);
@@ -582,7 +575,7 @@ void Server::notifyResponse(const QString& nicksOnline)
// TODO: It would be better to do this on startup and whenever user changes \
preferences. for(index=0;index<watchLowerList.count();index++)
{
- if (nicknamesOnline.find(watchLowerList[index]) == 0) \
addNickToOfflineList(watchList[index], watchLowerList); + if \
(nicknamesOnline.find(watchLowerList[index]) == nicknamesOnline.end()) \
addNickToOfflineList(watchList[index], watchLowerList); }
#else
@@ -885,68 +878,84 @@ QString Server::getNumericalIp()
}
// Given a nickname, returns NickInfo object. 0 if not found.
-NickInfo* Server::getNickInfo(const QString& nickname)
+NickInfoPtr Server::getNickInfo(const QString& nickname)
{
- QString lcNickname = nickname.lower();
- return allNicks.find(lcNickname);
+ LocaleString lcNickname = nickname.lower();
+ if (allNicks.contains(lcNickname))
+ return allNicks[lcNickname];
+ else
+ return 0;
}
// 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)
+void Server::nickInfoUpdated(const NickInfoPtr 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)
+NickInfoPtr Server::obtainNickInfo(const QString& nickname)
{
- NickInfo* nickInfo = getNickInfo(nickname);
- if (!nickInfo)
+ NickInfoPtr nickInfoPtr = getNickInfo(nickname);
+ if (!nickInfoPtr)
{
- nickInfo = new NickInfo(nickname, this);
- allNicks.insert(nickname.lower(), nickInfo);
+ nickInfoPtr = new NickInfo(nickname, this);
+ allNicks.insert(LocaleString(nickname.lower()), nickInfoPtr);
}
- return nickInfo;
+ return nickInfoPtr;
}
// 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 +const ChannelNickMapPtr Server::getJoinedChannelMembers(const QString& \
channelName) const {
- return joinedChannels.find(channelName);
+ LocaleString lcChannelName = channelName.lower();
+ if (joinedChannels.contains(lcChannelName))
+ return joinedChannels[lcChannelName];
+ else
+ return 0;
}
// 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 +const ChannelNickMapPtr Server::getUnjoinedChannelMembers(const QString& \
channelName) const {
- return unjoinedChannels.find(channelName);
+ LocaleString lcChannelName = channelName.lower();
+ if (unjoinedChannels.contains(lcChannelName))
+ return unjoinedChannels[lcChannelName];
+ else
+ return 0;
}
// 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
+const ChannelNickMapPtr Server::getChannelMembers(const QString& channelName) const
{
- const ChannelNickList* members = getJoinedChannelMembers(channelName);
- if (!members) members = getUnjoinedChannelMembers(channelName);
- return members;
+ const ChannelNickMapPtr members = getJoinedChannelMembers(channelName);
+ if (members)
+ return members;
+ else
+ return getUnjoinedChannelMembers(channelName);
}
// Returns pointer to the ChannelNick (mode and pointer to NickInfo) for a given \
channel and nickname. // 0 if not found.
-ChannelNick* Server::getChannelNick(const QString& channelName, const QString& \
nickname) +ChannelNickPtr Server::getChannelNick(const QString& channelName, const \
QString& nickname) {
- QString lcChannelName=channelName.lower();
- QString lcNickname=nickname.lower();
- const ChannelNickList* channelNickList=getChannelMembers(lcChannelName);
- if (channelNickList)
+ QString lcChannelName = channelName.lower();
+ LocaleString lcNickname = nickname.lower();
+ const ChannelNickMapPtr channelNickMap = getChannelMembers(lcChannelName);
+ if (channelNickMap)
{
- return channelNickList->find(lcNickname);
+ if (channelNickMap->contains(lcNickname))
+ return (*channelNickMap)[lcNickname];
+ else
+ return 0;
}
else
{
@@ -958,11 +967,11 @@ ChannelNick* Server::getChannelNick(const QString& channelName, \
const QString& n // 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) +NickInfoPtr 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);
+ ChannelNickPtr channelNick = getChannelNick(channelName, lcNickname);
if (channelNick)
{
if (mode != 99) channelNick->mode = mode;
@@ -986,27 +995,25 @@ NickInfo* Server::setChannelNick(const QString& channelName, \
const QString& nick // Returns a list of all the channels (joined or unjoined) that \
a nick is in. QStringList Server::getNickChannels(QString& nickname)
{
- QString lcNickname = nickname.lower();
+ LocaleString lcNickname = nickname.lower();
QStringList channellist;
- ChannelNickList* members;
- ChannelMembershipListIterator joinedChannelIterator(joinedChannels);
- for( ; (members=joinedChannelIterator.current()); ++joinedChannelIterator )
+ ChannelMembershipMap::Iterator channel;
+ for( channel = joinedChannels.begin(); channel != joinedChannels.end(); ++channel \
) {
- if (members->find(lcNickname)) \
channellist.append(joinedChannelIterator.currentKey()); + if \
(channel.data()->contains(lcNickname)) channellist.append(channel.key()); }
- ChannelMembershipListIterator unjoinedChannelIterator(unjoinedChannels);
- for( ; (members=unjoinedChannelIterator.current()); ++unjoinedChannelIterator )
+ for( channel = unjoinedChannels.begin(); channel != unjoinedChannels.end(); \
++channel ) {
- if (members->find(lcNickname)) \
channellist.append(unjoinedChannelIterator.currentKey()); + if \
(channel.data()->contains(lcNickname)) channellist.append(channel.key()); }
return channellist;
}
// Returns a list of the nicks on the watch list that are online.
-const NickInfoList* Server::getNicksOnline() { return &nicknamesOnline; }
+const NickInfoMap* Server::getNicksOnline() { return &nicknamesOnline; }
// Returns a list of the nicks on the watch list that are offline.
-const NickInfoList* Server::getNicksOffline() { return &nicknamesOffline; }
+const NickInfoMap* Server::getNicksOffline() { return &nicknamesOffline; }
QString Server::getIp()
{
@@ -1043,13 +1050,8 @@ void Server::addQuery(const QString& nickname,const QString& \
hostmask)
#ifdef USE_NICKINFO
// Update NickInfo.
- QString lcNickname = nickname.lower();
- NickInfo* nickInfo = getNickInfo(nickname);
- if (!nickInfo)
- {
- nickInfo = new NickInfo(nickname, this);
- allNicks.insert(lcNickname, nickInfo);
- }
+ LocaleString lcNickname = nickname.lower();
+ NickInfoPtr nickInfo = obtainNickInfo(nickname);
if ((nickInfo->getHostmask() != hostmask) && !hostmask.isEmpty())
{
nickInfo->setHostmask(hostmask);
@@ -1073,7 +1075,7 @@ void Server::closeQuery(const QString &name)
#ifdef USE_NICKINFO
// Update NickInfo.
- queryNicks.remove(name.lower());
+ queryNicks.remove(LocaleString(name.lower()));
#endif
}
@@ -1430,7 +1432,7 @@ void Server::joinChannel(const QString &name, const QString \
&hostmask, const QSt
#ifdef USE_NICKINFO
// Move channel from unjoined (if present) to joined list and add our own nickname \
to the joined list.
- NickInfo* nickInfo = addNickToJoinedChannelsList(name, getNickname(), 99);
+ NickInfoPtr nickInfo = addNickToJoinedChannelsList(name, getNickname(), 99);
if ((nickInfo->getHostmask() != hostmask) && !hostmask.isEmpty())
{
nickInfo->setHostmask(hostmask);
@@ -1457,8 +1459,8 @@ void Server::updateChannelMode(const QString &nick, const \
QString &channelName, #ifdef USE_NICKINFO
// Compute new mode for the recipient.
unsigned int nickMode = 0;
- ChannelNick* channelNick=getChannelNick(channelName, parameter);
- if (channelNick) nickMode=channelNick->mode;
+ ChannelNickPtr channelNick = getChannelNick(channelName, parameter);
+ if (channelNick) nickMode = channelNick->mode;
// TODO: What is mode character for owner?
QString userModes="vho?a"; // voice halfop op owner admin
int modePos = userModes.find(mode);
@@ -1588,8 +1590,8 @@ void Server::addPendingNickList(const QString& \
channelName,const QStringList& ni {
for(unsigned int i=0;i<nickList.count();i++)
{
- QString nickname=nickList[i].section(" ",0,0);
- unsigned int mode=nickList[i].section(" ",1,1).toInt();
+ QString nickname = nickList[i].section(" ",0,0);
+ unsigned int mode = nickList[i].section(" ",1,1).toInt();
if (!nickname.isEmpty()) addNickToJoinedChannelsList(channelName, nickname, \
mode); }
}
@@ -1603,55 +1605,52 @@ void Server::addPendingNickList(const QString& \
channelName,const QStringList& ni // If mode != 99 sets the mode for this nick in \
this channel. // Returns the NickInfo for the nickname.
#ifdef USE_NICKINFO
-NickInfo* Server::addNickToJoinedChannelsList(const QString& channelName, const \
QString& nickname, unsigned int mode) +NickInfoPtr \
Server::addNickToJoinedChannelsList(const QString& channelName, const QString& \
nickname, unsigned int mode) {
bool doChannelJoinedSignal = false;
bool doWatchedNickChangedSignal = false;
bool doChannelMembersChangedSignal = false;
bool doChannelNickChangedSignal = false;
- QString lcNickname = nickname.lower();
+ LocaleString lcNickname = nickname.lower();
// Create NickInfo if not already created.
- NickInfo* nickInfo = getNickInfo(lcNickname);
- if (!nickInfo)
- {
- nickInfo = new NickInfo(nickname, this);
- allNicks.insert(lcNickname, nickInfo);
- }
+ NickInfoPtr nickInfo = obtainNickInfo(nickname);
// Move the channel from unjoined list (if present) to joined list.
- QString lcChannelName = channelName.lower();
- ChannelNickList* members=unjoinedChannels.find(lcChannelName);
- if (members)
+ LocaleString lcChannelName = channelName.lower();
+ ChannelNickMapPtr channel;
+ if (unjoinedChannels.contains(lcChannelName))
{
+ channel = unjoinedChannels[lcChannelName];
unjoinedChannels.remove(lcChannelName);
- joinedChannels.insert(lcChannelName, members);
- doChannelJoinedSignal = true;
+ joinedChannels.insert(lcChannelName, channel);
}
else
{
// Create a new list in the joined channels if not already present.
- members=joinedChannels.find(lcChannelName);
- if (!members)
+ if (!joinedChannels.contains(lcChannelName))
{
- members = new ChannelNickList;
- joinedChannels.insert(lcChannelName, members);
+ channel = new ChannelNickMap;
+ joinedChannels.insert(lcChannelName, channel);
doChannelJoinedSignal = true;
}
+ else
+ channel = joinedChannels[lcChannelName];
}
- // Add NickInfo to joinedChannels list if not already in the list.
- ChannelNick* channelNick=members->find(lcNickname);
- if (!channelNick)
+ // Add NickInfo to channel list if not already in the list.
+ ChannelNickPtr channelNick;
+ if (!channel->contains(lcNickname))
{
- channelNick = new ChannelNick;
+ channelNick = ChannelNickPtr(new ChannelNick);
channelNick->nickInfo = nickInfo;
channelNick->mode = 0;
- members->insert(lcNickname, channelNick);
+ channel->insert(lcNickname, channelNick);
doChannelMembersChangedSignal = true;
}
+ channelNick = (*channel)[lcNickname];
// Move from the Offline to Online lists.
- if (nicknamesOffline.find(lcNickname) != 0)
+ if (nicknamesOffline.contains(lcNickname))
{
- nicknamesOffline.remove(lcNickname);
nicknamesOnline.insert(lcNickname, nickInfo);
+ nicknamesOffline.remove(lcNickname);
doWatchedNickChangedSignal = true;
}
// Set the mode for the nick in this channel.
@@ -1670,7 +1669,7 @@ NickInfo* Server::addNickToJoinedChannelsList(const QString& \
channelName, const return nickInfo;
}
#else
-NickInfo* Server::addNickToJoinedChannelsList(const QString&, const QString&, \
unsigned int) { return 0; } +NickInfoPtr Server::addNickToJoinedChannelsList(const \
QString&, const QString&, unsigned int) { return 0; } #endif
// Adds a nickname to the unjoinedChannels list.
@@ -1680,53 +1679,52 @@ NickInfo* Server::addNickToJoinedChannelsList(const QString&, \
const QString&, un // If mode != 99 sets the mode for this nick in this channel.
// Returns the NickInfo for the nickname.
#ifdef USE_NICKINFO
-NickInfo* Server::addNickToUnjoinedChannelsList(const QString& channelName, const \
QString& nickname, unsigned int mode) +NickInfoPtr \
Server::addNickToUnjoinedChannelsList(const QString& channelName, const QString& \
nickname, unsigned int mode) {
bool doChannelUnjoinedSignal = false;
bool doWatchedNickChangedSignal = false;
bool doChannelMembersChangedSignal = false;
bool doChannelNickChangedSignal = false;
- QString lcNickname = nickname.lower();
+ LocaleString lcNickname = nickname.lower();
// Create NickInfo if not already created.
- NickInfo* nickInfo = getNickInfo(lcNickname);
- if (!nickInfo)
- {
- nickInfo = new NickInfo(nickname, this);
- allNicks.insert(lcNickname, nickInfo);
- }
+ NickInfoPtr nickInfo = obtainNickInfo(nickname);
// Move the channel from joined list (if present) to unjoined list.
- QString lcChannelName = channelName.lower();
- ChannelNickList* members = joinedChannels.find(lcChannelName);
- if (members)
+ LocaleString lcChannelName = channelName.lower();
+ ChannelNickMapPtr channel;
+ if (joinedChannels.contains(lcChannelName))
{
+ channel = joinedChannels[lcChannelName];
joinedChannels.remove(lcChannelName);
- unjoinedChannels.insert(lcChannelName, members);
+ unjoinedChannels.insert(lcChannelName, channel);
doChannelUnjoinedSignal = true;
}
else
{
// Create a new list in the unjoined channels if not already present.
- members = unjoinedChannels.find(lcChannelName);
- if (!members)
+ if (!unjoinedChannels.contains(lcChannelName))
{
- members = new ChannelNickList;
- unjoinedChannels.insert(lcChannelName, members);
+ channel = new ChannelNickMap;
+ unjoinedChannels.insert(lcChannelName, channel);
doChannelUnjoinedSignal = true;
}
+ else
+ channel = unjoinedChannels[lcChannelName];
}
// Add NickInfo to unjoinedChannels list if not already in the list.
- ChannelNick* channelNick = members->find(lcNickname);
- if (!channelNick)
+ ChannelNickPtr channelNick;
+ if (!channel->contains(lcNickname))
{
- channelNick = new ChannelNick;
+ channelNick = ChannelNickPtr(new ChannelNick);
channelNick->nickInfo = nickInfo;
channelNick->mode = 0;
- members->insert(lcNickname, channelNick);
+ channel->insert(lcNickname, channelNick);
doChannelMembersChangedSignal = true;
}
+ channelNick = (*channel)[lcNickname];
// Move from the Offline to Online lists.
- if (nicknamesOffline.find(lcNickname) != 0)
+ if (nicknamesOffline.contains(lcNickname))
{
+ nickInfo = nicknamesOffline[lcNickname];
nicknamesOffline.remove(lcNickname);
nicknamesOnline.insert(lcNickname, nickInfo);
doWatchedNickChangedSignal = true;
@@ -1747,26 +1745,21 @@ NickInfo* Server::addNickToUnjoinedChannelsList(const \
QString& channelName, cons return nickInfo;
}
#else
-NickInfo* Server::addNickToUnjoinedChannelsList(const QString&, const QString&, \
unsigned int) { return 0; } +NickInfoPtr 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.
// Creates new NickInfo if necessary.
#ifdef USE_NICKINFO
-NickInfo* Server::addNickToOnlineList(const QString& nickname)
+NickInfoPtr Server::addNickToOnlineList(const QString& nickname)
{
bool doSignal = false;
- QString lcNickname = nickname.lower();
+ LocaleString lcNickname = nickname.lower();
nicknamesOffline.remove(lcNickname);
- NickInfo* nickInfo = getNickInfo(lcNickname);
- if (nicknamesOnline.find(lcNickname) == 0)
+ NickInfoPtr nickInfo = obtainNickInfo(nickname);
+ if (!nicknamesOnline.contains(lcNickname))
{
- if (!nickInfo)
- {
- nickInfo = new NickInfo(nickname, this);
- allNicks.insert(lcNickname, nickInfo);
- }
nicknamesOnline.insert(lcNickname, nickInfo);
doSignal = true;
}
@@ -1774,7 +1767,7 @@ NickInfo* Server::addNickToOnlineList(const QString& nickname)
if (doSignal) emit watchedNickChanged(this, nickInfo, true);
}
#else
-NickInfo* Server::addNickToOnlineList(const QString&) { return 0; }
+NickInfoPtr Server::addNickToOnlineList(const QString&) { return 0; }
#endif
// Adds a nickname to the Offline list provided it is on the watch list,
@@ -1783,21 +1776,17 @@ NickInfo* Server::addNickToOnlineList(const QString&) { \
return 0; } // Returns the NickInfo of the nickname or 0 if deleted altogether.
// Creates new NickInfo if necessary.
#ifdef USE_NICKINFO
-NickInfo* Server::addNickToOfflineList(const QString& nickname, const QStringList& \
watchList) +NickInfoPtr Server::addNickToOfflineList(const QString& nickname, const \
QStringList& watchList) {
bool doSignal = false;
- QString lcNickname = nickname.lower();
+ LocaleString lcNickname = nickname.lower();
nicknamesOnline.remove(lcNickname);
- NickInfo* nickInfo = getNickInfo(lcNickname);
+ NickInfoPtr nickInfo;
if (watchList.find(lcNickname) != watchList.end())
{
- if (nicknamesOffline.find(lcNickname) == 0)
+ nickInfo = obtainNickInfo(nickname);
+ if (!nicknamesOffline.contains(lcNickname))
{
- if (!nickInfo)
- {
- nickInfo = new NickInfo(nickname, this);
- allNicks.insert(lcNickname, nickInfo);
- }
nicknamesOffline.insert(lcNickname, nickInfo);
doSignal = true;
}
@@ -1818,7 +1807,7 @@ NickInfo* Server::addNickToOfflineList(const QString& nickname, \
const QStringLis return nickInfo;
}
#else
-NickInfo* Server::addNickToOfflineList(const QString&, const QStringList&) { return \
0; } +NickInfoPtr Server::addNickToOfflineList(const QString&, const QStringList&) { \
return 0; } #endif
// Remove nickname from a channel (on joined or unjoined lists).
@@ -1828,40 +1817,40 @@ void Server::removeChannelNick(const QString& channelName, \
const QString& nickna {
bool doSignal = false;
bool joined = false;
- QString lcChannelName = channelName.lower();
- QString lcNickname = nickname.lower();
- ChannelNick* channelNick;
- ChannelNickList* channelNickList = joinedChannels.find(lcChannelName);
- if (channelNickList)
+ LocaleString lcChannelName = channelName.lower();
+ LocaleString lcNickname = nickname.lower();
+ ChannelNickMapPtr channel;
+ if (joinedChannels.contains(lcChannelName))
{
- channelNick = channelNickList->find(lcNickname);
- delete channelNick;
- channelNickList->remove(lcNickname);
- doSignal = true;
- joined = true;
- // TODO: If channel is now empty, delete it?
+ channel = joinedChannels[lcChannelName];
+ if (channel->contains(lcNickname))
+ {
+ channel->remove(lcNickname);
+ doSignal = true;
+ joined = true;
+ // TODO: If channel is now empty, delete it?
+ }
}
else
{
- channelNickList = unjoinedChannels.find(lcChannelName);
- if (channelNickList)
+ if (unjoinedChannels.contains(lcChannelName))
{
- channelNick = channelNickList->find(lcNickname);
- delete channelNick;
- channelNickList->remove(lcNickname);
- doSignal = true;
- joined = false;
- // TODO: If channel is now empty, delete it?
+ channel = unjoinedChannels[lcChannelName];
+ if (channel->contains(lcNickname))
+ {
+ channel->remove(lcNickname);
+ doSignal = true;
+ joined = false;
+ // TODO: If channel is now empty, delete it?
+ }
}
// If nickname is no longer on any list, delete it altogether.
QStringList nickChannels = getNickChannels(lcNickname);
if (nickChannels.isEmpty())
{
- if ((nicknamesOnline.find(lcNickname) == 0) && \
(nicknamesOffline.find(lcNickname) == 0) && (queryNicks.find(lcNickname) == 0)) + \
if (!nicknamesOnline.contains(lcNickname) && !nicknamesOffline.contains(lcNickname) \
&& !queryNicks.contains(lcNickname)) {
- NickInfo* nickInfo = getNickInfo(lcNickname);
allNicks.remove(lcNickname);
- delete nickInfo;
}
}
}
@@ -1879,18 +1868,20 @@ void Server::removeJoinedChannel(const QString& channelName)
bool doSignal = false;
QString watchList = KonversationApplication::preferences.getNotifyString();
QStringList watchListLower = QStringList::split(' ', watchList.lower());
- QString lcChannelName = channelName.lower();
+ LocaleString lcChannelName = channelName.lower();
// Move the channel nick list from the joined to unjoined lists.
- ChannelNickList* channelNickList = joinedChannels.take(lcChannelName);
- if (channelNickList)
+ ChannelNickMapPtr channel;
+ ChannelNickMap::Iterator member;
+ if (joinedChannels.contains(lcChannelName))
{
- unjoinedChannels.insert(lcChannelName, channelNickList);
+ channel = joinedChannels[lcChannelName];
+ joinedChannels.remove(lcChannelName);
+ unjoinedChannels.insert(lcChannelName, channel);
// Remove nicks not on the watch list.
- ChannelNickListIterator it(*channelNickList);
bool allDeleted = true;
- for ( ; (it.current()) ;++it )
+ for ( member = channel->begin(); member != channel->end() ;++member )
{
- QString lcNickname = it.currentKey();
+ LocaleString lcNickname = member.key();
if (watchListLower.find(lcNickname) == watchListLower.end())
{
// Remove the nickname from the unjoined channel. If nickname is no longer
@@ -1903,8 +1894,12 @@ void Server::removeJoinedChannel(const QString& channelName)
}
}
// If all were deleted, remove the channel from the unjoined list.
- // TODO: Remove this if removeChannelNick is changed to take care of this.
- if (allDeleted) unjoinedChannels.remove(lcChannelName);
+ if (allDeleted)
+ {
+ channel = unjoinedChannels[lcChannelName];
+ unjoinedChannels.remove(lcChannelName);
+ delete channel; // recover memory!
+ }
}
if (doSignal) emit channelJoinedOrUnjoined(this, channelName, false);
}
@@ -1916,40 +1911,41 @@ void Server::removeJoinedChannel(const QString&) {}
// Renames a nickname in all NickInfo lists.
// Returns pointer to the NickInfo object or 0 if nick not found.
#ifdef USE_NICKINFO
-NickInfo* Server::renameNickInfo(const QString& nickname, const QString& newname)
+NickInfoPtr Server::renameNickInfo(const QString& nickname, const QString& newname)
{
- NickInfo* nickInfo = getNickInfo(nickname);
+ NickInfoPtr nickInfo = getNickInfo(nickname);
if (nickInfo)
{
// Rename nickname in the NickInfo object.
nickInfo->setNickname(newname);
// Rename key in the joined and unjoined lists.
- QString lcNickname = nickname.lower();
- QString lcNewname = newname.lower();
+ LocaleString lcNickname = nickname.lower();
+ LocaleString lcNewname = newname.lower();
QStringList nickChannels = getNickChannels(lcNickname);
for (unsigned int index=0;index<nickChannels.count();index++)
{
- const ChannelNickList* channelNickList = \
getChannelMembers(nickChannels[index]);
- ChannelNick* channelNick = \
const_cast<ChannelNickList*>(channelNickList)->take(lcNickname);
- const_cast<ChannelNickList*>(channelNickList)->remove(lcNickname);
- const_cast<ChannelNickList*>(channelNickList)->insert(lcNewname, channelNick);
+ const ChannelNickMapPtr channel = getChannelMembers(nickChannels[index]);
+ ChannelNickPtr member = (*channel)[lcNickname];
+ const_cast<ChannelNickMapPtr>(channel)->remove(lcNickname);
+ const_cast<ChannelNickMapPtr>(channel)->insert(lcNewname, member);
}
// Rename key in the Online, Offline, and Query lists.
- NickInfo* nickInfo = nicknamesOnline.find(lcNickname);
- if (nickInfo)
+ NickInfoPtr nickInfo;
+ if (nicknamesOnline.contains(lcNickname))
{
+ nickInfo = nicknamesOnline[lcNickname];
nicknamesOnline.remove(lcNickname);
nicknamesOnline.insert(lcNewname, nickInfo);
}
- nickInfo = nicknamesOffline.find(lcNickname);
- if (nickInfo)
+ if (nicknamesOffline.contains(lcNickname))
{
+ nickInfo = nicknamesOffline[lcNickname];
nicknamesOffline.remove(lcNickname);
nicknamesOffline.insert(lcNewname, nickInfo);
}
- nickInfo = queryNicks.find(lcNickname);
- if (nickInfo)
+ if (queryNicks.contains(lcNickname))
{
+ nickInfo = queryNicks[lcNickname];
queryNicks.remove(lcNickname);
queryNicks.insert(lcNewname, nickInfo);
}
@@ -1959,7 +1955,7 @@ NickInfo* Server::renameNickInfo(const QString& nickname, const \
QString& newname return nickInfo;
}
#else
-NickInfo* Server::renameNickInfo(const QString&, const QString&) { return 0; }
+NickInfoPtr Server::renameNickInfo(const QString&, const QString&) { return 0; }
#endif
void Server::noMorePendingNicks(const QString& channelName)
@@ -1981,7 +1977,7 @@ void Server::addNickToChannel(const QString &channelName,const \
QString &nickname (op ? 4 : 0)+
(halfop ? 2 : 0)+
(voice ? 1 : 0);
- NickInfo* nickInfo = addNickToJoinedChannelsList(channelName, nickname, mode);
+ NickInfoPtr nickInfo = addNickToJoinedChannelsList(channelName, nickname, mode);
if ((nickInfo->getHostmask() != hostmask) && !hostmask.isEmpty())
{
nickInfo->setHostmask(hostmask);
@@ -2007,7 +2003,7 @@ void Server::nickJoinsChannel(const QString &channelName, const \
QString &nicknam
#ifdef USE_NICKINFO
// Update NickInfo.
- NickInfo* nickInfo = addNickToJoinedChannelsList(channelName, nickname, 99);
+ NickInfoPtr nickInfo = addNickToJoinedChannelsList(channelName, nickname, 99);
if ((nickInfo->getHostmask() != hostmask) && !hostmask.isEmpty())
{
nickInfo->setHostmask(hostmask);
@@ -2033,7 +2029,7 @@ void Server::addHostmaskToNick(const QString& sourceNick, const \
QString& sourceH
#ifdef USE_NICKINFO
// Update NickInfo.
- NickInfo* nickInfo=getNickInfo(sourceNick);
+ NickInfoPtr nickInfo=getNickInfo(sourceNick);
if (nickInfo)
{
if ((nickInfo->getHostmask() != sourceHostmask) && !sourceHostmask.isEmpty())
@@ -2126,7 +2122,7 @@ void Server::renameNick(const QString &nickname, const QString \
&newNick) void Server::userhost(const QString& nick,const QString& hostmask,bool \
away,bool /* ircOp */) {
addHostmaskToNick(nick,hostmask);
- NickInfo* nickInfo = getNickInfo(nick);
+ NickInfoPtr nickInfo = getNickInfo(nick);
if (nickInfo)
{
if (nickInfo->isAway() != away)
diff --git a/konversation/server.h b/konversation/server.h
index fa52490..c7887c4 100644
--- a/konversation/server.h
+++ b/konversation/server.h
@@ -18,6 +18,7 @@
#include <qtimer.h>
#include <qdatetime.h>
#include <qdict.h>
+#include <ksharedptr.h>
#include "inputfilter.h"
#include "outputfilter.h"
@@ -42,20 +43,49 @@ class KonversationMainWindow;
class RawLog;
class ChannelListPanel;
-// A NickInfoList is a list of NickInfo objects, indexed by lowercase nickname.
-typedef QDict<NickInfo> NickInfoList;
+// A LocaleString is used as a key to a QMap. Unlike QString, it sorts the QMap
+// in localeAware order.
+class LocaleString : public QString
+{
+ public:
+ LocaleString() : QString() {};
+ LocaleString(const QString& s) : QString(s) {}
+ LocaleString(const LocaleString& s) : QString(s) {}
+ LocaleString& operator=(const QString& s) {
+ QString::operator=(s);
+ return *this; }
+ LocaleString& operator=(const LocaleString& s) {
+ QString::operator=(s);
+ return *this; }
+ inline bool operator<( const QString &s1) { return (localeAwareCompare(s1) < 0); \
} + inline bool operator<( const char *s1) { return (localeAwareCompare(s1) < 0); \
} + inline bool operator<( QChar c) { return (localeAwareCompare(c) < 0); }
+ inline bool operator<( char ch) { return (localeAwareCompare(&ch) < 0); }
+};
+// A NickInfoPtr is a pointer to a NickInfo object. Since it is a KSharedPtr, the \
NickInfo +// object is automatically destroyed when all references are destroyed.
+typedef KSharedPtr<NickInfo> NickInfoPtr;
+// A NickInfoMap is a list of NickInfo objects, indexed and sorted by lowercase \
nickname. +typedef QMap<LocaleString,NickInfoPtr> NickInfoMap;
// A ChannelNick is a user mode and pointer to a NickInfo.
-typedef struct ChannelNick { unsigned int mode; NickInfo* nickInfo; } ChannelNick;
-// A ChannelNickList is a list of ChannelNicks, indexed by lowercase nickname.
-typedef QDict<ChannelNick> ChannelNickList;
-// A ChannelMembershipList is a list of ChannelNickLists, indexed by lowercase \
channel name.
-typedef QDict<ChannelNickList> ChannelMembershipList;
-// An iterator for a NickInfoList.
-typedef QDictIterator<NickInfo> NickInfoListIterator;
-// An interator for a ChannelNickList.
-typedef QDictIterator<ChannelNick> ChannelNickListIterator;
-// An iterator for a ChannelMembershipList.
-typedef QDictIterator<ChannelNickList> ChannelMembershipListIterator;
+class ChannelNick : public KShared
+{
+ public:
+ ChannelNick() : mode(0), nickInfo(0) {}
+ ChannelNick(unsigned int m, NickInfoPtr ni) : mode(m), nickInfo(ni) {}
+ unsigned int mode;
+ NickInfoPtr nickInfo;
+};
+// A ChannelNickPtr is a pointer to a ChannelNick. Since it is a KSharedPtr, the \
ChannelNick +// object is automatically destroyed when all references are destroyed.
+typedef KSharedPtr<ChannelNick> ChannelNickPtr;
+// A ChannelNickMap is a list of ChannelNick pointers, indexed and sorted by \
lowercase nickname. +typedef QMap<LocaleString,ChannelNickPtr> ChannelNickMap;
+// A ChannelNickMapPtr is a pointer to a ChannelNickMap. Since the combination of a \
channel and a nick +// is unique, don't bother with KSharedPtr.
+typedef ChannelNickMap* ChannelNickMapPtr;
+// A ChannelMembershipMap is a list of ChannelNickMap pointers, indexed and sorted \
by lowercase channel name. +typedef QMap<LocaleString,ChannelNickMapPtr> \
ChannelMembershipMap;
class Server : public QObject
{
@@ -153,39 +183,39 @@ class Server : public QObject
QString getNumericalIp();
// Given a nickname, returns NickInfo object. 0 if not found.
- NickInfo* getNickInfo(const QString& nickname);
+ NickInfoPtr getNickInfo(const QString& nickname);
// 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);
+ NickInfoPtr 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);
+ void nickInfoUpdated(const NickInfoPtr 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; + const ChannelNickMapPtr 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.
// Using code must not alter the list.
- const ChannelNickList* getUnjoinedChannelMembers(const QString& channelName) \
const; + const ChannelNickMapPtr 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.
// Using code must not alter the list.
- const ChannelNickList* getChannelMembers(const QString& channelName) const;
+ const ChannelNickMapPtr 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.
- ChannelNick* getChannelNick(const QString& channelName, const QString& \
nickname); + ChannelNickPtr 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); + NickInfoPtr 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();
+ const NickInfoMap* getNicksOnline();
// Returns a list of the nicks on the watch list that are offline.
- const NickInfoList* getNicksOffline();
+ const NickInfoMap* getNicksOffline();
signals:
void nicknameChanged(const QString&);
@@ -202,9 +232,9 @@ class Server : public QObject
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);
+ void nickInfoChanged(Server* server, const NickInfoPtr nickInfo);
// Fires when the mode of a nick in a channel changes.
- void channelNickChanged(Server* server, const ChannelNick* channelNick);
+ void channelNickChanged(Server* server, const ChannelNickPtr 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.
@@ -215,7 +245,7 @@ class Server : public QObject
// 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);
+ void watchedNickChanged(Server* server, const NickInfoPtr nickInfo, bool \
online);
public slots:
void connectToIRCServer();
@@ -301,23 +331,23 @@ class Server : public QObject
// If needed, moves the nickname from the Offline to Online lists.
// If mode != 99 sets the mode for this nick in this channel.
// Returns the NickInfo for the nickname.
- NickInfo* addNickToJoinedChannelsList(const QString& channelName, const QString& \
nickname, unsigned int mode = 99); + NickInfoPtr addNickToJoinedChannelsList(const \
QString& channelName, const QString& nickname, unsigned int mode = 99); // Adds a \
nickname to the unjoinedChannels list. // Creates new NickInfo if necessary.
// If needed, moves the channel from the joined list to the unjoined list.
// If needed, moves the nickname from the Offline to the Online list.
// 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); + NickInfoPtr \
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.
// Creates new NickInfo if necessary.
- NickInfo* addNickToOnlineList(const QString& nickname);
+ NickInfoPtr 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.
// Returns the NickInfo of the nickname or 0 if deleted altogether.
// Creates new NickInfo if necessary.
- NickInfo* addNickToOfflineList(const QString& nickname, const QStringList& \
watchList); + NickInfoPtr addNickToOfflineList(const QString& nickname, const \
QStringList& watchList); // Remove nickname from a channel (on joined or unjoined \
lists). // Delete the nickname altogether if no longer on any lists.
void removeChannelNick(const QString& channelName, const QString& nickname);
@@ -326,7 +356,7 @@ class Server : public QObject
void removeJoinedChannel(const QString& channelName);
// Renames a nickname in all NickInfo lists.
// Returns pointer to the NickInfo object or 0 if nick not found.
- NickInfo* renameNickInfo(const QString& nickname, const QString& newname);
+ NickInfoPtr renameNickInfo(const QString& nickname, const QString& newname);
unsigned int completeQueryPosition;
unsigned int tryNickNumber;
@@ -395,19 +425,19 @@ class Server : public QObject
QString nonAwayNick;
// All nicks known to this server. Note this is NOT a list of all nicks on the \
server.
- NickInfoList allNicks;
+ NickInfoMap allNicks;
// List of membership lists for joined channels. A "joined" channel is a \
channel that user has joined, i.e., // a tab appears for the channel in the main \
window.
- ChannelMembershipList joinedChannels;
+ ChannelMembershipMap joinedChannels;
// List of membership lists for unjoined channels. These come from WHOIS \
responses. Note that this is NOT
// a list of all channels on the server, just those we are interested in because \
of nicks in the Nick Watch List.
- ChannelMembershipList unjoinedChannels;
+ ChannelMembershipMap unjoinedChannels;
// List of nicks in the Nick Watch List that are online.
- NickInfoList nicknamesOnline;
+ NickInfoMap nicknamesOnline;
// List of nicks in the Nick Watch List that are not online.
- NickInfoList nicknamesOffline;
+ NickInfoMap nicknamesOffline;
// List of nicks in Queries.
- NickInfoList queryNicks;
+ NickInfoMap queryNicks;
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic