]> jfr.im git - irc/quakenet/qwebirc.git/commitdiff
Add /umode, sort channel auto-completion by window order.
authorChris Porter <redacted>
Sun, 26 Oct 2008 01:55:03 +0000 (01:55 +0000)
committerChris Porter <redacted>
Sun, 26 Oct 2008 01:55:03 +0000 (01:55 +0000)
js/irc/commandparser.js
js/ui/baseuiwindow.js
js/ui/tabcompleter.js

index 3afd35f4020f98739102b68ae0ae6761e9d14fc2..f9fb33ed51633cfa69ea0caad496c7fe75c9feb3 100644 (file)
@@ -220,6 +220,9 @@ qwebirc.irc.CommandParser = new Class({
     this.send("PART " + c + " :" + (args?args[0]:"rejoining. . ."));
     this.send("JOIN " + c);
   }],
+  cmd_UMODE: [false, 1, 0, function(args) {
+    this.send("MODE " + this.parentObject.getNickname() + (args?(" " + args[0]):""));
+  }],
   cmd_CLEAR: [false, undefined, undefined, function(args) {
     var w = this.parentObject.getActiveWindow().lines;
     while(w.childNodes.length > 0)
index 4a9d06b6939e4f0fa25c61c9b4f340ecffe178e6..ed6d4a523794c791881ee0243d4ae2ea185979e5 100644 (file)
@@ -17,7 +17,7 @@ qwebirc.ui.Window = new Class({
     this.commandhistory = this.parentObject.commandhistory;
     this.scrolleddown = true;
     this.lastNickHash = {};
-    //new CommandHistory();
+    this.lastSelected = null;
   },
   updateNickList: function(nicks) {
   },
@@ -40,6 +40,7 @@ qwebirc.ui.Window = new Class({
       this.setHilighted(qwebirc.ui.HILIGHT_NONE);
     if(this.scrolleddown)
       this.scrollToBottom();
+    this.lastSelected = new Date();
   },
   deselect: function() {
     if(!this.parentObject.singleWindow)
index 41c21ae4574422245168b721c676395deb65a3ab..726c48b0b20f447e3b852a89024b9b74d721f2e1 100644 (file)
@@ -132,11 +132,27 @@ qwebirc.ui.ChannelNameTabCompleter = new Class({
   initialize: function(prefix, existingText, suffix, window) {
 
     /* WTB map */
-    var l = [];    
-    for(var c in window.client.channels)
-      l.push(c);
+    var l = [];
+    var wa = window.parentObject.windows[window.client];
+    
+    for(var c in window.client.channels) {
+      var w = wa[c];
       
-    this.parent(prefix, existingText, suffix, l);
+      /* redundant? */
+      if($defined(w))
+        w = w.lastSelected;
+        
+      l.push([w, c]);
+    }
+    
+    l.sort(function(a, b) {
+      return b[0] - a[0];
+    });
+
+    var l2 = [];    
+    for(var i=0;i<l.length;i++)
+      l2.push(l[i][1]);
+    this.parent(prefix, existingText, suffix, l2);
   }
 });