Set sensitivity for toolbar. Fixes #7389

This commit is contained in:
Denis Fomin 2013-07-27 19:10:08 +04:00
parent 5ce4ec3e57
commit c8996226ca
2 changed files with 67 additions and 8 deletions

View File

@ -366,6 +366,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
# when/if we do XHTML we will put formatting buttons back # when/if we do XHTML we will put formatting buttons back
widget = self.xml.get_object('emoticons_button') widget = self.xml.get_object('emoticons_button')
widget.set_sensitive(False)
id_ = widget.connect('clicked', self.on_emoticons_button_clicked) id_ = widget.connect('clicked', self.on_emoticons_button_clicked)
self.handlers[id_] = widget self.handlers[id_] = widget
@ -462,6 +463,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
# Hook up send button # Hook up send button
widget = self.xml.get_object('send_button') widget = self.xml.get_object('send_button')
id_ = widget.connect('clicked', self._on_send_button_clicked) id_ = widget.connect('clicked', self._on_send_button_clicked)
widget.set_sensitive(False)
self.handlers[id_] = widget self.handlers[id_] = widget
widget = self.xml.get_object('formattings_button') widget = self.xml.get_object('formattings_button')
@ -625,10 +627,6 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
""" """
When send button is pressed: send the current message When send button is pressed: send the current message
""" """
if gajim.connections[self.account].connected < 2: # we are not connected
dialogs.ErrorDialog(_('A connection is not available'),
_('Your message can not be sent until you are connected.'))
return
message_buffer = self.msg_textview.get_buffer() message_buffer = self.msg_textview.get_buffer()
start_iter = message_buffer.get_start_iter() start_iter = message_buffer.get_start_iter()
end_iter = message_buffer.get_end_iter() end_iter = message_buffer.get_end_iter()
@ -1466,7 +1464,6 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
def got_connected(self): def got_connected(self):
self.msg_textview.set_sensitive(True) self.msg_textview.set_sensitive(True)
self.msg_textview.set_editable(True) self.msg_textview.set_editable(True)
# FIXME: Set sensitivity for toolbar
self.update_toolbar() self.update_toolbar()
def got_disconnected(self): def got_disconnected(self):
@ -1475,7 +1472,6 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
self.conv_textview.tv.grab_focus() self.conv_textview.tv.grab_focus()
self.no_autonegotiation = False self.no_autonegotiation = False
# FIXME: Set sensitivity for toolbar
self.update_toolbar() self.update_toolbar()
@ -1749,6 +1745,13 @@ class ChatControl(ChatControlBase):
gajim.events.event_removed_unsubscribe(self.on_event_removed) gajim.events.event_removed_unsubscribe(self.on_event_removed)
def _update_toolbar(self): def _update_toolbar(self):
if (gajim.connections[self.account].connected > 1 and not \
self.TYPE_ID == 'pm') or (self.contact.show != 'offline' and \
self.TYPE_ID == 'pm'):
emoticons_button = self.xml.get_object('emoticons_button')
emoticons_button.set_sensitive(True)
send_button = self.xml.get_object('send_button')
send_button.set_sensitive(True)
# Formatting # Formatting
if self.contact.supports(NS_XHTML_IM) and not self.gpg_is_active: if self.contact.supports(NS_XHTML_IM) and not self.gpg_is_active:
self._formattings_button.set_sensitive(True) self._formattings_button.set_sensitive(True)
@ -1797,9 +1800,10 @@ class ChatControl(ChatControlBase):
self._video_button.set_tooltip_text(video_tooltip_text[:-1]) self._video_button.set_tooltip_text(video_tooltip_text[:-1])
# Send file # Send file
if (self.contact.supports(NS_FILE) or \ if ((self.contact.supports(NS_FILE) or \
self.contact.supports(NS_JINGLE_FILE_TRANSFER)) or \ self.contact.supports(NS_JINGLE_FILE_TRANSFER)) or \
self.type_id == 'chat' or self.gc_contact.resource: self.type_id == 'chat' or self.gc_contact.resource) and \
self.contact.show != 'offline':
self._send_file_button.set_sensitive(True) self._send_file_button.set_sensitive(True)
self._send_file_button.set_tooltip_text(_('Send files')) self._send_file_button.set_tooltip_text(_('Send files'))
else: else:
@ -3245,6 +3249,30 @@ class ChatControl(ChatControlBase):
if contact: if contact:
self.contact = contact self.contact = contact
self.draw_banner() self.draw_banner()
emoticons_button = self.xml.get_object('emoticons_button')
emoticons_button.set_sensitive(True)
send_button = self.xml.get_object('send_button')
send_button.set_sensitive(True)
def got_disconnected(self):
# Emoticons button
emoticons_button = self.xml.get_object('emoticons_button')
emoticons_button.set_sensitive(False)
send_button = self.xml.get_object('send_button')
send_button.set_sensitive(False)
# Add to roster
self._add_to_roster_button.hide()
# Audio button
self._audio_button.set_sensitive(False)
# Video button
self._video_button.set_sensitive(False)
# Send file button
self._send_file_button.set_tooltip_text('')
self._send_file_button.set_sensitive(False)
# Convert to GC button
self._convert_to_gc_button.set_sensitive(False)
ChatControlBase.got_disconnected(self)
def update_status_display(self, name, uf_show, status): def update_status_display(self, name, uf_show, status):
""" """

