projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ignore leading non-alphabetical characters. Fixes BR205
[quassel.git]
/
src
/
uisupport
/
tabcompleter.cpp
diff --git
a/src/uisupport/tabcompleter.cpp
b/src/uisupport/tabcompleter.cpp
index
c68b695
..
87a745a
100644
(file)
--- a/
src/uisupport/tabcompleter.cpp
+++ b/
src/uisupport/tabcompleter.cpp
@@
-29,6
+29,8
@@
#include "ircuser.h"
#include "uisettings.h"
#include "ircuser.h"
#include "uisettings.h"
+#include <QRegExp>
+
TabCompleter::TabCompleter(InputLine *inputLine_)
: QObject(inputLine_),
inputLine(inputLine_),
TabCompleter::TabCompleter(InputLine *inputLine_)
: QObject(inputLine_),
inputLine(inputLine_),
@@
-69,12
+71,17
@@
void TabCompleter::buildCompletionList() {
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();
}
}
}
}
- completionList.sort();
+ foreach (QString str, sortMap)
+ completionList << str;
+
nextCompletion = completionList.begin();
lastCompletionLength = tabAbbrev.length();
}
nextCompletion = completionList.begin();
lastCompletionLength = tabAbbrev.length();
}