diff options
author | Tom Denham <tom@tomdee.co.uk> | 2013-02-20 11:32:27 +0000 |
---|---|---|
committer | Tom Denham <tom@tomdee.co.uk> | 2013-02-20 11:32:27 +0000 |
commit | 1bdef42e039b7b276d5569cb018256fcd24deda6 (patch) | |
tree | a962210f79402252254ec1a8cb3a37d23a358cb3 /src/net | |
parent | d99133f2c2c75958a8e6f397fed357df210e2fa2 (diff) | |
download | jitsi-1bdef42e039b7b276d5569cb018256fcd24deda6.zip jitsi-1bdef42e039b7b276d5569cb018256fcd24deda6.tar.gz jitsi-1bdef42e039b7b276d5569cb018256fcd24deda6.tar.bz2 |
This changes the metacontact right-click-menu so that if there is only a single contact in a metacontact, the ‘remove contact’ submenu is not shown, and clicking ‘remove contact’ immediately removes the metacontact
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java index 0046a02..eec6fec 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java @@ -82,6 +82,12 @@ public class MetaContactRightButtonMenu = GuiActivator.getResources().getI18NString("service.gui.CALL"); /** + * String for remove contact menu items. + */ + private static final String removeString = GuiActivator + .getResources().getI18NString("service.gui.REMOVE_CONTACT"); + + /** * The menu responsible for moving a contact to another group. */ private final SIPCommMenu moveToMenu @@ -99,9 +105,7 @@ public class MetaContactRightButtonMenu /** * The menu responsible for removing a contact. */ - private final SIPCommMenu removeContactMenu - = new SIPCommMenu(GuiActivator.getResources() - .getI18NString("service.gui.REMOVE_CONTACT")); + private final SIPCommMenu removeContactMenu = new SIPCommMenu(removeString); /** * The menu responsible for calling a contact. @@ -661,7 +665,27 @@ public class MetaContactRightButtonMenu addSeparator(); if (!ConfigurationUtils.isRemoveContactDisabled()) - add(removeContactMenu); + { + if (metaContact.getContactCount() > 1) + { + add(removeContactMenu); + } + else + { + // There is only one contact, so a submenu is unnecessary - + // just add a single menu item. It masquerades as an item to + // delete all contacts as that way we don't have to specify + // the contact's address. + Icon deleteIcon = new ImageIcon( + ImageLoader.getImage(ImageLoader.DELETE_16x16_ICON)); + JMenuItem removeContactItem = createMenuItem( + removeString, + removeContactPrefix + "allContacts", + deleteIcon); + + add(removeContactItem); + } + } add(renameContactItem); @@ -717,7 +741,7 @@ public class MetaContactRightButtonMenu this.sendFileItem.setEnabled(false); if (metaContact.getDefaultContact( - OperationSetBasicTelephony.class) == null && (!hasPhones || + OperationSetBasicTelephony.class) == null && (!hasPhones || CallManager.getTelephonyProviders().size() == 0)) this.callItem.setEnabled(false); |