Changeset 9795

Show
Ignore:
Timestamp:
06/13/08 04:18:16 (7 months ago)
Author:
bct
Message:

don't make submenus in the Actions menu if we've only got a zeroconf account and a normal account

Location:
trunk/src
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/common/gajim.py

    r9771 r9795  
    286286        return not account_is_connected(account) 
    287287 
     288def zeroconf_is_connected(): 
     289        return account_is_connected(ZEROCONF_ACC_NAME) and \ 
     290                config.get_per('accounts', ZEROCONF_ACC_NAME, 'is_zeroconf') 
     291 
    288292def get_number_of_securely_connected_accounts(): 
    289293        '''returns the number of the accounts that are SSL/TLS connected''' 
  • trunk/src/roster_window.py

    r9787 r9795  
    41974197                connected_accounts_with_private_storage = 0 
    41984198 
     4199                accounts_list = gajim.contacts.get_accounts() 
     4200                accounts_list.sort() 
     4201 
     4202                # items that get shown whether an account is zeroconf or not 
    41994203                if connected_accounts > 1: # 2 or more accounts? make submenus 
    4200                         add_sub_menu = gtk.Menu() 
    4201                         disco_sub_menu = gtk.Menu() 
    42024204                        new_chat_sub_menu = gtk.Menu() 
    4203                         single_message_sub_menu = gtk.Menu() 
    4204  
    4205                         accounts_list = gajim.contacts.get_accounts() 
    4206                         accounts_list.sort() 
     4205 
    42074206                        for account in accounts_list: 
    42084207                                if gajim.connections[account].connected <= 1: 
     
    42174216                                        self.on_new_chat_menuitem_activate, account) 
    42184217 
    4219                                 if gajim.config.get_per('accounts', account, 'is_zeroconf'): 
    4220                                         continue 
    4221  
    4222                                 # single message 
    4223                                 single_message_item = gtk.MenuItem(_('using account %s') % account, 
    4224                                         False) 
    4225                                 single_message_sub_menu.append(single_message_item) 
    4226                                 single_message_item.connect('activate', 
    4227                                         self.on_send_single_message_menuitem_activate, account) 
    4228  
    4229                                 # join gc 
    4230                                 if gajim.connections[account].private_storage_supported: 
    4231                                         connected_accounts_with_private_storage += 1 
    4232                                 gc_item = gtk.MenuItem(_('using account %s') % account, False) 
    4233                                 gc_sub_menu.append(gc_item) 
    4234                                 gc_menuitem_menu = gtk.Menu() 
    4235                                 self.add_bookmarks_list(gc_menuitem_menu, account) 
    4236                                 gc_item.set_submenu(gc_menuitem_menu) 
    4237  
    4238                                 # add 
    4239                                 add_item = gtk.MenuItem(_('to %s account') % account, False) 
    4240                                 add_sub_menu.append(add_item) 
    4241                                 add_item.connect('activate', self.on_add_new_contact, account) 
    4242  
    4243                                 # disco 
    4244                                 disco_item = gtk.MenuItem(_('using %s account') % account, False) 
    4245                                 disco_sub_menu.append(disco_item) 
    4246                                 disco_item.connect('activate', 
    4247                                         self.on_service_disco_menuitem_activate, account) 
    4248  
    4249                         add_new_contact_menuitem.set_submenu(add_sub_menu) 
    4250                         add_sub_menu.show_all() 
    4251                         service_disco_menuitem.set_submenu(disco_sub_menu) 
    4252                         disco_sub_menu.show_all() 
    42534218                        new_chat_menuitem.set_submenu(new_chat_sub_menu) 
    42544219                        new_chat_sub_menu.show_all() 
    4255                         single_message_menuitem.set_submenu(single_message_sub_menu) 
    4256                         single_message_sub_menu.show_all() 
    4257                         gc_sub_menu.show_all() 
    42584220 
    42594221                elif connected_accounts == 1: # user has only one account 
    42604222                        for account in gajim.connections: 
    42614223                                if gajim.account_is_connected(account): # THE connected account 
     4224                                        # new chat 
     4225                                        if not self.new_chat_menuitem_handler_id: 
     4226                                                self.new_chat_menuitem_handler_id = new_chat_menuitem.\ 
     4227                                                        connect('activate', self.on_new_chat_menuitem_activate, 
     4228                                                        account) 
     4229 
     4230                                        break 
     4231 
     4232                # menu items that don't apply to zeroconf connections 
     4233                if connected_accounts == 1 or (connected_accounts == 2 and \ 
     4234                gajim.zeroconf_is_connected()): 
     4235                        # only one 'real' (non-zeroconf) account is connected, don't need submenus 
     4236 
     4237                        for account in accounts_list: 
     4238                                if gajim.account_is_connected(account) and \ 
     4239                                not gajim.config.get_per('accounts', account, 'is_zeroconf'): 
    42624240                                        # gc 
    42634241                                        if gajim.connections[account].private_storage_supported: 
     
    42754253                                                        connect('activate', 
    42764254                                                        self.on_service_disco_menuitem_activate, account) 
    4277                                         # new chat 
    4278                                         if not self.new_chat_menuitem_handler_id: 
    4279                                                 self.new_chat_menuitem_handler_id = new_chat_menuitem.\ 
    4280                                                         connect('activate', self.on_new_chat_menuitem_activate, 
    4281                                                         account) 
    42824255 
    42834256                                        # single message 
     
    42954268 
    42964269                                        break # No other account connected 
     4270                else: 
     4271                        # 2 or more 'real' accounts are connected, make submenus 
     4272                        single_message_sub_menu = gtk.Menu() 
     4273                        add_sub_menu = gtk.Menu() 
     4274                        disco_sub_menu = gtk.Menu() 
     4275 
     4276                        for account in accounts_list: 
     4277                                if gajim.connections[account].connected <= 1 or \ 
     4278                                gajim.config.get_per('accounts', account, 'is_zeroconf'): 
     4279                                        # skip account if it's offline or connecting or is zeroconf 
     4280                                        continue 
     4281 
     4282                                # single message 
     4283                                single_message_item = gtk.MenuItem(_('using account %s') % account, 
     4284                                        False) 
     4285                                single_message_sub_menu.append(single_message_item) 
     4286                                single_message_item.connect('activate', 
     4287                                        self.on_send_single_message_menuitem_activate, account) 
     4288 
     4289                                # join gc 
     4290                                if gajim.connections[account].private_storage_supported: 
     4291                                        connected_accounts_with_private_storage += 1 
     4292                                gc_item = gtk.MenuItem(_('using account %s') % account, False) 
     4293                                gc_sub_menu.append(gc_item) 
     4294                                gc_menuitem_menu = gtk.Menu() 
     4295                                self.add_bookmarks_list(gc_menuitem_menu, account) 
     4296                                gc_item.set_submenu(gc_menuitem_menu) 
     4297 
     4298                                # add 
     4299                                add_item = gtk.MenuItem(_('to %s account') % account, False) 
     4300                                add_sub_menu.append(add_item) 
     4301                                add_item.connect('activate', self.on_add_new_contact, account) 
     4302 
     4303                                # disco 
     4304                                disco_item = gtk.MenuItem(_('using %s account') % account, False) 
     4305                                disco_sub_menu.append(disco_item) 
     4306                                disco_item.connect('activate', 
     4307                                        self.on_service_disco_menuitem_activate, account) 
     4308 
     4309                        single_message_menuitem.set_submenu(single_message_sub_menu) 
     4310                        single_message_sub_menu.show_all() 
     4311                        gc_sub_menu.show_all() 
     4312                        add_new_contact_menuitem.set_submenu(add_sub_menu) 
     4313                        add_sub_menu.show_all() 
     4314                        service_disco_menuitem.set_submenu(disco_sub_menu) 
     4315                        disco_sub_menu.show_all() 
    42974316 
    42984317                if connected_accounts == 0: