soylent r100 - trunk/src
- From: treitter svn gnome org
- To: svn-commits-list gnome org
- Subject: soylent r100 - trunk/src
- Date: Sat, 15 Mar 2008 04:10:40 +0000 (GMT)
Author: treitter
Date: Sat Mar 15 04:10:40 2008
New Revision: 100
URL: http://svn.gnome.org/viewvc/soylent?rev=100&view=rev
Log:
Simplify the logic of soylent_browser_person_selected_email_menu_update_cb()
Modified:
trunk/src/soylent-browser-person-view.c
Modified: trunk/src/soylent-browser-person-view.c
==============================================================================
--- trunk/src/soylent-browser-person-view.c (original)
+++ trunk/src/soylent-browser-person-view.c Sat Mar 15 04:10:40 2008
@@ -1428,13 +1428,15 @@
{
gboolean retval = FALSE;
SoylentBrowser *browser = NULL;
- EContact *e_contact = NULL;
- const GList *email_addrs = NULL;
GtkMenu *menu_email = NULL;
- const gchar *email_addr_cur = NULL;
GList *e_contacts = NULL;
- browser = (SoylentBrowser *) user_data;
+ g_return_val_if_fail (user_data != NULL, retval);
+ /* FIXME: uncomment once SoylentBrowser is a GObject:
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (user_data), retval);
+ */
+
+ browser = (SoylentBrowser*) user_data;
menu_email = GTK_MENU (gtk_menu_tool_button_get_menu (btntb_email));
@@ -1446,47 +1448,43 @@
e_contacts = soylent_browser_get_selected_people_e_contact (browser);
if (e_contacts)
{
- /* FIXME: we don't handle multi-person email correctly now, so we just
- * leave the menutoolbutton empty */
if (!g_list_next (e_contacts))
{
+ EContact *e_contact = NULL;
+
e_contact = e_contacts->data;
- if (!e_contact || !E_CONTACT (e_contact))
+ if (e_contact && E_CONTACT (e_contact))
{
- /* FIXME: don't short out here; set retval appropriately */
- return TRUE;
+ const GList *email_addrs = NULL;
+ const gchar *email_addr_cur = NULL;
+
+ for (email_addrs = e_contact_get (e_contact, E_CONTACT_EMAIL);
+ email_addrs && (email_addr_cur = email_addrs->data);
+ email_addrs = g_list_next (email_addrs))
+ {
+ GtkWidget *item = NULL;
+
+ item = gtk_menu_item_new_with_label (email_addr_cur);
+ g_signal_connect
+ (G_OBJECT (item), "activate",
+ G_CALLBACK
+ (soylent_browser_person_action_email_menu_item_cb),
+ NULL);
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu_email), item);
+ gtk_widget_show (GTK_WIDGET (item));
+ gtk_widget_set_sensitive (GTK_WIDGET (btntb_email), TRUE);
+ }
+
}
}
else
{
- /* FIXME: don't short out here; set retval appropriately */
- return TRUE;
+ /* TODO: implement this */
+ g_warning ("Unimplemented feature: multi-person email");
}
}
- else
- {
- /* FIXME: don't short out here; set retval appropriately */
- return TRUE;
- }
-
- email_addrs = e_contact_get (e_contact, E_CONTACT_EMAIL);
- for (; email_addrs && (email_addr_cur = email_addrs->data);
- email_addrs = g_list_next (email_addrs))
- {
- GtkWidget *item = NULL;
-
- item = gtk_menu_item_new_with_label (email_addr_cur);
- g_signal_connect
- (G_OBJECT (item), "activate",
- G_CALLBACK (soylent_browser_person_action_email_menu_item_cb),
- NULL);
-
- gtk_menu_shell_append (GTK_MENU_SHELL (menu_email), item);
- gtk_widget_show (GTK_WIDGET (item));
- gtk_widget_set_sensitive (GTK_WIDGET (btntb_email), TRUE);
- }
- /* FIXME: actually set this above, as appropriate */
retval = TRUE;
return retval;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]