Author: juha Date: 2007-01-29 18:03:28 +0000 (Mon, 29 Jan 2007) New Revision: 24793
Modified: xfcalendar/trunk/src/appointment.c xfcalendar/trunk/src/event-list.c xfcalendar/trunk/src/event-list.h xfcalendar/trunk/src/functions.c xfcalendar/trunk/src/functions.h Log: code cleanout Modified: xfcalendar/trunk/src/appointment.c =================================================================== --- xfcalendar/trunk/src/appointment.c 2007-01-29 15:00:55 UTC (rev 24792) +++ xfcalendar/trunk/src/appointment.c 2007-01-29 18:03:28 UTC (rev 24793) @@ -90,41 +90,6 @@ return TRUE; } -static struct tm display_to_year_month_day(const char *display) -{ - const char *date_format; - char *ret; - struct tm d = {0,0,0,0,0,0,0,0,0}; - - date_format = _("%m/%d/%Y"); - if ((ret = strptime(display, date_format, &d)) == NULL) - g_error("Orage: display_to_year_month_day wrong format (%s)" - , display); - else if (strlen(ret)) - g_error("Orage: display_to_year_month_day too long format (%s)" - , display); - return(d); -} - -static char *year_month_day_to_display(int year, int month, int day) -{ - const char *date_format; - static char result[32]; - struct tm d = {0,0,0,0,0,0,0,0,0}; - - date_format = _("%m/%d/%Y"); - d.tm_mday = day; - d.tm_mon = month - 1; - d.tm_year = year - 1900; - - if (strftime(result, 32, date_format, &d)) - return(result); - else { - g_error("Orage:year_month_day_to_display too long string in strftime"); - return(NULL); - } -} - static void combo_box_append_array(GtkWidget *combo_box, char *text[], int size) { register int i; @@ -481,8 +446,7 @@ , GTK_TEXT_SEARCH_TEXT_ONLY , &match_start, &match_end, &end)) { /* found it */ tm = orage_localtime(); - cdate = year_month_day_to_display(tm->tm_year + 1900, tm->tm_mon + 1 - , tm->tm_mday); + cdate = orage_tm_date_to_i18_date(*tm); gtk_text_buffer_delete(tb, &match_start, &match_end); gtk_text_buffer_insert(tb, &match_start, cdate, -1); } @@ -498,8 +462,7 @@ , GTK_TEXT_SEARCH_TEXT_ONLY , &match_start, &match_end, &end)) { /* found it */ tm = orage_localtime(); - cdate = year_month_day_to_display(tm->tm_year + 1900, tm->tm_mon + 1 - , tm->tm_mday); + cdate = orage_tm_date_to_i18_date(*tm); g_sprintf(ctime, "%02d:%02d", tm->tm_hour, tm->tm_min); cdatetime = g_strconcat(cdate, " ", ctime, NULL); gtk_text_buffer_delete(tb, &match_start, &match_end); @@ -701,7 +664,7 @@ /* start date and time. * Note that timezone is kept upto date all the time */ - current_t = display_to_year_month_day(gtk_button_get_label( + current_t = orage_i18_date_to_tm_date(gtk_button_get_label( GTK_BUTTON(apptw->StartDate_button))); g_sprintf(starttime, "%02d:%02d" , gtk_spin_button_get_value_as_int( @@ -716,7 +679,7 @@ /* end date and time. * Note that timezone is kept upto date all the time */ - current_t = display_to_year_month_day(gtk_button_get_label( + current_t = orage_i18_date_to_tm_date(gtk_button_get_label( GTK_BUTTON(apptw->EndDate_button))); g_sprintf(endtime, "%02d:%02d" , gtk_spin_button_get_value_as_int( @@ -746,7 +709,7 @@ */ appt->completed = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(apptw->Completed_checkbutton)); - current_t = display_to_year_month_day(gtk_button_get_label( + current_t = orage_i18_date_to_tm_date(gtk_button_get_label( GTK_BUTTON(apptw->CompletedDate_button))); g_sprintf(completedtime, "%02d:%02d" , gtk_spin_button_get_value_as_int( @@ -813,7 +776,7 @@ appt->recur_limit = 2; /* until limit */ appt->recur_count = 0; /* special: means no repeat count limit */ - current_t = display_to_year_month_day(gtk_button_get_label( + current_t = orage_i18_date_to_tm_date(gtk_button_get_label( GTK_BUTTON(apptw->Recur_until_button))); g_sprintf(appt->recur_until, XFICAL_APPT_TIME_FORMAT , current_t.tm_year + 1900, current_t.tm_mon + 1 @@ -847,38 +810,36 @@ if (fill_appt_from_apptw(appt, apptw)) { /* Here we try to save the event... */ - if (xfical_file_open()) { - if (apptw->appointment_add) { - apptw->xf_uid = g_strdup(xfical_appt_add(appt)); - ok = (apptw->xf_uid ? TRUE : FALSE); - if (ok) { - apptw->appointment_add = FALSE; - gtk_widget_set_sensitive(apptw->Duplicate, TRUE); - gtk_widget_set_sensitive(apptw->File_menu_duplicate, TRUE); - g_message("Orage **: Added: %s", apptw->xf_uid); - } - else - g_warning("Addition failed: %s", apptw->xf_uid); + if (!xfical_file_open()) + return(FALSE); + if (apptw->appointment_add) { + apptw->xf_uid = g_strdup(xfical_appt_add(appt)); + ok = (apptw->xf_uid ? TRUE : FALSE); + if (ok) { + apptw->appointment_add = FALSE; + gtk_widget_set_sensitive(apptw->Duplicate, TRUE); + gtk_widget_set_sensitive(apptw->File_menu_duplicate, TRUE); + g_message("Orage **: Added: %s", apptw->xf_uid); } - else { - ok = xfical_appt_mod(apptw->xf_uid, appt); - if (ok) - g_message("Orage **: Modified: %s", apptw->xf_uid); - else - g_warning("Modification failed: %s", apptw->xf_uid); + else + g_warning("Addition failed: %s", apptw->xf_uid); } - xfical_file_close(); + else { + ok = xfical_appt_mod(apptw->xf_uid, appt); + if (ok) + g_message("Orage **: Modified: %s", apptw->xf_uid); + else + g_warning("Modification failed: %s", apptw->xf_uid); } - + xfical_file_close(); if (ok) { apptw->appointment_new = FALSE; mark_appointment_unchanged(apptw); if (apptw->el != NULL) - refresh_el_win((el_win *)apptw->el, -1); + refresh_el_win((el_win *)apptw->el); orage_mark_appointments(); } } - return (ok); } @@ -926,18 +887,19 @@ , NULL); if (result == GTK_RESPONSE_ACCEPT) { - if (!apptw->appointment_add) - if (xfical_file_open()) { - result = xfical_appt_del(apptw->xf_uid); - xfical_file_close(); - if (result) - g_message("Orage **: Removed: %s", apptw->xf_uid); - else - g_warning("Removal failed: %s", apptw->xf_uid); - } + if (!apptw->appointment_add) { + if (!xfical_file_open()) + return; + result = xfical_appt_del(apptw->xf_uid); + if (result) + g_message("Orage **: Removed: %s", apptw->xf_uid); + else + g_warning("Removal failed: %s", apptw->xf_uid); + xfical_file_close(); + } if (apptw->el != NULL) - refresh_el_win((el_win *)apptw->el, -1); + refresh_el_win((el_win *)apptw->el); orage_mark_appointments(); gtk_widget_destroy(apptw->Window); @@ -1007,10 +969,9 @@ GtkWidget *selDate_Window_dialog; GtkWidget *selDate_Calendar_calendar; gint result; - guint year, month, day; char *date_to_display=NULL; struct tm *t; - struct tm current_t; + struct tm cur_t; selDate_Window_dialog = gtk_dialog_new_with_buttons( _("Pick the date"), GTK_WINDOW(apptw->Window), @@ -1025,23 +986,24 @@ gtk_container_add(GTK_CONTAINER(GTK_DIALOG(selDate_Window_dialog)->vbox) , selDate_Calendar_calendar); - current_t = display_to_year_month_day(gtk_button_get_label( + cur_t = orage_i18_date_to_tm_date(gtk_button_get_label( GTK_BUTTON(button))); orage_select_date(GTK_CALENDAR(selDate_Calendar_calendar) - , current_t.tm_year+1900, current_t.tm_mon, current_t.tm_mday); + , cur_t.tm_year+1900, cur_t.tm_mon, cur_t.tm_mday); gtk_widget_show_all(selDate_Window_dialog); result = gtk_dialog_run(GTK_DIALOG(selDate_Window_dialog)); switch(result){ case GTK_RESPONSE_ACCEPT: gtk_calendar_get_date(GTK_CALENDAR(selDate_Calendar_calendar) - , &year, &month, &day); - date_to_display = year_month_day_to_display(year, month + 1, day); + , (guint *)&cur_t.tm_year, (guint *)&cur_t.tm_mon + , (guint *)&cur_t.tm_mday); + cur_t.tm_year -= 1900; + date_to_display = orage_tm_date_to_i18_date(cur_t); break; case 1: t = orage_localtime(); - date_to_display = year_month_day_to_display(t->tm_year + 1900 - , t->tm_mon + 1, t->tm_mday); + date_to_display = orage_tm_date_to_i18_date(*t); break; case GTK_RESPONSE_DELETE_EVENT: default: @@ -1210,6 +1172,7 @@ { char *startdate_to_display, *enddate_to_display, *completeddate_to_display; int year, month, day, hours, minutes; + struct tm tm_date; /* all day ? */ gtk_toggle_button_set_active( @@ -1219,7 +1182,10 @@ if (strlen(appt->starttime) > 6 ) { ical_to_year_month_day_hour_minute(appt->starttime , &year, &month, &day, &hours, &minutes); - startdate_to_display = year_month_day_to_display(year, month, day); + tm_date.tm_year = year - 1900; + tm_date.tm_mon = month - 1; + tm_date.tm_mday = day; + startdate_to_display = orage_tm_date_to_i18_date(tm_date); gtk_button_set_label(GTK_BUTTON(apptw->StartDate_button) , (const gchar *)startdate_to_display); @@ -1243,7 +1209,10 @@ if (strlen(appt->endtime) > 6 ) { ical_to_year_month_day_hour_minute(appt->endtime , &year, &month, &day, &hours, &minutes); - enddate_to_display = year_month_day_to_display(year, month, day); + tm_date.tm_year = year - 1900; + tm_date.tm_mon = month - 1; + tm_date.tm_mday = day; + enddate_to_display = orage_tm_date_to_i18_date(tm_date); gtk_button_set_label(GTK_BUTTON(apptw->EndDate_button) , (const gchar *)enddate_to_display); @@ -1282,7 +1251,10 @@ if (strlen(appt->completedtime) > 6 ) { ical_to_year_month_day_hour_minute(appt->completedtime , &year, &month, &day, &hours, &minutes); - completeddate_to_display = year_month_day_to_display(year, month, day); + tm_date.tm_year = year - 1900; + tm_date.tm_mon = month - 1; + tm_date.tm_mday = day; + completeddate_to_display = orage_tm_date_to_i18_date(tm_date); gtk_button_set_label(GTK_BUTTON(apptw->CompletedDate_button) , (const gchar *)completeddate_to_display); @@ -1353,10 +1325,8 @@ else if ((strcmp(action, "UPDATE") == 0) || (strcmp(action, "COPY") == 0)) { /* par contains ical uid */ - if (!xfical_file_open()) { - g_error("ical file open failed\n"); + if (!xfical_file_open()) return(NULL); - } if ((appt = xfical_appt_get(par)) == NULL) { g_message("Orage **: appointment not found"); xfical_file_close(); @@ -1376,7 +1346,7 @@ { int year, month, day, hours, minutes; appt_data *appt; - struct tm *t; + struct tm *t, tm_date; char *untildate_to_display; int i; @@ -1497,8 +1467,7 @@ gtk_spin_button_set_value( GTK_SPIN_BUTTON(apptw->Recur_count_spin), (gdouble)1); t = orage_localtime(); - untildate_to_display = year_month_day_to_display(t->tm_year+1900 - , t->tm_mon+1, t->tm_mday); + untildate_to_display = orage_tm_date_to_i18_date(*t); gtk_button_set_label(GTK_BUTTON(apptw->Recur_until_button) , (const gchar *)untildate_to_display); break; @@ -1509,8 +1478,7 @@ GTK_SPIN_BUTTON(apptw->Recur_count_spin) , (gdouble)appt->recur_count); t = orage_localtime(); - untildate_to_display = year_month_day_to_display(t->tm_year+1900 - , t->tm_mon+1, t->tm_mday); + untildate_to_display = orage_tm_date_to_i18_date(*t); gtk_button_set_label(GTK_BUTTON(apptw->Recur_until_button) , (const gchar *)untildate_to_display); break; @@ -1521,7 +1489,10 @@ GTK_SPIN_BUTTON(apptw->Recur_count_spin), (gdouble)1); ical_to_year_month_day_hour_minute(appt->recur_until , &year, &month, &day, &hours, &minutes); - untildate_to_display = year_month_day_to_display(year, month, day); + tm_date.tm_year = year - 1900; + tm_date.tm_mon = month - 1; + tm_date.tm_mday = day; + untildate_to_display = orage_tm_date_to_i18_date(tm_date); gtk_button_set_label(GTK_BUTTON(apptw->Recur_until_button) , (const gchar *)untildate_to_display); break; Modified: xfcalendar/trunk/src/event-list.c =================================================================== --- xfcalendar/trunk/src/event-list.c 2007-01-29 15:00:55 UTC (rev 24792) +++ xfcalendar/trunk/src/event-list.c 2007-01-29 18:03:28 UTC (rev 24793) @@ -177,7 +177,7 @@ return(6); } -static char *format_time(el_win *el, appt_data *appt, row_type rt, char *par) +static char *format_time(el_win *el, appt_data *appt, char *par) { static char result[40]; int i = 0; @@ -189,7 +189,7 @@ end_ical_time = appt->endtimecur; same_date = !strncmp(start_ical_time, end_ical_time, 8); - if (rt == TYPE_TIME && el->type == XFICAL_TYPE_EVENT && el->days == 0) { + if (el->type == XFICAL_TYPE_EVENT && el->days == 0) { /* special formatting for 1 day VEVENTS */ if (start_ical_time[8] == 'T') { /* time part available */ if (strncmp(start_ical_time, par, 8) < 0) @@ -289,8 +289,8 @@ } } -static void add_el_row(el_win *el, appt_data *appt, row_type rt, char *par) -{ /* par depends on rt */ +static void add_el_row(el_win *el, appt_data *appt, char *par) +{ GtkTreeIter iter1; GtkListStore *list1; gchar *title = NULL; @@ -299,7 +299,7 @@ gchar *s_sort, *s_sort1; gint len = 50; - stime = format_time(el, appt, rt, par); + stime = format_time(el, appt, par); if (appt->alarmtime != 0) if (appt->sound != NULL) flags[0] = 'S'; @@ -326,7 +326,7 @@ else flags[2] = 'f'; - if (rt == TYPE_SEARCH && strcmp(par, "archive") == 0) + if (strcmp(par, "archive") == 0) flags[3] = 'A'; else flags[3] = 'n'; @@ -375,14 +375,11 @@ for (appt = xfical_appt_get_next_with_string(search_string, TRUE, FALSE); appt; appt = xfical_appt_get_next_with_string(search_string, FALSE, FALSE)){ - add_el_row(el, appt, TYPE_SEARCH, "main"); + add_el_row(el, appt, "main"); xfical_appt_free(appt); } - /* then check if we need to process archive file also */ - /* - if (gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(el->search_archive_cb))) { - */ + xfical_file_close(); + /* process always archive file also */ if (!xfical_archive_open()) { g_free(search_string); return; @@ -390,78 +387,49 @@ for (appt = xfical_appt_get_next_with_string(search_string, TRUE, TRUE); appt; appt = xfical_appt_get_next_with_string(search_string, FALSE, TRUE)) { - add_el_row(el, appt, TYPE_SEARCH, "archive"); + add_el_row(el, appt, "archive"); xfical_appt_free(appt); } xfical_archive_close(); - /* - } - */ g_free(search_string); - xfical_file_close(); } -static void event_data(el_win *el) +static void get_data_rows(el_win *el, char *a_day, gboolean arch, char *par) { - guint year, month, day; - char *title; - char a_day[9]; /* yyyymmdd */ appt_data *appt; - struct tm *t; - if (!xfical_file_open()) - return; - el->days = gtk_spin_button_get_value(GTK_SPIN_BUTTON(el->event_spin)); - title = (char *)gtk_window_get_title(GTK_WINDOW(el->Window)); - title_to_ical(title, a_day); - if (sscanf(title, "%d-%d-%d", &year, &month, &day) != 3) - g_warning("time_data: title conversion error\n"); - t = orage_localtime(); - g_sprintf(el->time_now, "%02d:%02d", t->tm_hour, t->tm_min); - if ( year == t->tm_year + 1900 - && month == t->tm_mon + 1 - && day == t->tm_mday) - el->today = TRUE; - else - el->today = FALSE; - /* - if (gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(el->time_event_rb))) - el->type = XFICAL_TYPE_EVENT; - else if (gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(el->time_todo_rb))) - el->type = XFICAL_TYPE_TODO; - else if (gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(el->time_journal_rb))) - el->type = XFICAL_TYPE_JOURNAL; - else - g_warning("time_data: coding error, illegal type"); - */ + if (!arch) { + if (!xfical_file_open()) + return; + } + else { + if (!xfical_archive_open()) + return; + } for (appt = xfical_appt_get_next_on_day(a_day, TRUE, el->days, el->type - , FALSE); + , arch); appt; appt = xfical_appt_get_next_on_day(a_day, FALSE, el->days, el->type - , FALSE)) - { - add_el_row(el, appt, TYPE_TIME, a_day); + , arch)) { + add_el_row(el, appt, par); xfical_appt_free(appt); } - xfical_file_close(); + + if (!arch) + xfical_file_close(); + else + xfical_archive_close(); } -static void todo_data(el_win *el) +static void event_data(el_win *el) { - /* FIXME */ guint year, month, day; char *title; char a_day[9]; /* yyyymmdd */ - appt_data *appt; struct tm *t; - if (!xfical_file_open()) - return; - /* + el->type = XFICAL_TYPE_EVENT; el->days = gtk_spin_button_get_value(GTK_SPIN_BUTTON(el->event_spin)); title = (char *)gtk_window_get_title(GTK_WINDOW(el->Window)); title_to_ical(title, a_day); @@ -475,60 +443,25 @@ el->today = TRUE; else el->today = FALSE; - */ - t = orage_localtime(); - g_sprintf(a_day, "%04d%02d%02d" - , t->tm_year + 1900, t->tm_mon + 1, t->tm_mday); - el->days = 10*365; /* long enough time to get everything from future */ - for (appt = xfical_appt_get_next_on_day(a_day, TRUE, el->days, el->type - , FALSE); - appt; - appt = xfical_appt_get_next_on_day(a_day, FALSE, el->days, el->type - , FALSE)) - { - add_el_row(el, appt, TYPE_TIME, a_day); - xfical_appt_free(appt); - } - xfical_file_close(); + get_data_rows(el, a_day, FALSE, a_day); } -/* FIXME: move to functions and combine with appointment */ -static struct tm display_to_year_month_day(const char *display) +static void todo_data(el_win *el) { - const char *date_format; - char *ret; - struct tm d = {0,0,0,0,0,0,0,0,0}; + guint year, month, day; + char *title; + char a_day[9]; /* yyyymmdd */ + struct tm *t; - date_format = _("%m/%d/%Y"); - if ((ret = (char *)strptime(display, date_format, &d)) == NULL) - g_error("Orage: display_to_year_month_day wrong format (%s)" - , display); - else if (strlen(ret)) - g_error("Orage: display_to_year_month_day too long format (%s)" - , display); - return(d); + el->type = XFICAL_TYPE_TODO; + el->days = 10*365; /* long enough time to get everything from future */ + t = orage_localtime(); + g_sprintf(a_day, "%04d%02d%02d" + , t->tm_year + 1900, t->tm_mon + 1, t->tm_mday); + get_data_rows(el, a_day, FALSE, a_day); } -/* FIXME: move to functions and combine with appointment */ -static char *year_month_day_to_display(int year, int month, int day) -{ - const char *date_format; - static char result[32]; - struct tm d = {0,0,0,0,0,0,0,0,0}; - - date_format = _("%m/%d/%Y"); - d.tm_mday = day; - d.tm_mon = month - 1; - d.tm_year = year - 1900; - - if (strftime(result, 32, date_format, &d)) - return(result); - else { - g_error("Orage:year_month_day_to_display too long string in strftime"); return(NULL); - } -} - void journal_data(el_win *el) { guint year, month, day; @@ -536,46 +469,23 @@ appt_data *appt; struct tm t; - if (!xfical_file_open()) - return; - t = display_to_year_month_day(gtk_button_get_label( + el->type = XFICAL_TYPE_JOURNAL; + el->days = 10*365; /* long enough time to get everything from future */ + t = orage_i18_date_to_tm_date(gtk_button_get_label( GTK_BUTTON(el->journal_start_button))); g_sprintf(a_day, "%04d%02d%02d" , t.tm_year + 1900, t.tm_mon + 1, t.tm_mday); - el->days = 10*365; /* long enough time to get everything from future */ - for (appt = xfical_appt_get_next_on_day(a_day, TRUE, el->days, el->type - , FALSE); - appt; - appt = xfical_appt_get_next_on_day(a_day, FALSE, el->days, el->type - , FALSE)) { - add_el_row(el, appt, TYPE_SEARCH, "main"); - xfical_appt_free(appt); - } - xfical_file_close(); - if (!xfical_archive_open()) - return; - for (appt = xfical_appt_get_next_on_day(a_day, TRUE, el->days, el->type - , TRUE); - appt; - appt = xfical_appt_get_next_on_day(a_day, FALSE, el->days, el->type - , TRUE)) { - add_el_row(el, appt, TYPE_SEARCH, "archive"); - xfical_appt_free(appt); - } - xfical_archive_close(); + get_data_rows(el, a_day, FALSE, "main"); + get_data_rows(el, a_day, TRUE, "archive"); } -/* FIXME: remove unused parameter page and coordinate with appointment */ -void refresh_el_win(el_win *el, gint page) +void refresh_el_win(el_win *el) { GtkCellRenderer *rend; GtkTreeViewColumn *col; - gint page_num; - if (el->Window != NULL - && el->ListStore != NULL - && el->TreeView != NULL) { + if (el->Window && el->ListStore && el->TreeView) { gtk_list_store_clear(el->ListStore); /* this is needed if we want to make time field smaller again */ if (el->type == XFICAL_TYPE_EVENT && el->days == 0) { @@ -588,21 +498,14 @@ , start_time_data_func, el, NULL); gtk_tree_view_insert_column(GTK_TREE_VIEW(el->TreeView), col, 0); } - /* - if (page != -1) / * -1 = use current selection * / - gtk_notebook_set_current_page(GTK_NOTEBOOK(el->Notebook), page); - */ switch (gtk_notebook_get_current_page(GTK_NOTEBOOK(el->Notebook))) { case EVENT_PAGE: - el->type = XFICAL_TYPE_EVENT; event_data(el); break; case TODO_PAGE: - el->type = XFICAL_TYPE_TODO; todo_data(el); break; case JOURNAL_PAGE: - el->type = XFICAL_TYPE_JOURNAL; journal_data(el); break; case SEARCH_PAGE: @@ -626,7 +529,7 @@ cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(el->Notebook)); if (cur_page != prev_page) { prev_page = cur_page; - refresh_el_win(el, SEARCH_PAGE); + refresh_el_win(el); } return(FALSE); /* we do this only once */ } @@ -657,7 +560,7 @@ el_win *el = (el_win *)user_data; gtk_notebook_set_current_page(GTK_NOTEBOOK(el->Notebook), SEARCH_PAGE); - refresh_el_win((el_win *)user_data, SEARCH_PAGE); + refresh_el_win((el_win *)user_data); } static void on_View_search_activate_cb(GtkMenuItem *mi, gpointer user_data) @@ -665,7 +568,7 @@ el_win *el = (el_win *)user_data; gtk_notebook_set_current_page(GTK_NOTEBOOK(el->Notebook), SEARCH_PAGE); - refresh_el_win((el_win *)user_data, SEARCH_PAGE); + refresh_el_win((el_win *)user_data); } static void set_el_data_from_cal(el_win *el) @@ -678,7 +581,7 @@ g_sprintf(title, "%04d-%02d-%02d", year, month+1, day); gtk_window_set_title(GTK_WINDOW(el->Window), (const gchar*)title); gtk_notebook_set_current_page(GTK_NOTEBOOK(el->Notebook), EVENT_PAGE); - refresh_el_win(el, EVENT_PAGE); + refresh_el_win(el); } static void duplicate_appointment(el_win *el) @@ -754,12 +657,12 @@ static void on_Refresh_clicked(GtkButton *b, gpointer user_data) { - refresh_el_win((el_win*)user_data, -1); + refresh_el_win((el_win*)user_data); } static void on_View_refresh_activate_cb(GtkMenuItem *mi, gpointer user_data) { - refresh_el_win((el_win*)user_data, -1); + refresh_el_win((el_win*)user_data); } static void changeSelectedDate(el_win *el, gint direction) @@ -861,17 +764,9 @@ static void on_spin_changed(GtkSpinButton *b, gpointer user_data) { - refresh_el_win((el_win *)user_data, EVENT_PAGE); + refresh_el_win((el_win *)user_data); } -/* -static void checkbutton_clicked_cb(GtkCheckButton *cb - , gpointer user_data) -{ - refresh_el_win((el_win *)user_data, TIME_PAGE); -} -*/ - static void delete_appointment(el_win *el) { gint result; @@ -893,28 +788,28 @@ NULL); if (result == GTK_RESPONSE_ACCEPT) { - if (xfical_file_open()) { - sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(el->TreeView)); - list = gtk_tree_selection_get_selected_rows(sel, &model); - list_len = g_list_length(list); - for (i = 0; i < list_len; i++) { - path = (GtkTreePath *)g_list_nth_data(list, i); - if (gtk_tree_model_get_iter(model, &iter, path)) { - gtk_tree_model_get(model, &iter, COL_UID, &uid, -1); - result = xfical_appt_del(uid); - if (result) - g_message("Orage **: Removed: %s", uid); - else - g_warning("Removal failed: %s", uid); - g_free(uid); - } + if (!xfical_file_open()) + return; + sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(el->TreeView)); + list = gtk_tree_selection_get_selected_rows(sel, &model); + list_len = g_list_length(list); + for (i = 0; i < list_len; i++) { + path = (GtkTreePath *)g_list_nth_data(list, i); + if (gtk_tree_model_get_iter(model, &iter, path)) { + gtk_tree_model_get(model, &iter, COL_UID, &uid, -1); + result = xfical_appt_del(uid); + if (result) + g_message("Orage **: Removed: %s", uid); + else + g_warning("Removal failed: %s", uid); + g_free(uid); } - xfical_file_close(); - refresh_el_win(el, -1); - orage_mark_appointments(); - g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); - g_list_free(list); } + xfical_file_close(); + refresh_el_win(el); + orage_mark_appointments(); + g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); + g_list_free(list); } } @@ -937,8 +832,7 @@ gint result; guint year, month, day; char *date_to_display = NULL; - struct tm *t; - struct tm current_t; + struct tm *t, cur_t; selDate_Window_dialog = gtk_dialog_new_with_buttons( _("Pick the date"), GTK_WINDOW(el->Window), @@ -953,23 +847,24 @@ gtk_container_add(GTK_CONTAINER(GTK_DIALOG(selDate_Window_dialog)->vbox) , selDate_Calendar_calendar); - current_t = display_to_year_month_day(gtk_button_get_label( + cur_t = orage_i18_date_to_tm_date(gtk_button_get_label( GTK_BUTTON(button))); orage_select_date(GTK_CALENDAR(selDate_Calendar_calendar) - , current_t.tm_year+1900, current_t.tm_mon, current_t.tm_mday); + , cur_t.tm_year+1900, cur_t.tm_mon, cur_t.tm_mday); gtk_widget_show_all(selDate_Window_dialog); result = gtk_dialog_run(GTK_DIALOG(selDate_Window_dialog)); switch(result){ case GTK_RESPONSE_ACCEPT: gtk_calendar_get_date(GTK_CALENDAR(selDate_Calendar_calendar) - , &year, &month, &day); - date_to_display = year_month_day_to_display(year, month + 1, day); + , (guint *)&cur_t.tm_year, (guint *)&cur_t.tm_mon + , (guint *)&cur_t.tm_mday); + cur_t.tm_year -= 1900; + date_to_display = orage_tm_date_to_i18_date(cur_t); break; case 1: t = orage_localtime(); - date_to_display = year_month_day_to_display(t->tm_year + 1900 - , t->tm_mon + 1, t->tm_mday); + date_to_display = orage_tm_date_to_i18_date(*t); break; case GTK_RESPONSE_DELETE_EVENT: default: @@ -984,7 +879,7 @@ } */ gtk_button_set_label(GTK_BUTTON(button), (const gchar *)date_to_display); - refresh_el_win(el, SEARCH_PAGE); + refresh_el_win(el); gtk_widget_destroy(selDate_Window_dialog); } @@ -1186,45 +1081,11 @@ , label, hbox , row = 0, (GTK_FILL), (0)); - /* - label = gtk_label_new(_("Type ")); - hbox = gtk_hbox_new(FALSE, 0); - el->time_event_rb = gtk_radio_button_new_with_label(NULL, _("Event")); - gtk_box_pack_start(GTK_BOX(hbox), el->time_event_rb, FALSE, FALSE, 15); - gtk_tooltips_set_tip(el->Tooltips, el->time_event_rb - , _("Event that will happen sometime. For example:\nMeeting or birthday or TV show."), NULL); - - el->time_todo_rb = gtk_radio_button_new_with_mnemonic_from_widget( - GTK_RADIO_BUTTON(el->time_event_rb) , _("Todo")); - gtk_box_pack_start(GTK_BOX(hbox), el->time_todo_rb, FALSE, FALSE, 15); - gtk_tooltips_set_tip(el->Tooltips, el->time_todo_rb - , _("Something that you should do sometime. For example:\nWash your car or test new version of Orage."), NULL); - - el->time_journal_rb = gtk_radio_button_new_with_mnemonic_from_widget( - GTK_RADIO_BUTTON(el->time_event_rb) , _("Journal")); - gtk_box_pack_start(GTK_BOX(hbox), el->time_journal_rb - , FALSE, FALSE, 15); - gtk_tooltips_set_tip(el->Tooltips, el->time_journal_rb - , _("Make a note that something happened. For example:\nRemark that you bought new car or went to dentist."), NULL); - - orage_table_add_row(el->event_notebook_page - , label, hbox - , ++row, (GTK_FILL), (GTK_FILL)); - */ - gtk_notebook_append_page(GTK_NOTEBOOK(el->Notebook) , el->event_notebook_page, el->event_tab_label); g_signal_connect((gpointer)el->event_spin, "value-changed" , G_CALLBACK(on_spin_changed), el); - /* - g_signal_connect((gpointer)el->time_event_rb, "clicked" - , G_CALLBACK(checkbutton_clicked_cb), el); - g_signal_connect((gpointer)el->time_todo_rb, "clicked" - , G_CALLBACK(checkbutton_clicked_cb), el); - g_signal_connect((gpointer)el->time_journal_rb, "clicked" - , G_CALLBACK(checkbutton_clicked_cb), el); - */ } static void build_todo_tab(el_win *el) @@ -1250,8 +1111,8 @@ hbox = gtk_hbox_new(FALSE, 0); el->journal_start_button = gtk_button_new(); tm = orage_localtime(); - sdate = year_month_day_to_display(tm->tm_year + 1900 - 1, tm->tm_mon + 1 - , tm->tm_mday); + tm->tm_year -= 1; + sdate = orage_tm_date_to_i18_date(*tm); gtk_button_set_label(GTK_BUTTON(el->journal_start_button) , (const gchar *)sdate); gtk_box_pack_start(GTK_BOX(hbox), el->journal_start_button @@ -1262,7 +1123,6 @@ gtk_notebook_append_page(GTK_NOTEBOOK(el->Notebook) , el->journal_notebook_page, el->journal_tab_label); - g_signal_connect((gpointer)el->journal_start_button, "clicked" , G_CALLBACK(on_journal_start_button_clicked), el); } @@ -1281,17 +1141,6 @@ , label, el->search_entry , row = 0, (GTK_EXPAND | GTK_FILL), (0)); - /* - label = gtk_label_new(_("History ")); - el->search_archive_cb = gtk_check_button_new_with_mnemonic( - _("Search also from history file")); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(el->search_archive_cb) - , TRUE); - orage_table_add_row(el->search_notebook_page - , label, el->search_archive_cb - , ++row, (GTK_EXPAND | GTK_FILL), (0)); - */ - gtk_notebook_append_page(GTK_NOTEBOOK(el->Notebook) , el->search_notebook_page, el->search_tab_label); } Modified: xfcalendar/trunk/src/event-list.h =================================================================== --- xfcalendar/trunk/src/event-list.h 2007-01-29 15:00:55 UTC (rev 24792) +++ xfcalendar/trunk/src/event-list.h 2007-01-29 18:03:28 UTC (rev 24793) @@ -96,6 +96,6 @@ } el_win; /* event list window */ el_win* create_el_win(void); -void refresh_el_win(el_win *el, gint page); +void refresh_el_win(el_win *el); #endif /* !__EVENT_LIST_H__ */ Modified: xfcalendar/trunk/src/functions.c =================================================================== --- xfcalendar/trunk/src/functions.c 2007-01-29 15:00:55 UTC (rev 24792) +++ xfcalendar/trunk/src/functions.c 2007-01-29 18:03:28 UTC (rev 24793) @@ -23,7 +23,9 @@ #include <stdio.h> #include <stdlib.h> +#define _XOPEN_SOURCE /* glibc2 needs this */ #include <time.h> +#include <string.h> #include <glib.h> #include <gtk/gtk.h> @@ -36,6 +38,47 @@ * Functions for drawing interfaces * **************************************/ + +struct tm orage_i18_date_to_tm_date(const char *i18_date) +{ + const char *date_format; + char *ret; + struct tm tm_date = {0,0,0,0,0,0,0,0,0}; + + date_format = _("%m/%d/%Y"); + ret = (char *)strptime(i18_date, date_format, &tm_date); + if (ret == NULL) + g_error("Orage: orage_i18_date_to_tm_date wrong format (%s)" + , i18_date); + else if (strlen(ret)) + g_error("Orage: orage_i18_date_to_tm_date too long format (%s)" + , i18_date); + return(tm_date); +} + +char *orage_tm_date_to_i18_date(struct tm tm_date) +{ + const char *date_format; + static char i18_date[32]; + /* + struct tm d = {0,0,0,0,0,0,0,0,0}; + */ + + date_format = _("%m/%d/%Y"); + /* + d.tm_mday = day; + d.tm_mon = month - 1; + d.tm_year = year - 1900; + */ + + if (strftime(i18_date, 32, date_format, &tm_date)) + return(i18_date); + else { + g_error("Orage: orage_tm_date_to_i18_date too long string in strftime"); + return(NULL); + } +} + GtkWidget *orage_toolbar_append_button(GtkWidget *toolbar , const gchar *stock_id, GtkTooltips *tooltips, const char *tooltip_text , gint pos) Modified: xfcalendar/trunk/src/functions.h =================================================================== --- xfcalendar/trunk/src/functions.h 2007-01-29 15:00:55 UTC (rev 24792) +++ xfcalendar/trunk/src/functions.h 2007-01-29 18:03:28 UTC (rev 24793) @@ -72,4 +72,7 @@ void orage_select_today(GtkCalendar *cal); +struct tm orage_i18_date_to_tm_date(const char *display); + +char *orage_tm_date_to_i18_date(struct tm tm_date); #endif /* !__ORAGE_FUNCTIONS_H__ */ _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits