Show
Ignore:
Timestamp:
05/10/08 13:39:25 (7 months ago)
Author:
js
Message:

* Add button for new chat window GUI.
* Buttons get disabled as needed now [we still need something to update

this while the window is open (it might change, for example, the
contact was added)].

* Remove the new accelerators in destroy_menu().
* Move some OTR stuff.
* Don't hide OTR from the user if not available, but set unsensitive.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/chat_control.py

    r9602 r9603  
    10341034                self.handlers[id] = self.actions_button 
    10351035 
    1036                 widget = self.xml.get_widget('send_file_button') 
    1037                 id = widget.connect('clicked', self._on_send_file_menuitem_activate) 
    1038                 self.handlers[id] = widget 
    1039  
    1040                 widget = self.xml.get_widget('convert_to_gc_button') 
    1041                 id = widget.connect('clicked', self._on_convert_to_gc_menuitem_activate) 
    1042                 self.handlers[id] = widget 
    1043  
    1044                 widget = self.xml.get_widget('contact_information_button') 
    1045                 id = widget.connect('clicked', self._on_contact_information_menuitem_activate) 
    1046                 self.handlers[id] = widget 
     1036                add_to_roster_button = self.xml.get_widget('add_to_roster_button') 
     1037                id = add_to_roster_button.connect('clicked', self._on_add_to_roster_menuitem_activate) 
     1038                self.handlers[id] = add_to_roster_button 
     1039 
     1040                send_file_button = self.xml.get_widget('send_file_button') 
     1041                id = send_file_button.connect('clicked', self._on_send_file_menuitem_activate) 
     1042                self.handlers[id] = send_file_button 
     1043 
     1044                convert_to_gc_button = self.xml.get_widget('convert_to_gc_button') 
     1045                id = convert_to_gc_button.connect('clicked', self._on_convert_to_gc_menuitem_activate) 
     1046                self.handlers[id] = convert_to_gc_button 
     1047 
     1048                contact_information_button = self.xml.get_widget('contact_information_button') 
     1049                id = contact_information_button.connect('clicked', self._on_contact_information_menuitem_activate) 
     1050                self.handlers[id] = contact_information_button 
    10471051 
    10481052                compact_view = gajim.config.get('compact_view') 
     
    10581062                img = self.xml.get_widget('convert_to_gc_button_image') 
    10591063                img.set_from_pixbuf(gtkgui_helpers.load_icon('muc_active').get_pixbuf()) 
     1064 
     1065                # Add to roster button 
     1066                if _('Not in Roster') in contact.groups: 
     1067                        add_to_roster_button.show() 
     1068 
     1069                # If we don't have resource, we can't do file transfer 
     1070                # in transports, contact holds our info we need to disable it too 
     1071                if self.TYPE_ID == message_control.TYPE_PM and self.gc_contact.jid and \ 
     1072                self.gc_contact.resource: 
     1073                        send_file_button.set_sensitive(True) 
     1074                elif contact.resource and contact.jid.find('@') != -1: 
     1075                        send_file_button.set_sensitive(True) 
     1076                else: 
     1077                        send_file_button.set_sensitive(False) 
     1078 
     1079                # check if it's possible to convert to groupchat 
     1080                if gajim.get_transport_name_from_jid(self.contact.jid) or \ 
     1081                gajim.connections[self.account].is_zeroconf: 
     1082                        convert_to_gc_button.set_sensitive(False) 
    10601083                 
    10611084                # keep timeout id and window obj for possible big avatar 
     
    11111134                 
    11121135                self.status_tooltip = gtk.Tooltips() 
     1136 
     1137                if gajim.otr_module: 
     1138                        self.update_otr(True) 
     1139 
    11131140                self.update_ui() 
    11141141                # restore previous conversation 
     
    11771204 
    11781205        def update_ui(self): 
    1179                 if gajim.otr_module: 
    1180                         self.update_otr(True) 
    11811206                # The name banner is drawn here 
    11821207                ChatControlBase.update_ui(self) 
     
    17221747                menu = xml.get_widget('chat_control_popup_menu') 
    17231748 
     1749                add_to_roster_menuitem = xml.get_widget('add_to_roster_menuitem') 
    17241750                history_menuitem = xml.get_widget('history_menuitem') 
    17251751                toggle_gpg_menuitem = xml.get_widget('toggle_gpg_menuitem') 
     
    17301756                start_otr_menuitem = xml.get_widget('start_otr_menuitem') 
    17311757                end_otr_menuitem = xml.get_widget('end_otr_menuitem') 
    1732                 add_to_roster_menuitem = xml.get_widget('add_to_roster_menuitem') 
    17331758                send_file_menuitem = xml.get_widget('send_file_menuitem') 
    17341759                information_menuitem = xml.get_widget('information_menuitem') 
     
    17701795                        toggle_e2e_menuitem.set_sensitive(not self.gpg_is_active) 
    17711796 
     1797                # add_to_roster_menuitem 
     1798                if _('Not in Roster') in contact.groups: 
     1799                        add_to_roster_menuitem.show() 
     1800 
    17721801                # If we don't have resource, we can't do file transfer 
    17731802                # in transports, contact holds our info we need to disable it too 
     
    17841813                gajim.connections[self.account].is_zeroconf: 
    17851814                        convert_to_gc_menuitem.set_sensitive(False) 
    1786  
    1787                 # add_to_roster_menuitem 
    1788                 if _('Not in Roster') in contact.groups: 
    1789                         add_to_roster_menuitem.show() 
    1790                         add_to_roster_menuitem.set_no_show_all(False) 
    1791                 else: 
    1792                         add_to_roster_menuitem.hide() 
    1793                         add_to_roster_menuitem.set_no_show_all(True) 
    17941815 
    17951816                # connect signals 
     
    18171838 
    18181839                if gajim.otr_module: 
    1819                         otr_submenu.show() 
     1840                        otr_submenu.set_sensitive(True) 
    18201841                        id = otr_settings_menuitem.connect('activate', 
    18211842                                self._on_otr_settings_menuitem_activate) 
     
    18421863                                gajim.otr_module.OTRL_MSGSTATE_ENCRYPTED) 
    18431864 
    1844                 menu.connect('selection-done', self.destroy_menu, history_menuitem, 
    1845                         information_menuitem) 
     1865                menu.connect('selection-done', self.destroy_menu, 
     1866                        send_file_menuitem, convert_to_gc_menuitem, 
     1867                        information_menuitem, history_menuitem) 
    18461868                return menu 
    18471869 
    1848         def destroy_menu(self, menu, history_menuitem, information_menuitem): 
     1870        def destroy_menu(self, menu, send_file_menuitem, 
     1871        convert_to_gc_menuitem, information_menuitem, history_menuitem): 
    18491872                # destroy accelerators 
    18501873                ag = gtk.accel_groups_from_object(self.parent_win.window)[0] 
     1874                send_file_menuitem.remove_accelerator(ag, gtk.keysyms.f, gtk.gdk.CONTROL_MASK) 
     1875                convert_to_gc_menuitem.remove_accelerator(ag, gtk.keysyms.g, gtk.gdk.CONTROL_MASK) 
     1876                information_menuitem.remove_accelerator(ag, gtk.keysyms.i, gtk.gdk.CONTROL_MASK) 
    18511877                history_menuitem.remove_accelerator(ag, gtk.keysyms.h, gtk.gdk.CONTROL_MASK) 
    1852                 information_menuitem.remove_accelerator(ag, gtk.keysyms.i, gtk.gdk.CONTROL_MASK) 
    18531878                # destroy menu 
    18541879                menu.destroy()