In addition, sorting of completionList is now correct(tm).
#include "ircuser.h"
#include "uisettings.h"
#include "ircuser.h"
#include "uisettings.h"
TabCompleter::TabCompleter(InputLine *inputLine_)
: QObject(inputLine_),
inputLine(inputLine_),
TabCompleter::TabCompleter(InputLine *inputLine_)
: QObject(inputLine_),
inputLine(inputLine_),
completionList.clear();
QString tabAbbrev = inputLine->text().left(inputLine->cursorPosition()).section(' ',-1,-1);
completionList.clear();
completionList.clear();
QString tabAbbrev = inputLine->text().left(inputLine->cursorPosition()).section(' ',-1,-1);
completionList.clear();
+ QRegExp regex(QString("^[^a-zA-Z]*").append(tabAbbrev), Qt::CaseInsensitive);
+ QMap<QString, QString> sortMap;
+
foreach(IrcUser *ircUser, channel->ircUsers()) {
foreach(IrcUser *ircUser, channel->ircUsers()) {
- if(ircUser->nick().toLower().startsWith(tabAbbrev.toLower())) {
- completionList << ircUser->nick();
+ if(regex.indexIn(ircUser->nick()) > -1) {
+ sortMap[ircUser->nick().toLower()] = ircUser->nick();
+ foreach (QString str, sortMap)
+ completionList << str;
+
nextCompletion = completionList.begin();
lastCompletionLength = tabAbbrev.length();
}
nextCompletion = completionList.begin();
lastCompletionLength = tabAbbrev.length();
}