mirror of
https://github.com/moparisthebest/FireTray
synced 2024-08-13 15:53:47 -04:00
* rename all IM/Chat-related modules consistently with "Chat" keyword
* stopIconBlinkingMaybe() only when acknowledgeOnFocus.must
This commit is contained in:
parent
5c12abb1ee
commit
06349f15f4
@ -8,44 +8,44 @@ const Cu = Components.utils;
|
||||
|
||||
Cu.import("resource:///modules/imServices.jsm");
|
||||
Cu.import("resource://firetray/commons.js");
|
||||
Cu.import("resource://firetray/linux/FiretrayIMStatusIcon.jsm");
|
||||
Cu.import("resource://firetray/linux/FiretrayChatStatusIcon.jsm");
|
||||
|
||||
// FIXME: rename to firetray.Chat
|
||||
firetray.InstantMessaging = {
|
||||
firetray.Chat = {
|
||||
initialized: false,
|
||||
observedTopics: {},
|
||||
acknowledgeOnFocus: {},
|
||||
|
||||
init: function() {
|
||||
if (this.initialized) {
|
||||
F.WARN("InstantMessaging already initialized");
|
||||
F.WARN("Chat already initialized");
|
||||
return;
|
||||
}
|
||||
F.LOG("Enabling InstantMessaging");
|
||||
F.LOG("Enabling Chat");
|
||||
|
||||
firetray.Utils.addObservers(firetray.InstantMessaging, [
|
||||
firetray.Utils.addObservers(firetray.Chat, [
|
||||
// "*" // debugging
|
||||
"account-connected", "account-disconnected", "idle-time-changed",
|
||||
"new-directed-incoming-message", "status-changed",
|
||||
"unread-im-count-changed"
|
||||
]);
|
||||
firetray.IMStatusIcon.init();
|
||||
firetray.ChatStatusIcon.init();
|
||||
|
||||
this.initialized = true;
|
||||
},
|
||||
|
||||
shutdown: function() {
|
||||
if (!this.initialized) return;
|
||||
F.LOG("Disabling InstantMessaging");
|
||||
F.LOG("Disabling Chat");
|
||||
|
||||
firetray.IMStatusIcon.shutdown();
|
||||
firetray.Utils.removeAllObservers(firetray.InstantMessaging);
|
||||
firetray.ChatStatusIcon.shutdown();
|
||||
firetray.Utils.removeAllObservers(firetray.Chat);
|
||||
|
||||
this.initialized = false;
|
||||
},
|
||||
|
||||
observe: function(subject, topic, data) {
|
||||
F.LOG("RECEIVED InstantMessaging: "+topic+" subject="+subject+" data="+data);
|
||||
F.LOG("RECEIVED Chat: "+topic+" subject="+subject+" data="+data);
|
||||
switch (topic) {
|
||||
case "account-connected":
|
||||
case "account-disconnected":
|
||||
@ -63,7 +63,7 @@ firetray.InstantMessaging = {
|
||||
if (!convIsActiveTabInActiveWin) { // don't blink when conv tab already on top
|
||||
this.acknowledgeOnFocus.must = true;
|
||||
this.acknowledgeOnFocus.conv = conv;
|
||||
firetray.IMStatusIcon.setIconBlinking(true);
|
||||
firetray.ChatStatusIcon.setIconBlinking(true);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -76,7 +76,7 @@ firetray.InstantMessaging = {
|
||||
unreadMsgCount,
|
||||
firetray.Utils.strings.GetStringFromName("tooltip.unread_messages"))
|
||||
.replace("#1", unreadMsgCount);
|
||||
firetray.IMStatusIcon.setIconTooltip(localizedTooltip);
|
||||
firetray.ChatStatusIcon.setIconTooltip(localizedTooltip);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -86,14 +86,14 @@ firetray.InstantMessaging = {
|
||||
|
||||
stopIconBlinkingMaybe: function() {
|
||||
F.LOG("acknowledgeOnFocus.must="+this.acknowledgeOnFocus.must);
|
||||
// if (!this.acknowledgeOnFocus.must) return;
|
||||
if (!this.acknowledgeOnFocus.must) return;
|
||||
|
||||
let convIsActiveTabInActiveWin = this.isConvActiveTabInActiveWindow(
|
||||
this.acknowledgeOnFocus.conv);
|
||||
F.LOG("convIsActiveTabInActiveWin="+convIsActiveTabInActiveWin);
|
||||
|
||||
if (this.acknowledgeOnFocus.must && convIsActiveTabInActiveWin) {
|
||||
firetray.IMStatusIcon.setIconBlinking(false);
|
||||
firetray.ChatStatusIcon.setIconBlinking(false);
|
||||
this.acknowledgeOnFocus.must = false;
|
||||
}
|
||||
},
|
||||
@ -145,7 +145,7 @@ firetray.InstantMessaging = {
|
||||
|
||||
F.LOG("IM status changed="+iconName);
|
||||
if (iconName)
|
||||
firetray.IMStatusIcon.setIconImage(iconName);
|
||||
firetray.ChatStatusIcon.setIconImage(iconName);
|
||||
}
|
||||
|
||||
};
|
@ -9,7 +9,7 @@ const Cu = Components.utils;
|
||||
Cu.import("resource:///modules/mailServices.js");
|
||||
Cu.import("resource://gre/modules/PluralForm.jsm");
|
||||
Cu.import("resource://firetray/commons.js");
|
||||
Cu.import("resource://firetray/FiretrayInstantMessaging.jsm");
|
||||
Cu.import("resource://firetray/FiretrayChat.jsm");
|
||||
|
||||
const FLDRS_UNINTERESTING = {
|
||||
Archive: Ci.nsMsgFolderFlags.Archive,
|
||||
@ -45,7 +45,7 @@ firetray.Messaging = {
|
||||
|
||||
// FIXME: add im-icon pref
|
||||
if (Services.prefs.getBoolPref("mail.chat.enabled") && this.existsIMAccount())
|
||||
firetray.InstantMessaging.init();
|
||||
firetray.Chat.init();
|
||||
|
||||
this.initialized = true;
|
||||
},
|
||||
@ -54,7 +54,7 @@ firetray.Messaging = {
|
||||
if (!this.initialized) return;
|
||||
F.LOG("Disabling Messaging");
|
||||
|
||||
firetray.InstantMessaging.shutdown();
|
||||
firetray.Chat.shutdown();
|
||||
|
||||
MailServices.mailSession.RemoveFolderListener(this.mailSessionListener);
|
||||
|
||||
@ -63,7 +63,7 @@ firetray.Messaging = {
|
||||
this.initialized = false;
|
||||
},
|
||||
|
||||
// FIXME: this should definetely be done in InstantMessaging, but IM accounts
|
||||
// FIXME: this should definetely be done in Chat, but IM accounts
|
||||
// seem not be initialized at this stage (Exception... "'TypeError:
|
||||
// this._items is undefined' when calling method:
|
||||
// [nsISimpleEnumerator::hasMoreElements]"), and we're unsure if we should
|
||||
@ -85,11 +85,11 @@ firetray.Messaging = {
|
||||
case "account-removed":
|
||||
this.cleanExcludedAccounts();
|
||||
if (subject.QueryInterface(Ci.imIAccount) && !this.existsIMAccount())
|
||||
firetray.InstantMessaging.shutdown();
|
||||
firetray.Chat.shutdown();
|
||||
break;
|
||||
case "account-added":
|
||||
if (subject.QueryInterface(Ci.imIAccount) && !firetray.InstantMessaging.initialized)
|
||||
firetray.InstantMessaging.init();
|
||||
if (subject.QueryInterface(Ci.imIAccount) && !firetray.Chat.initialized)
|
||||
firetray.Chat.init();
|
||||
break;
|
||||
default:
|
||||
F.WARN("unhandled topic: "+topic);
|
||||
|
@ -21,7 +21,7 @@ if ("undefined" == typeof(firetray.Handler))
|
||||
F.ERROR("This module MUST be imported from/after FiretrayHandler !");
|
||||
|
||||
|
||||
firetray.IMStatusIcon = {
|
||||
firetray.ChatStatusIcon = {
|
||||
GTK_THEME_ICON_PATH: null,
|
||||
|
||||
initialized: false,
|
||||
@ -37,7 +37,7 @@ firetray.IMStatusIcon = {
|
||||
callbacks: {onFocusIn: {}},
|
||||
|
||||
init: function() {
|
||||
if (!firetray.Handler.inMailApp) throw "IMStatusIcon for mail app only";
|
||||
if (!firetray.Handler.inMailApp) throw "ChatStatusIcon for mail app only";
|
||||
if (!firetray.GtkIcons.initialized) throw "GtkIcons should have been initialized by StatusIcon";
|
||||
|
||||
this.trayIcon = gtk.gtk_status_icon_new();
|
||||
@ -68,10 +68,10 @@ firetray.IMStatusIcon = {
|
||||
},
|
||||
|
||||
setIconImageFromGIcon: function(gicon) {
|
||||
if (!firetray.IMStatusIcon.trayIcon || !gicon)
|
||||
if (!firetray.ChatStatusIcon.trayIcon || !gicon)
|
||||
F.ERROR("Icon missing");
|
||||
F.LOG(gicon);
|
||||
gtk.gtk_status_icon_set_from_gicon(firetray.IMStatusIcon.trayIcon, gicon);
|
||||
gtk.gtk_status_icon_set_from_gicon(firetray.ChatStatusIcon.trayIcon, gicon);
|
||||
},
|
||||
|
||||
setIconImage: function(name) {
|
||||
@ -94,9 +94,9 @@ firetray.IMStatusIcon = {
|
||||
|
||||
attachOnFocusInCallback: function(xid) {
|
||||
F.LOG("attachOnFocusInCallback xid="+xid);
|
||||
this.callbacks.onFocusIn[xid] = gtk.GCallbackWidgetFocuEvent_t(firetray.IMStatusIcon.onFocusIn);
|
||||
this.callbacks.onFocusIn[xid] = gtk.GCallbackWidgetFocuEvent_t(firetray.ChatStatusIcon.onFocusIn);
|
||||
gobject.g_signal_connect(firetray.Handler.gtkWindows.get(xid),
|
||||
"focus-in-event", firetray.IMStatusIcon.callbacks.onFocusIn[xid], null);
|
||||
"focus-in-event", firetray.ChatStatusIcon.callbacks.onFocusIn[xid], null);
|
||||
},
|
||||
|
||||
// NOTE: fluxbox issues a FocusIn event when switching workspace by hotkey :(
|
||||
@ -107,9 +107,9 @@ firetray.IMStatusIcon = {
|
||||
// let gdkWin = gdkEventFocus.contents.window;
|
||||
// let xid = firetray.Window.getXIDFromGdkWindow(gdkWin);
|
||||
// F.LOG("xid="+xid+" in="+gdkEventFocus.contents["in"]);
|
||||
firetray.InstantMessaging.stopIconBlinkingMaybe();
|
||||
firetray.Chat.stopIconBlinkingMaybe();
|
||||
}
|
||||
|
||||
// FIXME: TODO: onclick/activate -> chatHandler.showCurrentConversation()
|
||||
|
||||
}; // firetray.IMStatusIcon
|
||||
}; // firetray.ChatStatusIcon
|
@ -595,9 +595,9 @@ firetray.Handler.registerWindow = function(win) {
|
||||
this.windows[xid].filterWindowCb = gdk.GdkFilterFunc_t(firetray.Window.filterWindow);
|
||||
gdk.gdk_window_add_filter(gdkWin, this.windows[xid].filterWindowCb, null);
|
||||
|
||||
if (firetray.Handler.inMailApp && firetray.InstantMessaging.initialized) { // missing import ok
|
||||
Cu.import("resource://firetray/linux/FiretrayIMStatusIcon.jsm");
|
||||
firetray.IMStatusIcon.attachOnFocusInCallback(xid);
|
||||
if (firetray.Handler.inMailApp && firetray.Chat.initialized) { // missing import ok
|
||||
Cu.import("resource://firetray/linux/FiretrayChatStatusIcon.jsm");
|
||||
firetray.ChatStatusIcon.attachOnFocusInCallback(xid);
|
||||
}
|
||||
|
||||
} catch (x) {
|
||||
|
Loading…
Reference in New Issue
Block a user