aboutsummaryrefslogtreecommitdiffstats
path: root/src/net
diff options
context:
space:
mode:
authorTom Denham <tom@tomdee.co.uk>2013-02-20 11:32:27 +0000
committerTom Denham <tom@tomdee.co.uk>2013-02-20 11:32:27 +0000
commit1bdef42e039b7b276d5569cb018256fcd24deda6 (patch)
treea962210f79402252254ec1a8cb3a37d23a358cb3 /src/net
parentd99133f2c2c75958a8e6f397fed357df210e2fa2 (diff)
downloadjitsi-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.java34
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);