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:
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user