View File

@ -278,6 +278,9 @@ class PrivateChatControl(ChatControl):
is_anonymous=self.room_ctrl.is_anonymous) is_anonymous=self.room_ctrl.is_anonymous)
return menu return menu
def got_disconnected(self):
ChatControl.got_disconnected(self)
class GroupchatControl(ChatControlBase): class GroupchatControl(ChatControlBase):
TYPE_ID = message_control.TYPE_GC TYPE_ID = message_control.TYPE_GC
@ -302,6 +305,8 @@ class GroupchatControl(ChatControlBase):
# Keep error dialog instance to be sure to have only once at a time # Keep error dialog instance to be sure to have only once at a time
self.error_dialog = None self.error_dialog = None
send_button = self.xml.get_object('send_button')
send_button.set_sensitive(False)
self.actions_button = self.xml.get_object('muc_window_actions_button') self.actions_button = self.xml.get_object('muc_window_actions_button')
id_ = self.actions_button.connect('clicked', id_ = self.actions_button.connect('clicked',
@ -309,14 +314,19 @@ class GroupchatControl(ChatControlBase):
self.handlers[id_] = self.actions_button self.handlers[id_] = self.actions_button
widget = self.xml.get_object('change_nick_button') widget = self.xml.get_object('change_nick_button')
widget.set_sensitive(False)
id_ = widget.connect('clicked', self._on_change_nick_menuitem_activate) id_ = widget.connect('clicked', self._on_change_nick_menuitem_activate)
self.handlers[id_] = widget self.handlers[id_] = widget
widget = self.xml.get_object('change_subject_button') widget = self.xml.get_object('change_subject_button')
widget.set_sensitive(False)
id_ = widget.connect('clicked', id_ = widget.connect('clicked',
self._on_change_subject_menuitem_activate) self._on_change_subject_menuitem_activate)
self.handlers[id_] = widget self.handlers[id_] = widget
formattings_button = self.xml.get_object('formattings_button')
formattings_button.set_sensitive(False)
widget = self.xml.get_object('bookmark_button') widget = self.xml.get_object('bookmark_button')
for bm in gajim.connections[self.account].bookmarks: for bm in gajim.connections[self.account].bookmarks:
if bm['jid'] == self.contact.jid: if bm['jid'] == self.contact.jid:
@ -1342,7 +1352,28 @@ class GroupchatControl(ChatControlBase):
if self.parent_win: if self.parent_win:
self.parent_win.redraw_tab(self) self.parent_win.redraw_tab(self)
send_button = self.xml.get_object('send_button')
send_button.set_sensitive(True)
emoticons_button = self.xml.get_object('emoticons_button')
emoticons_button.set_sensitive(True)
formattings_button = self.xml.get_object('formattings_button')
formattings_button.set_sensitive(True)
change_nick_button = self.xml.get_object('change_nick_button')
change_nick_button.set_sensitive(True)
change_subject_button = self.xml.get_object('change_subject_button')
change_subject_button.set_sensitive(True)
def got_disconnected(self): def got_disconnected(self):
send_button = self.xml.get_object('send_button')
send_button.set_sensitive(False)
emoticons_button = self.xml.get_object('emoticons_button')
emoticons_button.set_sensitive(False)
formattings_button = self.xml.get_object('formattings_button')
formattings_button.set_sensitive(False)
change_nick_button = self.xml.get_object('change_nick_button')
change_nick_button.set_sensitive(False)
change_subject_button = self.xml.get_object('change_subject_button')
change_subject_button.set_sensitive(False)
self.list_treeview.set_model(None) self.list_treeview.set_model(None)
self.model.clear() self.model.clear()
nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid) nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid)