From f699f9902b5e374070e8dd2c0fe43028f8dfb89f Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Tue, 5 Jun 2001 23:49:59 +0000 Subject: Copy dates as they come in. 2001-06-05 Christopher James Lahey * backend/ebook/e-card.c (e_card_set_arg): Copy dates as they come in. * backend/pas/pas-backend-file.c (pas_backend_file_changes_foreach_key, pas_backend_file_changes, pas_backend_file_process_remove_card, pas_backend_file_process_modify_card, pas_backend_file_build_all_cards_list, pas_backend_file_get_vcard, pas_backend_file_maybe_upgrade_db): memset DBTs to 0 before using them. (pas_backend_file_build_all_cards_list): Reindented. * contact-editor/contact-editor.glade: Replaced GnomeDateEdits with a custom widget that creates an EDateEdit. * contact-editor/e-contact-editor.c: Use an EDateEdit here instead of a GnomeDateEdit. svn path=/trunk/; revision=10125 --- addressbook/gui/contact-editor/e-contact-editor.c | 121 +++++++++++++--------- 1 file changed, 73 insertions(+), 48 deletions(-) (limited to 'addressbook/gui/contact-editor/e-contact-editor.c') diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index f4ebc9c68d..e9ad99283f 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include @@ -39,9 +38,12 @@ #include #include +#include + #include "addressbook/printing/e-contact-print.h" #include "addressbook/printing/e-contact-print-envelope.h" #include "e-util/e-gui-utils.h" +#include "widgets/misc/e-dateedit.h" #include "e-contact-editor.h" #include "e-contact-editor-address.h" @@ -592,6 +594,7 @@ categories_clicked(GtkWidget *button, EContactEditor *editor) GnomeDialog *dialog; int result; GtkWidget *entry = glade_xml_get_widget(editor->gui, "entry-categories"); + ECategoriesMasterList *ecml; if (entry && GTK_IS_ENTRY(entry)) categories = e_utf8_gtk_entry_get_text(GTK_ENTRY(entry)); else if (editor->card) @@ -599,9 +602,12 @@ categories_clicked(GtkWidget *button, EContactEditor *editor) "categories", &categories, NULL); dialog = GNOME_DIALOG(e_categories_new(categories)); + ecml = e_categories_master_list_wombat_new (); gtk_object_set(GTK_OBJECT(dialog), "header", _("This contact belongs to these categories:"), + "ecml", ecml, NULL); + gtk_object_unref (GTK_OBJECT (ecml)); gtk_widget_show(GTK_WIDGET(dialog)); result = gnome_dialog_run (dialog); g_free (categories); @@ -1973,30 +1979,29 @@ fill_in_info(EContactEditor *editor) editor->name = e_card_name_copy(name); widget = glade_xml_get_widget(editor->gui, "dateedit-anniversary"); - if (anniversary && widget && GNOME_IS_DATE_EDIT(widget)) { - struct tm time_struct = {0,0,0,0,0,0,0,0,0}; - time_t time_val; - GnomeDateEdit *dateedit; - - time_struct.tm_mday = anniversary->day; - time_struct.tm_mon = anniversary->month - 1; - time_struct.tm_year = anniversary->year - 1900; - time_val = mktime(&time_struct); - dateedit = GNOME_DATE_EDIT(widget); - gnome_date_edit_set_time(dateedit, time_val); + if (widget && E_IS_DATE_EDIT(widget)) { + EDateEdit *dateedit; + dateedit = E_DATE_EDIT(widget); + if (anniversary) + e_date_edit_set_date (dateedit, + anniversary->year, + anniversary->month, + anniversary->day); + else + e_date_edit_set_time (dateedit, -1); } widget = glade_xml_get_widget(editor->gui, "dateedit-birthday"); - if (bday && widget && GNOME_IS_DATE_EDIT(widget)) { - struct tm time_struct = {0,0,0,0,0,0,0,0,0}; - time_t time_val; - GnomeDateEdit *dateedit; - time_struct.tm_mday = bday->day; - time_struct.tm_mon = bday->month - 1; - time_struct.tm_year = bday->year - 1900; - time_val = mktime(&time_struct); - dateedit = GNOME_DATE_EDIT(widget); - gnome_date_edit_set_time(dateedit, time_val); + if (widget && E_IS_DATE_EDIT(widget)) { + EDateEdit *dateedit; + dateedit = E_DATE_EDIT(widget); + if (bday) + e_date_edit_set_date (dateedit, + bday->year, + bday->month, + bday->day); + else + e_date_edit_set_time (dateedit, -1); } set_fields(editor); @@ -2052,10 +2057,8 @@ extract_info(EContactEditor *editor) { ECard *card = editor->card; if (card) { - ECardDate *anniversary; - ECardDate *bday; - struct tm time_struct; - time_t time_val; + ECardDate anniversary; + ECardDate bday; int i; GtkWidget *widget; GList *list; @@ -2087,31 +2090,35 @@ extract_info(EContactEditor *editor) NULL); widget = glade_xml_get_widget(editor->gui, "dateedit-anniversary"); - if (widget && GNOME_IS_DATE_EDIT(widget)) { - time_val = gnome_date_edit_get_date(GNOME_DATE_EDIT(widget)); - gmtime_r(&time_val, - &time_struct); - anniversary = g_new(ECardDate, 1); - anniversary->day = time_struct.tm_mday; - anniversary->month = time_struct.tm_mon + 1; - anniversary->year = time_struct.tm_year + 1900; - gtk_object_set(GTK_OBJECT(card), - "anniversary", anniversary, - NULL); + if (widget && E_IS_DATE_EDIT(widget)) { + if (e_date_edit_get_date (E_DATE_EDIT (widget), + &anniversary.year, + &anniversary.month, + &anniversary.day)) { + g_print ("%d %d %d\n", anniversary.year, anniversary.month, anniversary.day); + gtk_object_set(GTK_OBJECT(card), + "anniversary", &anniversary, + NULL); + } else + gtk_object_set(GTK_OBJECT(card), + "anniversary", NULL, + NULL); } widget = glade_xml_get_widget(editor->gui, "dateedit-birthday"); - if (widget && GNOME_IS_DATE_EDIT(widget)) { - time_val = gnome_date_edit_get_date(GNOME_DATE_EDIT(widget)); - gmtime_r(&time_val, - &time_struct); - bday = g_new(ECardDate, 1); - bday->day = time_struct.tm_mday; - bday->month = time_struct.tm_mon + 1; - bday->year = time_struct.tm_year + 1900; - gtk_object_set(GTK_OBJECT(card), - "birth_date", bday, - NULL); + if (widget && E_IS_DATE_EDIT(widget)) { + if (e_date_edit_get_date (E_DATE_EDIT (widget), + &bday.year, + &bday.month, + &bday.day)) { + g_print ("%d %d %d\n", bday.year, bday.month, bday.day); + gtk_object_set(GTK_OBJECT(card), + "birth_date", &bday, + NULL); + } else + gtk_object_set(GTK_OBJECT(card), + "birth_date", NULL, + NULL); } } } @@ -2127,3 +2134,21 @@ e_contact_editor_raise (EContactEditor *editor) { gdk_window_raise (GTK_WIDGET (editor->app)->window); } + +GtkWidget * +e_contact_editor_create_date(gchar *name, + gchar *string1, gchar *string2, + gint int1, gint int2); + +GtkWidget * +e_contact_editor_create_date(gchar *name, + gchar *string1, gchar *string2, + gint int1, gint int2) +{ + GtkWidget *widget = e_date_edit_new (); + e_date_edit_set_allow_no_date_set (E_DATE_EDIT (widget), + TRUE); + e_date_edit_set_show_time (E_DATE_EDIT (widget), FALSE); + e_date_edit_set_time (E_DATE_EDIT (widget), -1); + return widget; +} -- cgit v1.2.3