changeset 47d4a7f5bb49 in /home/hg/repos/gajim

branches: 
details:http://hg.gajim.org/gajim?cmd=changeset;node=47d4a7f5bb49
description: Set sensitivity for toolbar. Fixes #7389

diffstat:

 src/chat_control.py      |  44 ++++++++++++++++++++++++++++++++++++--------
 src/groupchat_control.py |  31 +++++++++++++++++++++++++++++++
 2 файлов изменено, 67 вставок(+), 8 удалений(-)

различия (175 строк):

diff -r cbca89be0388 -r 47d4a7f5bb49 src/chat_control.py
--- a/src/chat_control.py       Sat Jul 27 14:14:50 2013 +0200
+++ b/src/chat_control.py       Sat Jul 27 19:10:08 2013 +0400
@@ -366,6 +366,7 @@
 
         # when/if we do XHTML we will put formatting buttons back
         widget = self.xml.get_object('emoticons_button')
+        widget.set_sensitive(False)
         id_ = widget.connect('clicked', self.on_emoticons_button_clicked)
         self.handlers[id_] = widget
 
@@ -462,6 +463,7 @@
         # Hook up send button
         widget = self.xml.get_object('send_button')
         id_ = widget.connect('clicked', self._on_send_button_clicked)
+        widget.set_sensitive(False)
         self.handlers[id_] = widget
 
         widget = self.xml.get_object('formattings_button')
@@ -625,10 +627,6 @@
         """
         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()
         start_iter = message_buffer.get_start_iter()
         end_iter = message_buffer.get_end_iter()
@@ -1466,7 +1464,6 @@
     def got_connected(self):
         self.msg_textview.set_sensitive(True)
         self.msg_textview.set_editable(True)
-        # FIXME: Set sensitivity for toolbar
         self.update_toolbar()
 
     def got_disconnected(self):
@@ -1475,7 +1472,6 @@
         self.conv_textview.tv.grab_focus()
 
         self.no_autonegotiation = False
-        # FIXME: Set sensitivity for toolbar
         self.update_toolbar()
 
 
@@ -1749,6 +1745,13 @@
         gajim.events.event_removed_unsubscribe(self.on_event_removed)
 
     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
         if self.contact.supports(NS_XHTML_IM) and not self.gpg_is_active:
             self._formattings_button.set_sensitive(True)
@@ -1797,9 +1800,10 @@
             self._video_button.set_tooltip_text(video_tooltip_text[:-1])
 
         # 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.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_tooltip_text(_('Send files'))
         else:
@@ -3245,6 +3249,30 @@
         if contact:
             self.contact = contact
         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):
         """
diff -r cbca89be0388 -r 47d4a7f5bb49 src/groupchat_control.py
--- a/src/groupchat_control.py  Sat Jul 27 14:14:50 2013 +0200
+++ b/src/groupchat_control.py  Sat Jul 27 19:10:08 2013 +0400
@@ -278,6 +278,9 @@
             is_anonymous=self.room_ctrl.is_anonymous)
         return menu
 
+    def got_disconnected(self):
+        ChatControl.got_disconnected(self)
+
 class GroupchatControl(ChatControlBase):
     TYPE_ID = message_control.TYPE_GC
 
@@ -302,6 +305,8 @@
 
         # Keep error dialog instance to be sure to have only once at a time
         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')
         id_ = self.actions_button.connect('clicked',
@@ -309,14 +314,19 @@
         self.handlers[id_] = self.actions_button
 
         widget = self.xml.get_object('change_nick_button')
+        widget.set_sensitive(False)
         id_ = widget.connect('clicked', self._on_change_nick_menuitem_activate)
         self.handlers[id_] = widget
 
         widget = self.xml.get_object('change_subject_button')
+        widget.set_sensitive(False)
         id_ = widget.connect('clicked',
             self._on_change_subject_menuitem_activate)
         self.handlers[id_] = widget
 
+        formattings_button = self.xml.get_object('formattings_button')
+        formattings_button.set_sensitive(False)
+
         widget = self.xml.get_object('bookmark_button')
         for bm in gajim.connections[self.account].bookmarks:
             if bm['jid'] == self.contact.jid:
@@ -1342,7 +1352,28 @@
         if self.parent_win:
             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):
+        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.model.clear()
         nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid)
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to