fixing tabcompleter crash in non channel buffers... ooooops
authorMarcus Eggenberger <egs@quassel-irc.org>
Tue, 8 Jul 2008 18:51:45 +0000 (20:51 +0200)
committerMarcus Eggenberger <egs@quassel-irc.org>
Tue, 8 Jul 2008 18:51:45 +0000 (20:51 +0200)
src/uisupport/tabcompleter.cpp

index 4ac8260..03d49ec 100644 (file)
@@ -40,13 +40,14 @@ TabCompleter::TabCompleter(InputLine *inputLine_)
 }
 
 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();