Fixes bug #270605 (Hide disabled accounts in memo-editor) + Show organizers of assigned tasks correctly.

svn path=/trunk/; revision=34763
This commit is contained in:
Suman Manjunath
2008-01-05 16:42:34 +00:00
parent c81607264e
commit c922073e07
4 changed files with 66 additions and 34 deletions

View File

@ -1,3 +1,17 @@
2008-01-03 Suman Manjunath <msuman@novell.com>
** Fix for bug #270605
* gui/dialogs/event-page.c: (event_page_init),
(event_page_select_organizer), (event_page_construct): Code cleanup
* gui/dialogs/memo-page.c: (memo_page_init), (source_changed_cb),
(memo_page_select_organizer), (memo_page_construct): Skip disabled
accounts.
* gui/dialogs/task-page.c: (task_page_init),
(task_page_fill_widgets), (task_page_select_organizer),
(task_page_construct): Code cleanup, show organizer of assigned tasks,
if it already exists.
2008-01-03 Srinivasa Ragavan <sragavan@novell.com>
* gui/memos-component.c: (create_new_memo): Refix the last patch

View File

@ -83,7 +83,6 @@ struct _EventPagePrivate {
EAccountList *accounts;
GList *address_strings;
EMeetingAttendee *ia;
char *default_address;
char *user_add;
ECalComponent *comp;
@ -256,7 +255,6 @@ event_page_init (EventPage *epage)
priv->accounts = NULL;
priv->address_strings = NULL;
priv->ia = NULL;
priv->default_address = NULL;
priv->invite = NULL;
priv->model = NULL;
@ -3136,6 +3134,7 @@ event_page_select_organizer (EventPage *epage, const char *backend_address)
GList *l;
EAccount *def_account;
gchar *def_address = NULL;
const char *default_address;
gboolean subscribed_cal = FALSE;
ESource *source = NULL;
const char *user_addr = NULL;
@ -3155,25 +3154,27 @@ event_page_select_organizer (EventPage *epage, const char *backend_address)
else
user_addr = (backend_address && *backend_address) ? backend_address : NULL;
priv->default_address = NULL;
default_address = NULL;
if (user_addr)
for (l = priv->address_strings; l != NULL && user_addr; l = l->next)
for (l = priv->address_strings; l != NULL; l = l->next)
if (g_strrstr ((gchar *) l->data, user_addr) != NULL) {
priv->default_address = (gchar *) l->data;
default_address = (const char *) l->data;
break;
}
if (!priv->default_address && def_address)
priv->default_address = def_address;
if (!default_address && def_address)
default_address = def_address;
if (priv->default_address) {
if (default_address) {
if (!priv->comp || !e_cal_component_has_organizer (priv->comp)) {
gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (priv->organizer)->entry), priv->default_address);
gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (priv->organizer)->entry), default_address);
/* FIXME: Use accessor functions to access private members of a GtkCombo widget */
gtk_widget_set_sensitive (GTK_WIDGET (GTK_COMBO (priv->organizer)->button), !subscribed_cal);
}
} else
g_warning ("No potential organizers!");
g_free (def_address);
}
/**
@ -3224,7 +3225,6 @@ event_page_construct (EventPage *epage, EMeetingStore *model, ECal *client)
a = (EAccount *)e_iterator_get(it);
/* skip disabled accounts */
if (!a->enabled)
continue;

View File

