aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/exchange-operations/exchange-permissions-dialog.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/exchange-operations/exchange-permissions-dialog.c')
-rw-r--r--plugins/exchange-operations/exchange-permissions-dialog.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/plugins/exchange-operations/exchange-permissions-dialog.c b/plugins/exchange-operations/exchange-permissions-dialog.c
index 8571d3630f..e312ff1a7b 100644
--- a/plugins/exchange-operations/exchange-permissions-dialog.c
+++ b/plugins/exchange-operations/exchange-permissions-dialog.c
@@ -66,6 +66,9 @@ struct _ExchangePermissionsDialogPrivate {
/* The Role menu */
GtkComboBox *role_optionmenu;
+
+ /* Custom label is added or not */
+ gboolean custom_added;
GtkWidget *separator, *custom;
E2kPermissionsRole selected_role;
@@ -560,9 +563,19 @@ display_role (ExchangePermissionsDialog *dialog)
-1);
if (role == E2K_PERMISSIONS_ROLE_CUSTOM) {
- /* FIXME: To show Custom */
- role = E2K_PERMISSIONS_ROLE_NUM_ROLES + 1;
+ if (dialog->priv->custom_added == FALSE) {
+ gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->priv->role_optionmenu), _("Custom"));
+ dialog->priv->custom_added = TRUE;
+ }
+ role = E2K_PERMISSIONS_ROLE_NUM_ROLES;
+ }
+ else {
+ if (dialog->priv->custom_added) {
+ gtk_combo_box_remove_text (GTK_COMBO_BOX (dialog->priv->role_optionmenu), E2K_PERMISSIONS_ROLE_NUM_ROLES);
+ dialog->priv->custom_added = FALSE;
+ }
}
+
gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->role_optionmenu), role);
}
@@ -723,6 +736,8 @@ get_widgets (ExchangePermissionsDialog *dialog, GladeXML *xml)
g_signal_connect (dialog->priv->role_optionmenu, "changed",
G_CALLBACK (role_changed), dialog);
+ dialog->priv->custom_added = FALSE;
+
#define GET_TOGGLE(name, value, callback) \
GET_WIDGET (name, GTK_TOGGLE_BUTTON); \
g_object_set_data (G_OBJECT (dialog->priv->name), \