Bug 953957 - Unable to tell if a MUC is connected, r=florian.

This commit is contained in:
Benedikt P. 2011-01-14 17:36:04 +01:00
Родитель c723f6a1df
Коммит 6875382e67
4 изменённых файлов: 38 добавлений и 24 удалений

Просмотреть файл

@ -942,30 +942,38 @@
</body>
</method>
<method name="updateBuddyStatus">
<method name="updateConvStatus">
<body>
<![CDATA[
let buddy = this._conv.buddy;
if (!buddy || !buddy.account.connected) {
this.tab.removeAttribute("status");
// This is ugly, but when an account gets disconnected libpurple
// doesn't reset the typing state... :(
this.tab.removeAttribute("typing");
this.tab.removeAttribute("typed");
this._statusText = "";
this.displayStatusText();
if (this._conv.isChat) {
if (!this._conv.account.connected || this._conv.left)
this.tab.setAttribute("status", "left");
else
this.tab.removeAttribute("status");
}
else {
let buddy = this._conv.buddy;
if (!buddy || !buddy.account.connected) {
this.tab.removeAttribute("status");
// This is ugly, but when an account gets disconnected libpurple
// doesn't reset the typing state... :(
this.tab.removeAttribute("typing");
this.tab.removeAttribute("typed");
this._statusText = "";
this.displayStatusText();
}
else if (!buddy.online)
this.tab.setAttribute("status", "offline");
else if (buddy.idle)
this.tab.setAttribute("status", "idle");
else if (buddy.mobile)
this.tab.setAttribute("status", "mobile");
else if (buddy.available)
this.tab.setAttribute("status", "available");
else
this.tab.setAttribute("status", "away");
}
else if (!buddy.online)
this.tab.setAttribute("status", "offline");
else if (buddy.idle)
this.tab.setAttribute("status", "idle");
else if (buddy.mobile)
this.tab.setAttribute("status", "mobile");
else if (buddy.available)
this.tab.setAttribute("status", "available");
else
this.tab.setAttribute("status", "away");
]]>
</body>
</method>
@ -992,9 +1000,8 @@
this.addBuddy(n);
this.updateParticipantCount();
}
else
this.updateBuddyStatus();
this.updateConvStatus();
this.initTextboxFormat();
]]>
</body>
@ -1030,7 +1037,8 @@
break;
case "update-buddy-status":
this.updateBuddyStatus();
case "update-conv-chatleft":
this.updateConvStatus();
break;
case "update-conv-title":

Двоичные данные
im/themes/chat-left-16.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 556 B

Просмотреть файл

@ -112,6 +112,10 @@ tab[attention],
.alltabs-item[chat] > .menu-iconic-left > .menu-iconic-icon {
list-style-image: url("chrome://instantbird/skin/chat-16.png") !important;
}
.tabbrowser-tab[chat][status="left"] > .tab-icon-image,
.alltabs-item[chat][status="left"] > .menu-iconic-left > .menu-iconic-icon {
list-style-image: url("chrome://instantbird/skin/chat-left-16.png") !important;
}
.tabbrowser-tab[status="offline"] > .tab-icon-image,
.alltabs-item[status="offline"] > .menu-iconic-left > .menu-iconic-icon {

Просмотреть файл

@ -26,6 +26,7 @@ instantbird.jar:
skin/classic/instantbird/typed-16.png
skin/classic/instantbird/unknown-16.png
skin/classic/instantbird/chat-16.png
skin/classic/instantbird/chat-left-16.png
skin/classic/instantbird/founder.png
skin/classic/instantbird/operator.png
skin/classic/instantbird/half-operator.png
@ -119,6 +120,7 @@ instantbird.jar:
skin/classic/aero/instantbird/typed-16.png
skin/classic/aero/instantbird/unknown-16.png
skin/classic/aero/instantbird/chat-16.png
skin/classic/aero/instantbird/chat-left-16.png
skin/classic/aero/instantbird/founder.png
skin/classic/aero/instantbird/operator.png
skin/classic/aero/instantbird/half-operator.png