Mercurial > hg > octave-lyh
changeset 13618:46c5fd59fe98
Autocompletion now works for users that changed their nick or joined the channel.
author | Jacob Dawid <jacob.dawid@googlemail.com> |
---|---|
date | Wed, 17 Aug 2011 21:26:37 +0200 |
parents | be7496863660 |
children | f72530c9471a |
files | gui/src/qirc/IRCClientImpl.cpp gui/src/qirc/IRCClientImpl.h gui/src/qirc/IRCClientInterface.h |
diffstat | 3 files changed, 29 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/gui/src/qirc/IRCClientImpl.cpp +++ b/gui/src/qirc/IRCClientImpl.cpp @@ -149,6 +149,8 @@ m_clientInterface (clientInterface) { m_channelName = channelName; + connect (clientInterface, SIGNAL (nicknameChanged (QString,QString)), + this, SLOT (handleNickChange (QString,QString))); } QTextDocument * @@ -198,6 +200,23 @@ Q_UNUSED (reason); } +void +IRCChannelProxyImpl::handleNickChange (const QString &oldNick, const QString &newNick) +{ + m_userList = m_userListModel.stringList (); + m_userList.removeAll (oldNick); + m_userList.append (newNick); + m_userListModel.setStringList (m_userList); +} + +void +IRCChannelProxyImpl::handleJoin (const QString &nick) +{ + m_userList = m_userListModel.stringList (); + m_userList.append (nick); + m_userListModel.setStringList (m_userList); +} + IRCClientImpl::IRCClientImpl (QObject *parent) : IRCClientInterface (parent) { @@ -315,7 +334,7 @@ { line = m_tcpSocket.readLine(); if (line.size ()) - handleIncomingLine(QString(line)); + handleIncomingLine(QString (line).toLocal8Bit ()); else break; } @@ -337,6 +356,7 @@ void IRCClientImpl::handleUserJoined (const QString &nick, const QString &channel) { + ircChannelProxy (channel)->handleJoin (nick); emit userJoined (nick, channel); } @@ -468,7 +488,7 @@ IRCClientImpl::sendLine (const QString &line) { if (m_connected) - m_tcpSocket.write ((line + "\r\n").toStdString ().c_str ()); + m_tcpSocket.write ( (line + + "\r\n").toUtf8 ()); } void
--- a/gui/src/qirc/IRCClientImpl.h +++ b/gui/src/qirc/IRCClientImpl.h @@ -289,7 +289,9 @@ void sendMessage (const QString& message); void sendJoinRequest (); void leave (const QString &reason); - +public slots: + void handleNickChange (const QString& oldNick, const QString& newNick); + void handleJoin (const QString& nick); private: QString m_channelName; QStringList m_userList;
--- a/gui/src/qirc/IRCClientInterface.h +++ b/gui/src/qirc/IRCClientInterface.h @@ -66,6 +66,10 @@ * \arg reason Reason for leaving the channel. */ virtual void leave (const QString& reason) = 0; + +public slots: + virtual void handleNickChange (const QString& oldNick, const QString& newNick) = 0; + virtual void handleJoin (const QString& nick) = 0; }; /**