if(!this.firstClient) {
this.firstClient = true;
w.addLine("", "qwebirc v" + qwebirc.VERSION);
- w.addLine("", "Copyright (C) 2008-2014 Chris Porter and the qwebirc project.");
+ w.addLine("", "Copyright (C) 2008-2019 Chris Porter and the qwebirc project.");
w.addLine("", "http://www.qwebirc.org");
w.addLine("", "Licensed under the GNU General Public License, Version 2.");
}
getActiveWindow: function() {
return this.active;
},
+ getStatusWindow: function(client) {
+ return this.windows.get(this.getClientId(client)).get(this.getWindowIdentifier(client, qwebirc.ui.WINDOW_STATUS));
+ },
getActiveIRCWindow: function(client) {
if(!this.active || this.active.type == qwebirc.ui.WINDOW_CUSTOM) {
- return this.windows.get(this.getClientId(client)).get(this.getWindowIdentifier(client, qwebirc.ui.WINDOW_STATUS));
+ return this.getStatusWindow(client);
} else {
return this.active;
}
this.postInitialize();
this.addCustomWindow("Connect", qwebirc.ui.ConnectPane, "connectpane", {
- initialNickname: initialNickname, initialChannels: initialChannels, autoConnect: autoConnect, networkName: this.options.networkName, callback: callback, autoNick: autoNick
+ initialNickname: initialNickname, initialChannels: initialChannels, autoConnect: autoConnect, callback: callback, autoNick: autoNick,
+ uiOptions: this.options
}, qwebirc.ui.WINDOW_CONNECT);
},
focusChange: function(newValue) {
qwebirc.ui.StandardUI = new Class({
Extends: qwebirc.ui.BaseUI,
- UICommands: qwebirc.ui.UI_COMMANDS,
initialize: function(parentElement, windowClass, uiName, options) {
this.parent(parentElement, windowClass, uiName, options);
+ this.UICommands = this.__build_menu_items(options);
+
this.__styleValues = {hue: qwebirc.ui.DEFAULT_HUE, saturation: 0, lightness: 0, textHue: null, textSaturation: null, textLightness: null};
if($defined(this.options.hue)) this.__styleValues.hue = this.options.hue;
this.tabCompleter = new qwebirc.ui.TabCompleterFactory(this);
document.addEvent("keydown", this.__handleHotkey.bind(this));
},
+ __build_menu_items: function(options) {
+ var r = [];
+ var seenAbout = null;
+
+ for(var i=0;i<qwebirc.ui.UI_COMMANDS_P1.length;i++)
+ r.push([true, qwebirc.ui.UI_COMMANDS_P1[i]]);
+ for(var i=0;i<options.customMenuItems.length;i++)
+ r.push([false, options.customMenuItems[i]]);
+ for(var i=0;i<qwebirc.ui.UI_COMMANDS_P2.length;i++)
+ r.push([true, qwebirc.ui.UI_COMMANDS_P2[i]]);
+
+ var r2 = []
+ for(var i=0;i<r.length;i++) {
+ var preset = r[i][0], c = r[i][1];
+
+ if(c[0] == "About qwebirc") { /* HACK */
+ if(!preset) {
+ seenAbout = c;
+ continue;
+ } else if(seenAbout) {
+ c = seenAbout;
+ preset = false;
+ }
+ }
+
+ if(preset) {
+ r2.push([c[0], this[c[1] + "Window"].bind(this)]);
+ } else {
+ r2.push([c[0], (function(c) { return function() {
+ this.addCustomWindow(c[0], qwebirc.ui.URLPane, "urlpane", {url: c[1]});
+ }.bind(this); }).call(this, c)]);
+ }
+ }
+
+ return r2;
+ },
__handleHotkey: function(x) {
var success = false;
if(!x.alt && !x.control && !x.shift && !x.meta) {
this.addCustomWindow("Options", qwebirc.ui.OptionsPane, "optionspane", this.uiOptions);
},
aboutWindow: function() {
- this.addCustomWindow("About", qwebirc.ui.AboutPane, "aboutpane", this.uiOptions);
- },
- privacyWindow: function() {
- this.addCustomWindow("Privacy policy", qwebirc.ui.PrivacyPolicyPane, "privacypolicypane", this.uiOptions);
- },
- feedbackWindow: function() {
- this.addCustomWindow("Feedback", qwebirc.ui.FeedbackPane, "feedbackpane", this.uiOptions);
- },
- helpWindow: function() {
- this.addCustomWindow("Help!", qwebirc.ui.HelpPane, "helppane", this.uiOptions);
+ this.addCustomWindow("About qwebirc", qwebirc.ui.AboutPane, "aboutpane", this.uiOptions);
},
urlDispatcher: function(name, window) {
if(name == "embedded")
this.cancelFlash = this.__flasher.cancelFlash.bind(this.__flasher);
},
- beep: function() {
- this.__beeper.beep();
+ beep: function(notification) {
+ this.__beeper.beep(notification);
},
notify: function(title, message, callback) {
- this.__beeper.beep();
+ this.__beeper.beep(true);
this.__flasher.flash();
this.__notifier.notify(title, message, callback);
},
- setBeepOnMention: function(value) {
- if(value)
- this.__beeper.soundInit();
- },
setNotifications: function(value) {
this.__notifier.setEnabled(value);
},
urlDispatcher: function(name, window) {
if(name == "qwhois") {
return ["span", function(auth) {
- this.client.exec("/MSG Q whois #" + auth);
+ if($defined(this.parentObject.options.accountWhoisCommand))
+ this.client.exec(this.parentObject.options.accountWhoisCommand + auth);
}.bind(window)];
}
return this.parent(name, window);
},
logout: function() {
- if(!qwebirc.auth.loggedin())
+ if(!qwebirc.auth.loggedin(true)) {
+ this.getActiveWindow().errorMessage("Not logged in!");
return;
+ }
if(confirm("Log out?")) {
this.clients.each(function(k, v) {
v.quit("Logged out");
}, this);
/* HACK */
- var foo = function() { document.location = qwebirc.global.dynamicBaseURL + "auth?logout=1"; };
+ var foo = function() { document.location = "/auth?logout=1"; };
foo.delay(500);
}
}