diff --git a/src/groupchat_control.py b/src/groupchat_control.py
index e6f6f6007..ccb39020e 100644
--- a/src/groupchat_control.py
+++ b/src/groupchat_control.py
@@ -24,6 +24,24 @@ from chat_control import ChatControl
from chat_control import ChatControlBase
from conversation_textview import ConversationTextview
from message_textview import MessageTextView
+from gettext import ngettext
+from common import i18n
+
+_ = i18n._
+Q_ = i18n.Q_
+APP = i18n.APP
+gtk.glade.bindtextdomain(APP, i18n.DIR)
+gtk.glade.textdomain(APP)
+
+GTKGUI_GLADE = 'gtkgui.glade'
+
+#(status_image, type, nick, shown_nick)
+(
+C_IMG, # image to show state (online, new message etc)
+C_TYPE, # type of the row ('contact' or 'group')
+C_NICK, # contact nickame or group name
+C_TEXT, # text shown in the cellrenderer
+) = range(4)
class PrivateChatControl(ChatControl):
TYPE_ID = message_control.TYPE_PM
@@ -40,6 +58,9 @@ class GroupchatControl(ChatControlBase):
ChatControlBase.__init__(self, self.TYPE_ID, parent_win,
'muc_child_vbox', _('Group Chat'), contact, acct);
self.compact_view_always = gajim.config.get('always_compact_view_gc')
+ # alphanum sorted
+ self.muc_cmds = ['ban', 'chat', 'query', 'clear', 'close', 'compact', 'help', 'invite',
+ 'join', 'kick', 'leave', 'me', 'msg', 'nick', 'part', 'say', 'topic']
# muc attention states (when we are mentioned in a muc)
# if the room jid is in the list, the room has mentioned us
self.muc_attentions = []
@@ -57,7 +78,7 @@ class GroupchatControl(ChatControlBase):
num_unread = self.nb_unread
- has_focus = self.parent_win.get_property('has-toplevel-focus')
+ has_focus = self.parent_win.window.get_property('has-toplevel-focus')
current_tab = self.parent_win.get_active_control() == self
color = None
theme = gajim.config.get('roster_theme')
diff --git a/src/gtkgui.glade b/src/gtkgui.glade
index df28a6a1e..df584c04a 100644
--- a/src/gtkgui.glade
+++ b/src/gtkgui.glade
@@ -19769,7 +19769,7 @@ Status message
-
+
True
<span weight="heavy" size="large">room jid</span>
topic
@@ -19820,7 +19820,7 @@ topic
6
-
+
200
60
True
@@ -19842,7 +19842,7 @@ topic
-
+
True
True
GTK_POLICY_NEVER
diff --git a/src/message_window.py b/src/message_window.py
index 2a500076a..d71dd8563 100644
--- a/src/message_window.py
+++ b/src/message_window.py
@@ -267,14 +267,20 @@ class MessageWindow:
num_unread = ctl.nb_unread
# Set tab image (always 16x16); unread messages show the 'message' image
img_16 = gajim.interface.roster.get_appropriate_state_images(contact.jid)
- if num_unread and gajim.config.get('show_unread_tab_icon'):
- tab_img = img_16['message']
- else:
- tab_img = img_16[contact.show]
- if tab_img.get_storage_type() == gtk.IMAGE_ANIMATION:
- status_img.set_from_animation(tab_img.get_animation())
- else:
- status_img.set_from_pixbuf(tab_img.get_pixbuf())
+ tab_img = None
+ if ctl.type_id == message_control.TYPE_CHAT:
+ if num_unread and gajim.config.get('show_unread_tab_icon'):
+ tab_img = img_16['message']
+ else:
+ tab_img = img_16[contact.show]
+ elif ctl.type_id == message_control.TYPE_GC:
+ # FIXME: muc_active muc_inactive
+ pass
+ if tab_img:
+ if tab_img.get_storage_type() == gtk.IMAGE_ANIMATION:
+ status_img.set_from_animation(tab_img.get_animation())
+ else:
+ status_img.set_from_pixbuf(tab_img.get_pixbuf())
def repaint_themed_widgets(self):
'''Repaint controls in the window with theme color'''
diff --git a/src/roster_window.py b/src/roster_window.py
index f67f64f91..b562d0805 100644
--- a/src/roster_window.py
+++ b/src/roster_window.py
@@ -46,6 +46,7 @@ from common import i18n
from message_window import MessageWindowMgr
from chat_control import ChatControl
from groupchat_control import GroupchatControl
+from groupchat_control import PrivateChatControl
_ = i18n._
APP = i18n.APP
@@ -1697,14 +1698,16 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
mw.set_active_tab(jid)
mw.window.present()
- def new_room(self, jid, nick, account):
+ def new_room(self, room_jid, nick, account):
+ print "new_room"
# FIXME: Not contact. Use jid and nick
# Get target window, create a control, and associate it with the window
+ contact = gajim.contacts.create_contact(jid = room_jid)
mw = gajim.interface.msg_win_mgr.get_window(contact.jid)
if not mw:
mw = gajim.interface.msg_win_mgr.create_window(contact, account,
GroupchatControl.TYPE_ID)
- gc_control = ChatControl(mw, contact, account)
+ gc_control = GroupchatControl(mw, contact, account)
mw.new_tab(gc_control)
def on_message(self, jid, msg, tim, account, encrypted = False,