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
68f1532
..
87a745a
100644
(file)
--- a/
src/uisupport/tabcompleter.cpp
+++ b/
src/uisupport/tabcompleter.cpp
@@
-27,6
+27,9
@@
#include "network.h"
#include "ircchannel.h"
#include "ircuser.h"
#include "network.h"
#include "ircchannel.h"
#include "ircuser.h"
+#include "uisettings.h"
+
+#include <QRegExp>
TabCompleter::TabCompleter(InputLine *inputLine_)
: QObject(inputLine_),
TabCompleter::TabCompleter(InputLine *inputLine_)
: QObject(inputLine_),
@@
-34,6
+37,7
@@
TabCompleter::TabCompleter(InputLine *inputLine_)
enabled(false),
nickSuffix(": ")
{
enabled(false),
nickSuffix(": ")
{
+ inputLine->installEventFilter(this);
}
void TabCompleter::buildCompletionList() {
}
void TabCompleter::buildCompletionList() {
@@
-67,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();
}
@@
-83,6
+92,9
@@
void TabCompleter::ircUserJoinedOrParted(IrcUser *ircUser) {
}
void TabCompleter::complete() {
}
void TabCompleter::complete() {
+ UiSettings uiSettings;
+ nickSuffix = uiSettings.value("CompletionSuffix", QString(": ")).toString();
+
if(!enabled) {
buildCompletionList();
enabled = true;
if(!enabled) {
buildCompletionList();
enabled = true;