0001-Implemented-names-command-as-in-Irssi.patch
src/core/userinputhandler.cpp | ||
---|---|---|
346 | 346 |
emit putCmd("TOPIC", params); |
347 | 347 |
} |
348 | 348 | |
349 |
void UserInputHandler::handleNames(const BufferInfo &bufferInfo, const QString &msg) { |
|
350 |
if(bufferInfo.bufferName().isEmpty() || bufferInfo.type() != BufferInfo::ChannelBuffer) return; |
|
351 | ||
352 |
IrcChannel *chan = network()->ircChannel(bufferInfo.bufferName()); |
|
353 |
QList< QString > words; |
|
354 |
int maxlength = 1; |
|
355 |
foreach(IrcUser* u, chan->ircUsers()) |
|
356 |
{ |
|
357 |
QString word = QString("%1%2").arg(chan->userModes(u).replace('o','@').replace('v','+').replace('h','%'), 1).arg(u->nick()); |
|
358 | ||
359 |
if(word.length() > maxlength) |
|
360 |
maxlength = word.length(); |
|
361 | ||
362 |
words << word; |
|
363 |
} |
|
364 | ||
365 |
const static int cols = 4; // FIXME: probably an option. |
|
366 |
int pos = 1; |
|
367 |
QString buffer; |
|
368 |
foreach(QString word, words) |
|
369 |
{ |
|
370 |
buffer += QString("[%1]").arg(word, -maxlength); |
|
371 |
if(++pos % cols == 0) |
|
372 |
{ |
|
373 |
emit displayMsg(Message::Server, bufferInfo.type(), bufferInfo.bufferName(), buffer); |
|
374 |
buffer.clear(); |
|
375 |
} |
|
376 |
} |
|
377 | ||
378 |
if(!buffer.isEmpty()) |
|
379 |
emit displayMsg(Message::Server, bufferInfo.type(), bufferInfo.bufferName(), buffer); |
|
380 |
} |
|
381 | ||
349 | 382 |
void UserInputHandler::handleVoice(const BufferInfo &bufferInfo, const QString &msg) { |
350 | 383 |
QStringList nicks = msg.split(' ', QString::SkipEmptyParts); |
351 | 384 |
QString m = "+"; for(int i = 0; i < nicks.count(); i++) m += 'v'; |
src/core/userinputhandler.h | ||
---|---|---|
48 | 48 |
void handleMe(const BufferInfo &bufferInfo, const QString &text); |
49 | 49 |
void handleMode(const BufferInfo &bufferInfo, const QString &text); |
50 | 50 |
void handleMsg(const BufferInfo &bufferInfo, const QString &text); |
51 |
void handleNames(const BufferInfo &bufferInfo, const QString &text); |
|
51 | 52 |
void handleNick(const BufferInfo &bufferInfo, const QString &text); |
52 | 53 |
void handleNotice(const BufferInfo &bufferInfo, const QString &text); |
53 | 54 |
void handleOper(const BufferInfo &bufferInfo, const QString &text); |
54 |
- |