}
void TabCompleter::buildCompletionList() {
+ // ensure a safe state in case we return early.
completionMap.clear();
+ nextCompletion = completionMap.begin();
+
// this is the first time tab is pressed -> build up the completion list and it's iterator
QModelIndex currentIndex = Client::bufferModel()->currentIndex();
- if(!currentIndex.data(NetworkModel::BufferIdRole).isValid()) {
- nextCompletion = completionMap.begin();
+ if(!currentIndex.data(NetworkModel::BufferIdRole).isValid())
return;
- }
NetworkId networkId = currentIndex.data(NetworkModel::NetworkIdRole).value<NetworkId>();
QString channelName = currentIndex.sibling(currentIndex.row(), 0).data().toString();
*/
QString tabAbbrev = inputLine->text().left(inputLine->cursorPosition()).section(' ',-1,-1);
- QRegExp regex(QString("^[^a-zA-Z]*").append(tabAbbrev), Qt::CaseInsensitive);
+ QRegExp regex(QString("^[^a-zA-Z]*").append(QRegExp::escape(tabAbbrev)), Qt::CaseInsensitive);
foreach(IrcUser *ircUser, channel->ircUsers()) {
if(regex.indexIn(ircUser->nick()) > -1) {