@ -98,7 +98,6 @@ struct _MemoPagePrivate {
GtkWidget *source_selector;
GList *address_strings;
char *default_address;
ENameSelector *name_selector;
@ -178,7 +177,6 @@ memo_page_init (MemoPage *mpage)
priv->updating = FALSE;
priv->address_strings = NULL;
priv->default_address = NULL;
}
/* Destroy handler for the memo page */
@ -931,7 +929,7 @@ source_changed_cb (ESourceComboBox *source_combo_box, MemoPage *mpage)
e_cal_get_cal_address(client, &backend_addr, NULL);
if (backend_addr && (COMP_EDITOR_PAGE (mpage)->flags & COMP_EDITOR_PAGE_IS_SHARED))
if (COMP_EDITOR_PAGE (mpage)->flags & COMP_EDITOR_PAGE_IS_SHARED)
memo_page_select_organizer (mpage, backend_addr);
set_subscriber_info_string (mpage, backend_addr);
@ -1114,12 +1112,13 @@ memo_page_select_organizer (MemoPage *mpage, const char *backend_address)
GList *l;
EAccount *def_account;
gchar *def_address = NULL;
const char *default_address;
gboolean subscribed_cal = FALSE;
ESource *source = NULL;
const char *user_addr = NULL;
def_account = itip_addresses_get_default();
if (def_account)
if (def_account && def_account->enabled)
def_address = g_strdup_printf("%s <%s>", def_account->id->name, def_account->id->address);
priv = mpage->priv;
@ -1131,26 +1130,29 @@ memo_page_select_organizer (MemoPage *mpage, const char *backend_address)
if (user_addr)
subscribed_cal = TRUE;
else
user_addr = backend_address;
user_addr = (backend_address && *backend_address) ? backend_address : NULL;
priv->default_address = NULL;
for (l = priv->address_strings; l != NULL; l = l->next)
if (g_strrstr ((gchar *) l->data, user_addr) != NULL) {
priv->default_address = (gchar *) l->data;
break;
}
default_address = NULL;
if (user_addr)
for (l = priv->address_strings; l != NULL; l = l->next)
if (g_strrstr ((gchar *) l->data, user_addr) != NULL) {
default_address = (const char *) l->data;
break;
}
if (!priv->default_address && def_account)
priv->default_address = def_address;
if (!default_address && def_account)
default_address = def_address;
if (priv->default_address) {
if (default_address) {
if (COMP_EDITOR_PAGE (mpage)->flags & COMP_EDITOR_PAGE_NEW_ITEM) {
gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (priv->org_combo)->entry), priv->default_address);
gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (priv->org_combo)->entry), default_address);
/* FIXME: Use accessor functions to access private members of a GtkCombo widget */
gtk_widget_set_sensitive (GTK_WIDGET (GTK_COMBO (priv->org_combo)->button), !subscribed_cal);
}
} else
g_warning ("No potential organizers!");
g_free (def_address);
}
/**
@ -1199,6 +1201,11 @@ memo_page_construct (MemoPage *mpage)
gchar *full = NULL;
a = (EAccount *)e_iterator_get(it);
/* skip disabled accounts */
if (!a->enabled)
continue;
full = g_strdup_printf("%s <%s>", a->id->name, a->id->address);
priv->address_strings = g_list_append(priv->address_strings, full);

View File

@ -70,7 +70,6 @@ struct _TaskPagePrivate {
EAccountList *accounts;
GList *address_strings;
EMeetingAttendee *ia;
char *default_address;
char *user_add;
ECalComponent *comp;
@ -215,7 +214,6 @@ task_page_init (TaskPage *tpage)
priv->accounts = NULL;
priv->address_strings = NULL;
priv->ia = NULL;
priv->default_address = NULL;
priv->invite = NULL;
priv->model = NULL;
@ -699,6 +697,8 @@ task_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
if (organizer.value != NULL) {
const gchar *strip = itip_strip_mailto (organizer.value);
gchar *string;
GList *list = NULL;
if (itip_organizer_is_user (comp, page->client) || itip_sentby_is_user (comp)) {
if (e_cal_get_static_capability (
page->client,
@ -722,7 +722,14 @@ task_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
else
string = g_strdup (strip);
if (!priv->user_org) {
list = g_list_append (list, string);
gtk_combo_set_popdown_strings (GTK_COMBO (priv->organizer), list);
gtk_editable_set_editable (GTK_EDITABLE (GTK_COMBO (priv->organizer)->entry), FALSE);
}
g_free (string);
g_list_free (list);
priv->existing = TRUE;
}
} else {
@ -2070,6 +2077,7 @@ task_page_select_organizer (TaskPage *tpage, const char *backend_address)
GList *l;
EAccount *def_account;
gchar *def_address = NULL;
const char *default_address;
gboolean subscribed_cal = FALSE;
ESource *source = NULL;
const char *user_addr = NULL;
@ -2089,25 +2097,27 @@ task_page_select_organizer (TaskPage *tpage, const char *backend_address)
else
user_addr = (backend_address && *backend_address) ? backend_address : NULL;
priv->default_address = NULL;
default_address = NULL;
if (user_addr)
for (l = priv->address_strings; l != NULL && user_addr; l = l->next)
for (l = priv->address_strings; l != NULL; l = l->next)
if (g_strrstr ((gchar *) l->data, user_addr) != NULL) {
priv->default_address = (gchar *) l->data;
default_address = (const char *) l->data;
break;
}
if (!priv->default_address && def_address)
priv->default_address = def_address;
if (!default_address && def_address)
default_address = def_address;
if (priv->default_address) {
if (default_address) {
if (!priv->comp || !e_cal_component_has_organizer (priv->comp)) {
gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (priv->organizer)->entry), priv->default_address);
gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (priv->organizer)->entry), default_address);
/* FIXME: Use accessor functions to access private members of a GtkCombo widget */
gtk_widget_set_sensitive (GTK_WIDGET (GTK_COMBO (priv->organizer)->button), !subscribed_cal);
}
} else
g_warning ("No potential organizers!");
g_free (def_address);
}
/**
@ -2158,6 +2168,7 @@ task_page_construct (TaskPage *tpage, EMeetingStore *model, ECal *client)
a = (EAccount *)e_iterator_get(it);
/* skip disabled accounts */
if (!a->enabled)
continue;