soylent r103 - trunk/src
- From: treitter svn gnome org
- To: svn-commits-list gnome org
- Subject: soylent r103 - trunk/src
- Date: Sat, 15 Mar 2008 21:28:34 +0000 (GMT)
Author: treitter
Date: Sat Mar 15 21:28:34 2008
New Revision: 103
URL: http://svn.gnome.org/viewvc/soylent?rev=103&view=rev
Log:
continued clean-ups in soylent-browser-person-view.c
Modified:
trunk/src/soylent-browser-person-view.c
trunk/src/soylent-browser-person-view.h
trunk/src/soylent-browser.c
trunk/src/soylent-utils.c
trunk/src/soylent-utils.h
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 21:28:34 2008
@@ -58,24 +58,23 @@
static gboolean soylent_browser_person_selected_email_menu_update_cb
(GtkMenuToolButton *btntb_email,
gpointer user_data);
-static gboolean person_apply_edits_from_widgets_switch (gpointer key,
- gpointer value,
- gpointer user_data);
-static gboolean person_set_field_from_widget (gpointer e_contact_field,
- gpointer widget_name,
- gpointer user_data);
-static gboolean person_set_mail_fields_from_widgets (gpointer e_contact_field,
- gpointer widget_name,
- gpointer user_data);
-static gboolean person_set_im_field_e_vcard (SoylentBrowser* browser,
- EContact* e_contact,
- const gchar* widget_name,
- const gchar* value);
-static void text_buffer_set_text_block_handler (GtkTextBuffer *buf,
- const gchar *text,
- gpointer handler);
-static void entry_set_text_block_handler (GtkEntry *entry, const gchar *text,
- gpointer handler);
+static gboolean soylent_browser_person_apply_edits_from_widgets_switch
+ (gpointer key,
+ gpointer value,
+ gpointer user_data);
+static gboolean soylent_browser_person_set_field_from_widget
+ (gpointer e_contact_field,
+ gpointer widget_name,
+ gpointer user_data);
+static gboolean soylent_browser_person_set_mail_fields_from_widgets
+ (gpointer e_contact_field,
+ gpointer widget_name,
+ gpointer user_data);
+static gboolean soylent_browser_person_set_im_field_e_vcard
+ (SoylentBrowser* browser,
+ EContact* e_contact,
+ const gchar* widget_name,
+ const gchar* value);
static gchar* soylent_browser_person_detail_add_get_cbox_val
(SoylentBrowser *browser,
const gchar *cbox_name);
@@ -84,11 +83,13 @@
/* Adding individual details to the VCard/EContact */
-static gboolean detail_add_person_add_attr (SoylentBrowser *browser,
- const gchar *attr_name,
- const gchar *param_val);
-static gboolean detail_add_person_add_mail_attrs (SoylentBrowser *browser,
- const gchar *param_val);
+static gboolean soylent_browser_person_detail_add_person_add_attr
+ (SoylentBrowser *browser,
+ const gchar *attr_name,
+ const gchar *param_val);
+static gboolean soylent_browser_person_detail_add_person_add_mail_attrs
+ (SoylentBrowser *browser,
+ const gchar *param_val);
/* Setup/update sections of the person view UI with latest data from e-d-s */
static void soylent_browser_person_view_update (SoylentBrowser *browser,
@@ -519,7 +520,8 @@
*
* Return TRUE for success, FALSE for any failure. */
gboolean
-entry_changed_e_contact (GtkEditable *editable, gpointer user_data)
+soylent_browser_person_entry_changed_e_contact_cb (GtkEditable *editable,
+ gpointer user_data)
{
gboolean retval = FALSE;
cb_entry_changed_e_contact *cb_data = NULL;
@@ -760,11 +762,16 @@
{
if (g_str_equal (attr_name, EVC_ADR))
{
- retval = detail_add_person_add_mail_attrs (browser, param_val);
+ retval = soylent_browser_person_detail_add_person_add_mail_attrs
+ (browser,
+ param_val);
}
else
{
- retval = detail_add_person_add_attr (browser, attr_name, param_val);
+ retval = soylent_browser_person_detail_add_person_add_attr
+ (browser,
+ attr_name,
+ param_val);
}
}
@@ -914,7 +921,8 @@
*
* Return TRUE for success, FALSE for any failure. */
gboolean
-btn_detail_add_update_simple (GtkEntry *entry_simple, gpointer user_data)
+soylent_browser_person_btn_detail_add_update_simple (GtkEntry *entry_simple,
+ gpointer user_data)
{
gboolean retval = FALSE;
SoylentBrowser *browser = NULL;
@@ -949,7 +957,8 @@
*
* Return TRUE for success, FALSE for any failure. */
gboolean
-btn_detail_add_update_mail (GtkWidget *widget_mail, gpointer user_data)
+soylent_browser_person_btn_detail_add_update_mail (GtkWidget *widget_mail,
+ gpointer user_data)
{
const gchar *entry_names[] = {"entry_person_mail_add_po",
"entry_person_mail_add_locality",
@@ -1061,9 +1070,9 @@
EContact *e_contact = NULL;
g_hash_table_foreach_remove
- (edits_pending,
- (GHRFunc) person_apply_edits_from_widgets_switch,
- browser);
+ (edits_pending,
+ (GHRFunc) soylent_browser_person_apply_edits_from_widgets_switch,
+ browser);
e_contact = soylent_browser_get_selected_person_e_contact (browser);
if (e_contact)
@@ -1637,8 +1646,9 @@
*
* Return TRUE for success, FALSE for any failure. */
static gboolean
-detail_add_person_add_attr (SoylentBrowser *browser, const gchar *attr_name,
- const gchar *param_val)
+soylent_browser_person_detail_add_person_add_attr (SoylentBrowser *browser,
+ const gchar *attr_name,
+ const gchar *param_val)
{
gboolean retval = FALSE;
EVCard *e_vcard = NULL;
@@ -1697,8 +1707,9 @@
*
* Return TRUE for success, FALSE for any failure. */
static gboolean
-detail_add_person_add_mail_attrs (SoylentBrowser *browser,
- const gchar *param_val)
+soylent_browser_person_detail_add_person_add_mail_attrs
+ (SoylentBrowser *browser,
+ const gchar *param_val)
{
gboolean retval = FALSE;
GladeXML *wtree = NULL;
@@ -1814,8 +1825,9 @@
*
* Return TRUE for success, FALSE for any failure. */
static gboolean
-person_apply_edits_from_widgets_switch (gpointer key, gpointer value,
- gpointer user_data)
+soylent_browser_person_apply_edits_from_widgets_switch (gpointer key,
+ gpointer value,
+ gpointer user_data)
{
gboolean ret_value = FALSE;
SoylentBrowser *browser = NULL;
@@ -1826,17 +1838,22 @@
if (g_ascii_strncasecmp (key, "mail", 4) == 0)
{
- ret_value = person_set_mail_fields_from_widgets (key, value, user_data);
+ ret_value = soylent_browser_person_set_mail_fields_from_widgets (key, value,
+ user_data);
}
- ret_value = person_set_field_from_widget (key, value, user_data);
+ ret_value = soylent_browser_person_set_field_from_widget (key, value,
+ user_data);
return ret_value;
}
-/* Save a single-valued detail edit for the person being edited */
+/* Save a single-valued detail edit for the person being edited
+ *
+ * Return TRUE for success, FALSE for any failure. */
static gboolean
-person_set_field_from_widget (gpointer key, gpointer value, gpointer user_data)
+soylent_browser_person_set_field_from_widget (gpointer key, gpointer value,
+ gpointer user_data)
{
SoylentBrowser *browser = NULL;
GladeXML *wtree = NULL;
@@ -1893,12 +1910,12 @@
/*
* TODO: split this detection logic out into
- * person_apply_edits_from_widgets_switch()
+ * soylent_browser_person_apply_edits_from_widgets_switch()
*/
if (e_contact_field == CB_DATA_FIELD_IM)
{
- person_set_im_field_e_vcard (browser, e_contact, widget_name,
- contents_new);
+ soylent_browser_person_set_im_field_e_vcard (browser, e_contact,
+ widget_name, contents_new);
}
else
{
@@ -1973,8 +1990,9 @@
/* Propagate existing mailing address changes to the person-being-edited's
* EContact */
static gboolean
-person_set_mail_fields_from_widgets (gpointer key, gpointer value,
- gpointer user_data)
+soylent_browser_person_set_mail_fields_from_widgets (gpointer key,
+ gpointer value,
+ gpointer user_data)
{
const gchar *widget_name = NULL;
EContactField e_contact_field = 0;
@@ -2073,8 +2091,10 @@
/* Set a person's IM field in their EContact on the contents of a corresponding
* widget(s) */
static gboolean
-person_set_im_field_e_vcard (SoylentBrowser* browser, EContact* e_contact,
- const gchar* widget_name, const gchar* value)
+soylent_browser_person_set_im_field_e_vcard (SoylentBrowser* browser,
+ EContact* e_contact,
+ const gchar* widget_name,
+ const gchar* value)
{
GladeXML *wtree = NULL;
GtkLabel *label = NULL;
@@ -2131,36 +2151,6 @@
return TRUE;
}
-/* Set the contents of a GtkTextBuffer without triggering its handler
- * (eg, when pre-filling them with e-d-s fields for the given person) */
-static void
-text_buffer_set_text_block_handler (GtkTextBuffer *buf, const gchar *text,
- gpointer handler)
-{
- g_signal_handlers_block_matched (buf, G_SIGNAL_MATCH_FUNC, 0, (GQuark) 0,
- NULL, handler, NULL);
-
- gtk_text_buffer_set_text (buf, text, -1);
-
- g_signal_handlers_unblock_matched (buf, G_SIGNAL_MATCH_FUNC, 0, (GQuark) 0,
- NULL, handler, NULL);
-}
-
-/* Set the contents of a GtkEntry without triggering its handler
- * (eg, when pre-filling them with e-d-s fields for the given person) */
-static void
-entry_set_text_block_handler (GtkEntry *entry, const gchar *text,
- gpointer handler)
-{
- g_signal_handlers_block_matched (entry, G_SIGNAL_MATCH_FUNC, 0, (GQuark) 0,
- NULL, handler, NULL);
-
- gtk_entry_set_text (entry, text);
-
- g_signal_handlers_unblock_matched (entry, G_SIGNAL_MATCH_FUNC, 0, (GQuark) 0,
- NULL, handler, NULL);
-}
-
/* Update the entire Person View UI section */
static void
soylent_browser_person_view_update (SoylentBrowser *browser,
@@ -2271,8 +2261,9 @@
if (email_str)
{
- entry_set_text_block_handler (entry_email, email_str,
- entry_changed_e_contact);
+ entry_set_text_block_handler
+ (entry_email, email_str,
+ soylent_browser_person_entry_changed_e_contact_cb);
gtk_widget_show (GTK_WIDGET (hbox_email));
num_entries_set_email++;
}
@@ -2419,8 +2410,9 @@
{
gtk_label_set_text (label_im,
e_vcard_attribute_get_name (attr) + 2);
- entry_set_text_block_handler (entry_im, im_name,
- entry_changed_e_contact);
+ entry_set_text_block_handler
+ (entry_im, im_name,
+ soylent_browser_person_entry_changed_e_contact_cb);
gtk_widget_show (GTK_WIDGET (hbox_im));
}
@@ -2596,18 +2588,24 @@
}
/* FIXME: factor out the commonality */
- text_buffer_set_text_block_handler (tb_street, addr->street,
- entry_changed_e_contact);
- entry_set_text_block_handler (entry_po, addr->po,
- entry_changed_e_contact);
- entry_set_text_block_handler (entry_code, addr->code,
- entry_changed_e_contact);
- entry_set_text_block_handler (entry_locality, addr->locality,
- entry_changed_e_contact);
- entry_set_text_block_handler (entry_region, addr->region,
- entry_changed_e_contact);
- entry_set_text_block_handler (entry_country, addr->country,
- entry_changed_e_contact);
+ text_buffer_set_text_block_handler
+ (tb_street, addr->street,
+ soylent_browser_person_entry_changed_e_contact_cb);
+ entry_set_text_block_handler
+ (entry_po, addr->po,
+ soylent_browser_person_entry_changed_e_contact_cb);
+ entry_set_text_block_handler
+ (entry_code, addr->code,
+ soylent_browser_person_entry_changed_e_contact_cb);
+ entry_set_text_block_handler
+ (entry_locality, addr->locality,
+ soylent_browser_person_entry_changed_e_contact_cb);
+ entry_set_text_block_handler
+ (entry_region, addr->region,
+ soylent_browser_person_entry_changed_e_contact_cb);
+ entry_set_text_block_handler
+ (entry_country, addr->country,
+ soylent_browser_person_entry_changed_e_contact_cb);
}
if (frames_visible > 0)
@@ -2638,7 +2636,9 @@
/* TODO: use the <b></b> markup */
name = display_name_from_e_contact (e_contact);
- entry_set_text_block_handler (entry_name, name, entry_changed_e_contact);
+ entry_set_text_block_handler
+ (entry_name, name,
+ soylent_browser_person_entry_changed_e_contact_cb);
/*
soylent_debug ("\n%s\n",
@@ -2692,8 +2692,9 @@
phone_str = e_contact_get_const (e_contact, e_contact_fields[context]);
if (phone_str)
{
- entry_set_text_block_handler (entry_phone, phone_str,
- entry_changed_e_contact);
+ entry_set_text_block_handler
+ (entry_phone, phone_str,
+ soylent_browser_person_entry_changed_e_contact_cb);
num_entries_set_phone++;
gtk_widget_show (GTK_WIDGET (hbox_phone));
@@ -2760,8 +2761,9 @@
* string instead of NULL */
if (web_name && *web_name != '\0')
{
- entry_set_text_block_handler (entry_web, web_name,
- entry_changed_e_contact);
+ entry_set_text_block_handler
+ (entry_web, web_name,
+ soylent_browser_person_entry_changed_e_contact_cb);
num_entries_set++;
Modified: trunk/src/soylent-browser-person-view.h
==============================================================================
--- trunk/src/soylent-browser-person-view.h (original)
+++ trunk/src/soylent-browser-person-view.h Sat Mar 15 21:28:34 2008
@@ -64,7 +64,9 @@
(SoylentBrowser *browser,
SoylentPerson *person);
-gboolean entry_changed_e_contact (GtkEditable *editable, gpointer user_data);
+gboolean soylent_browser_person_entry_changed_e_contact_cb
+ (GtkEditable *editable,
+ gpointer user_data);
void soylent_browser_person_error_chat_new_cb (MissionControl *mc,
GError *error,
gpointer user_data);
@@ -74,10 +76,12 @@
gpointer user_data);
/* Setup/update sections of the person view UI with latest data from e-d-s */
-gboolean btn_detail_add_update_simple (GtkEntry *entry_simple,
- gpointer user_data);
-gboolean btn_detail_add_update_mail (GtkWidget *widget_mail,
- gpointer user_data);
+gboolean soylent_browser_person_btn_detail_add_update_simple
+ (GtkEntry *entry_simple,
+ gpointer user_data);
+gboolean soylent_browser_person_btn_detail_add_update_mail
+ (GtkWidget *widget_mail,
+ gpointer user_data);
gboolean soylent_browser_person_detail_add_cbox_setup
(SoylentBrowser *browser,
gboolean skip_domain_cbox);
Modified: trunk/src/soylent-browser.c
==============================================================================
--- trunk/src/soylent-browser.c (original)
+++ trunk/src/soylent-browser.c Sat Mar 15 21:28:34 2008
@@ -1626,97 +1626,132 @@
/* general */
{"cbox_detail_domain", "changed",
soylent_browser_person_detail_add_cbox_update, CB_DATA_SIMPLE, browser},
- {"entry_detail_add", "changed", btn_detail_add_update_simple,
+ {"entry_detail_add", "changed",
+ soylent_browser_person_btn_detail_add_update_simple,
CB_DATA_SIMPLE, browser},
{"btn_detail_add", "clicked", soylent_browser_person_detail_add_commit,
CB_DATA_SIMPLE, browser},
/* postal mail */
- {"tv_person_mail_add_street", "changed", btn_detail_add_update_mail,
- CB_DATA_SIMPLE, browser},
- {"entry_person_mail_add_po", "changed", btn_detail_add_update_mail,
- CB_DATA_SIMPLE, browser},
- {"entry_person_mail_add_locality", "changed", btn_detail_add_update_mail,
- CB_DATA_SIMPLE, browser},
- {"entry_person_mail_add_code", "changed", btn_detail_add_update_mail,
- CB_DATA_SIMPLE, browser},
- {"entry_person_mail_add_region", "changed", btn_detail_add_update_mail,
- CB_DATA_SIMPLE, browser},
- {"entry_person_mail_add_country", "changed", btn_detail_add_update_mail,
- CB_DATA_SIMPLE, browser},
+ {"tv_person_mail_add_street", "changed",
+ soylent_browser_person_btn_detail_add_update_mail, CB_DATA_SIMPLE,
+ browser},
+ {"entry_person_mail_add_po", "changed",
+ soylent_browser_person_btn_detail_add_update_mail, CB_DATA_SIMPLE,
+ browser},
+ {"entry_person_mail_add_locality", "changed",
+ soylent_browser_person_btn_detail_add_update_mail, CB_DATA_SIMPLE,
+ browser},
+ {"entry_person_mail_add_code", "changed",
+ soylent_browser_person_btn_detail_add_update_mail, CB_DATA_SIMPLE,
+ browser},
+ {"entry_person_mail_add_region", "changed",
+ soylent_browser_person_btn_detail_add_update_mail, CB_DATA_SIMPLE,
+ browser},
+ {"entry_person_mail_add_country", "changed",
+ soylent_browser_person_btn_detail_add_update_mail, CB_DATA_SIMPLE,
+ browser},
/*
* Editing existing Person Details
*/
/* Name */
- {"entry_person_name", "changed", entry_changed_e_contact,
+ {"entry_person_name", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_FULL_NAME},
/* Avatar */
/* TODO: set up avatar editing */
/* Email addresses */
- {"entry_person_email_1", "changed", entry_changed_e_contact,
+ {"entry_person_email_1", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_EMAIL_1},
- {"entry_person_email_2", "changed", entry_changed_e_contact,
+ {"entry_person_email_2", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_EMAIL_2},
- {"entry_person_email_3", "changed", entry_changed_e_contact,
+ {"entry_person_email_3", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_EMAIL_3},
- {"entry_person_email_4", "changed", entry_changed_e_contact,
+ {"entry_person_email_4", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_EMAIL_4},
/* Phone numbers */
- {"entry_person_phone_home", "changed", entry_changed_e_contact,
+ {"entry_person_phone_home", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_PHONE_HOME},
- {"entry_person_phone_work", "changed", entry_changed_e_contact,
+ {"entry_person_phone_work", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_PHONE_BUSINESS},
- {"entry_person_phone_cell", "changed", entry_changed_e_contact,
+ {"entry_person_phone_cell", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_PHONE_MOBILE},
/* XXX: pretty arbitrary and extremely noisy */
/* Instant messenger */
/* home */
- {"entry_person_im_home_1", "changed", entry_changed_e_contact,
+ {"entry_person_im_home_1", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_home_2", "changed", entry_changed_e_contact,
+ {"entry_person_im_home_2", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_home_3", "changed", entry_changed_e_contact,
+ {"entry_person_im_home_3", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_home_4", "changed", entry_changed_e_contact,
+ {"entry_person_im_home_4", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_home_5", "changed", entry_changed_e_contact,
+ {"entry_person_im_home_5", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_home_6", "changed", entry_changed_e_contact,
+ {"entry_person_im_home_6", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_home_7", "changed", entry_changed_e_contact,
+ {"entry_person_im_home_7", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_home_8", "changed", entry_changed_e_contact,
+ {"entry_person_im_home_8", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
/* work */
- {"entry_person_im_work_1", "changed", entry_changed_e_contact,
+ {"entry_person_im_work_1", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_work_2", "changed", entry_changed_e_contact,
+ {"entry_person_im_work_2", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_work_3", "changed", entry_changed_e_contact,
+ {"entry_person_im_work_3", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_work_4", "changed", entry_changed_e_contact,
+ {"entry_person_im_work_4", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_work_5", "changed", entry_changed_e_contact,
+ {"entry_person_im_work_5", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_work_6", "changed", entry_changed_e_contact,
+ {"entry_person_im_work_6", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_work_7", "changed", entry_changed_e_contact,
+ {"entry_person_im_work_7", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
- {"entry_person_im_work_8", "changed", entry_changed_e_contact,
+ {"entry_person_im_work_8", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) CB_DATA_FIELD_IM},
/* Web URLs */
- {"entry_person_web_homepage", "changed", entry_changed_e_contact,
+ {"entry_person_web_homepage", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_HOMEPAGE_URL},
- {"entry_person_web_blog", "changed", entry_changed_e_contact,
+ {"entry_person_web_blog", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_BLOG_URL},
- {"entry_person_web_calendar", "changed", entry_changed_e_contact,
+ {"entry_person_web_calendar", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_CALENDAR_URI},
- {"entry_person_web_video", "changed", entry_changed_e_contact,
+ {"entry_person_web_video", "changed",
+ soylent_browser_person_entry_changed_e_contact_cb,
CB_DATA_COMPLEX_FROM_E_CONTACT_FIELD, (void*) E_CONTACT_VIDEO_URL},
};
gboolean retval = FALSE;
@@ -1845,7 +1880,8 @@
/* TODO: factor this out somewhere else, if possible */
const gchar *context_list[] = {"home", "work", "other"};
const gchar *signal_name = "changed";
- const GCallback callback = G_CALLBACK (entry_changed_e_contact);
+ const GCallback callback =
+ G_CALLBACK (soylent_browser_person_entry_changed_e_contact_cb);
gboolean connect_retval = FALSE;
gchar *widget_name = NULL;
cb_entry_changed_e_contact *cb_data = NULL;
Modified: trunk/src/soylent-utils.c
==============================================================================
--- trunk/src/soylent-utils.c (original)
+++ trunk/src/soylent-utils.c Sat Mar 15 21:28:34 2008
@@ -76,3 +76,33 @@
return retval;
}
+
+/* Set the contents of a GtkTextBuffer without triggering its handler
+ * (eg, when pre-filling them with e-d-s fields for the given person) */
+void
+text_buffer_set_text_block_handler (GtkTextBuffer *buf, const gchar *text,
+ gpointer handler)
+{
+ g_signal_handlers_block_matched (buf, G_SIGNAL_MATCH_FUNC, 0, (GQuark) 0,
+ NULL, handler, NULL);
+
+ gtk_text_buffer_set_text (buf, text, -1);
+
+ g_signal_handlers_unblock_matched (buf, G_SIGNAL_MATCH_FUNC, 0, (GQuark) 0,
+ NULL, handler, NULL);
+}
+
+/* Set the contents of a GtkEntry without triggering its handler
+ * (eg, when pre-filling them with e-d-s fields for the given person) */
+void
+entry_set_text_block_handler (GtkEntry *entry, const gchar *text,
+ gpointer handler)
+{
+ g_signal_handlers_block_matched (entry, G_SIGNAL_MATCH_FUNC, 0, (GQuark) 0,
+ NULL, handler, NULL);
+
+ gtk_entry_set_text (entry, text);
+
+ g_signal_handlers_unblock_matched (entry, G_SIGNAL_MATCH_FUNC, 0, (GQuark) 0,
+ NULL, handler, NULL);
+}
Modified: trunk/src/soylent-utils.h
==============================================================================
--- trunk/src/soylent-utils.h (original)
+++ trunk/src/soylent-utils.h Sat Mar 15 21:28:34 2008
@@ -56,9 +56,12 @@
gpointer user_data;
};
-gboolean
-widget_signal_connect (GladeXML *wtree, const gchar *widget_name,
- const gchar *signal, gconstpointer callback,
- gpointer user_data);
+gboolean widget_signal_connect (GladeXML *wtree, const gchar *widget_name,
+ const gchar *signal, gconstpointer callback,
+ gpointer user_data);
+void text_buffer_set_text_block_handler (GtkTextBuffer *buf, const gchar *text,
+ gpointer handler);
+void entry_set_text_block_handler (GtkEntry *entry, const gchar *text,
+ gpointer handler);
#endif /* _SOYLENT_UTILS_H_ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]