]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - js/ui/tabcompleter.js
Merge.
[irc/quakenet/qwebirc.git] / js / ui / tabcompleter.js
index 2058f778ab213c3a2635e35abe3adab7254dec5d..606eaad430582e1b45a145d14b53f2a620bc3d37 100644 (file)
@@ -29,6 +29,8 @@ qwebirc.ui.TabCompleterFactory = new Class({
         obj = qwebirc.ui.ChannelNameTabCompleter;
       } else if(ltext.match(/^\/(q|query|msg) /i)) {
         obj = qwebirc.ui.QueryTabCompleter;
+      } else if(w.type == qwebirc.ui.WINDOW_QUERY) {
+        obj = qwebirc.ui.QueryNickTabCompleter;
       } else if(w.type == qwebirc.ui.WINDOW_CHANNEL) {
         /* "slug[TAB]" == "slug: " */
         if(preword == "") {
@@ -127,23 +129,28 @@ qwebirc.ui.QueryTabCompleter = new Class({
   }
 });
 
+qwebirc.ui.QueryNickTabCompleter = new Class({
+  Extends: qwebirc.ui.BaseTabCompleter,
+  initialize: function(prefix, existingText, suffix, window) {
+    var nick = window.name
+    this.parent(window.client, prefix, existingText, suffix, [nick]);
+  }
+});
+
 qwebirc.ui.ChannelNameTabCompleter = new Class({
   Extends: qwebirc.ui.BaseTabCompleter,
   initialize: function(prefix, existingText, suffix, window) {
 
-    /* WTB map */
-    var l = [];
-    var wa = window.parentObject.windows[window.parentObject.getClientId(window.client)];
-    
-    for(var c in window.client.channels) {
-      var w = wa[c];
+    var wa = window.parentObject.windows.get(window.parentObject.getClientId(window.client));
+    var l = window.client.channels.map(function(c) {
+      var w = wa.get(c);
       
       /* redundant? */
       if($defined(w))
         w = w.lastSelected;
         
-      l.push([w, c]);
-    }
+      return [w, c];
+    });
     
     l.sort(function(a, b) {
       return b[0] - a[0];