Author: juha Date: 2007-12-11 21:58:58 +0000 (Tue, 11 Dec 2007) New Revision: 26458
Modified: xfcalendar/trunk/NEWS xfcalendar/trunk/TODO xfcalendar/trunk/configure.in.in xfcalendar/trunk/src/event-list.c xfcalendar/trunk/src/ical-code.c xfcalendar/trunk/src/ical-code.h xfcalendar/trunk/src/interface.c xfcalendar/trunk/src/interface.h xfcalendar/trunk/src/main.c xfcalendar/trunk/src/parameters.c xfcalendar/trunk/src/parameters.h Log: made archiving a compile time option Modified: xfcalendar/trunk/NEWS =================================================================== --- xfcalendar/trunk/NEWS 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/NEWS 2007-12-11 21:58:58 UTC (rev 26458) @@ -1,13 +1,3 @@ -20071002: ---------- - * Orage version 4.5.9.7 released - * Day view added. - -20070519: ---------- - * Orage version 4.5.9.5 released - * libnotify support added. - 20070104: --------- * Orage version 4.5.9 released Modified: xfcalendar/trunk/TODO =================================================================== --- xfcalendar/trunk/TODO 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/TODO 2007-12-11 21:58:58 UTC (rev 26458) @@ -40,10 +40,10 @@ *** DONE 4.5 *** 10) more alarm possibilities (like libnotify BUG 2831 and email) -*** DONE 4.5 *** +*** Partly DONE 4.5 *** 11) Day, Week, Month view -*** DONE 4.5 for day and week view *** +*** Partly DONE 4.5 *** 12) Exclude possiblity in repeating rule Modified: xfcalendar/trunk/configure.in.in =================================================================== --- xfcalendar/trunk/configure.in.in 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/configure.in.in 2007-12-11 21:58:58 UTC (rev 26458) @@ -9,7 +9,7 @@ dnl dnl Version information -m4_define([orage_version], [4.5.11.2-svn]) +m4_define([orage_version], [4.5.11.3-svn]) m4_define([gtk_minimum_version], [2.6.0]) m4_define([xfce_minimum_version], [4.4.0]) @@ -194,6 +194,20 @@ [notify_minimum_version], [libnotify], [LIBNOTIFY support]) +dnl ************************************************ +dnl *** Optional support for automatic archiving *** +dnl ************************************************ +have_archive="no" +AC_ARG_ENABLE([archive], +AC_HELP_STRING([--enable-archive], [use automatic archiving (defaut=yes)]) +AC_HELP_STRING([--disable-archive], [don't use automatic archiving]), + [], [enable_archive=yes]) +if test x"$enable_archive" = x"yes"; then + AC_DEFINE([HAVE_ARCHIVE], [1], [Define to enable archiving]) + have_archive="yes" +fi + + dnl Check for debugging support dnl BM_DEBUG_SUPPORT() XDT_FEATURE_DEBUG @@ -240,4 +254,5 @@ else echo "* LIBNOTIFY support: no" fi +echo "* Automatic archiving: $have_archive" echo Modified: xfcalendar/trunk/src/event-list.c =================================================================== --- xfcalendar/trunk/src/event-list.c 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/src/event-list.c 2007-12-11 21:58:58 UTC (rev 26458) @@ -90,29 +90,59 @@ { "STRING", 0, DRAG_TARGET_STRING } }; +static void start_appt_win(char *mode, el_win *el + , GtkTreeModel *model, GtkTreeIter *iter, GtkTreePath *path) +{ + gchar *uid = NULL, *flags = NULL; + appt_win *apptw; + + if (gtk_tree_model_get_iter(model, iter, path)) { + gtk_tree_model_get(model, iter, COL_UID, &uid, -1); +#ifdef HAVE_ARCHIVE + gtk_tree_model_get(model, iter, COL_FLAGS, &flags, -1); + if (flags && flags[3] == 'A') { + xfical_unarchive_uid(uid); + /* note that file id changes after archive */ + uid[0]='O'; + refresh_el_win(el); + } + g_free(flags); +#endif + apptw = create_appt_win(mode, uid, el); + g_free(uid); + } +} + static void editEvent(GtkTreeView *view, GtkTreePath *path , GtkTreeViewColumn *col, gpointer user_data) { el_win *el = (el_win *)user_data; - appt_win *apptw; GtkTreeModel *model; GtkTreeIter iter; + /* gchar *uid = NULL, *flags = NULL; + appt_win *apptw; + */ model = gtk_tree_view_get_model(view); + start_appt_win("UPDATE", el, model, &iter, path); + /* if (gtk_tree_model_get_iter(model, &iter, path)) { - gtk_tree_model_get(model, &iter - , COL_UID, &uid, COL_FLAGS, &flags, -1); + gtk_tree_model_get(model, &iter, COL_UID, &uid, -1); +#ifdef HAVE_ARCHIVE + gtk_tree_model_get(model, &iter, COL_FLAGS, &flags, -1); if (flags && flags[3] == 'A') { xfical_unarchive_uid(uid); - /* note that file id changes after archive */ + / * note that file id changes after archive * / uid[0]='O'; refresh_el_win(el); } +#endif apptw = create_appt_win("UPDATE", uid, el); g_free(uid); g_free(flags); } +*/ } static gint sortEvent_comp(GtkTreeModel *model @@ -420,12 +450,14 @@ searh_rows(el, search_string, file_type); } +#ifdef HAVE_ARCHIVE /* finally process always archive file also */ if (xfical_archive_open()) { strcpy(file_type, "A00."); searh_rows(el, search_string, file_type); xfical_archive_close(); } +#endif xfical_file_close(TRUE); g_free(search_string); } @@ -477,6 +509,7 @@ app_rows(el, a_day, par, ical_type, file_type); } +#ifdef HAVE_ARCHIVE /* finally process archive file for JOURNAL only */ if (ical_type == XFICAL_TYPE_JOURNAL) { if (xfical_archive_open()) { @@ -485,6 +518,7 @@ xfical_archive_close(); } } +#endif xfical_file_close(TRUE); } @@ -661,8 +695,10 @@ GtkTreeIter iter; GList *list; gint list_len; + /* gchar *uid = NULL, *flags = NULL; appt_win *apptw; + */ sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(el->TreeView)); list = gtk_tree_selection_get_selected_rows(sel, &model); @@ -671,18 +707,23 @@ if (list_len > 1) g_warning("Copy: too many rows selected\n"); path = (GtkTreePath *)g_list_nth_data(list, 0); + start_appt_win("COPY", el, model, &iter, path); + /* if (gtk_tree_model_get_iter(model, &iter, path)) { gtk_tree_model_get(model, &iter, COL_UID, &uid, -1); +#ifdef HAVE_ARCHIVE gtk_tree_model_get(model, &iter, COL_FLAGS, &flags, -1); if (flags && flags[3] == 'A') { xfical_unarchive_uid(uid); - /* note that file id changes after archive */ + / * note that file id changes after archive * / uid[0]='O'; refresh_el_win(el); } +#endif apptw = create_appt_win("COPY", uid, el); g_free(uid); } + */ } else g_warning("Copy: No row selected\n"); Modified: xfcalendar/trunk/src/ical-code.c =================================================================== --- xfcalendar/trunk/src/ical-code.c 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/src/ical-code.c 2007-12-11 21:58:58 UTC (rev 26458) @@ -84,10 +84,12 @@ char **city; /* pointer to timezone location name strings */ } xfical_timezone_array; -static icalset *fical = NULL, - *afical = NULL; -static icalcomponent *ical = NULL, - *aical = NULL; +static icalset *fical = NULL; +static icalcomponent *ical = NULL; +#ifdef HAVE_ARCHIVE +static icalset *afical = NULL; +static icalcomponent *aical = NULL; +#endif static gboolean file_modified = FALSE; /* has any ical file been changed */ static guint file_close_timer = 0; /* delayed file close timer */ @@ -716,6 +718,7 @@ return(ok); } +#ifdef HAVE_ARCHIVE gboolean xfical_archive_open(void) { #undef P_N @@ -731,6 +734,7 @@ return(xfical_internal_file_open(&aical, &afical, g_par.archive_file , FALSE)); } +#endif gboolean xfical_file_check(gchar *file_name) { @@ -833,6 +837,7 @@ delayed_file_close(NULL); } +#ifdef HAVE_ARCHIVE void xfical_archive_close(void) { #undef P_N @@ -848,6 +853,7 @@ icalset_free(afical); afical = NULL; } +#endif static struct icaltimetype ical_get_current_local_time() { @@ -2484,9 +2490,11 @@ if (uid[0] == 'O') { return(appt_get_any(ical_uid, ical, file_type)); } +#ifdef HAVE_ARCHIVE else if (uid[0] == 'A') { return(appt_get_any(ical_uid, aical, file_type)); } +#endif else if (uid[0] == 'F') { sscanf(uid, "F%02d", &i); if (i < g_par.foreign_count && f_ical[i].ical != NULL) @@ -3205,10 +3213,12 @@ return(xfical_appt_get_next_on_day_internal(a_day, first , days, type, ical, file_type)); } +#ifdef HAVE_ARCHIVE else if (file_type[0] == 'A') { return(xfical_appt_get_next_on_day_internal(a_day, first , days, type, aical, file_type)); } +#endif else if (file_type[0] == 'F') { sscanf(file_type, "F%02d", &i); if (i < g_par.foreign_count && f_ical[i].ical != NULL) @@ -3359,6 +3369,7 @@ } } +#ifdef HAVE_ARCHIVE void xfical_icalcomponent_archive_normal(icalcomponent *e) { #undef P_N @@ -3737,6 +3748,7 @@ return(TRUE); } +#endif static gboolean add_event(icalcomponent *c) { @@ -4307,10 +4319,12 @@ return(xfical_appt_get_next_with_string_internal(str, first , g_par.orage_file , ical, file_type)); } +#ifdef HAVE_ARCHIVE else if (file_type[0] == 'A') { return(xfical_appt_get_next_with_string_internal(str, first , g_par.archive_file, aical, file_type)); } +#endif else if (file_type[0] == 'F') { sscanf(file_type, "F%02d", &i); if (i < g_par.foreign_count && f_ical[i].ical != NULL) Modified: xfcalendar/trunk/src/ical-code.h =================================================================== --- xfcalendar/trunk/src/ical-code.h 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/src/ical-code.h 2007-12-11 21:58:58 UTC (rev 26458) @@ -122,8 +122,6 @@ gboolean xfical_file_open(gboolean foreign); void xfical_file_close(gboolean foreign); void xfical_file_close_force(void); -gboolean xfical_archive_open(void); -void xfical_archive_close(void); xfical_appt *xfical_appt_alloc(); char *xfical_appt_add(xfical_appt *app); @@ -143,9 +141,13 @@ gboolean xfical_duration(char *alarm_stime, int *days, int *hours, int *mins); int xfical_compare_times(xfical_appt *appt); +#ifdef HAVE_ARCHIVE +gboolean xfical_archive_open(void); +void xfical_archive_close(void); gboolean xfical_archive(void); gboolean xfical_unarchive(void); gboolean xfical_unarchive_uid(char *uid); +#endif gboolean xfical_import_file(char *file_name); gboolean xfical_export_file(char *file_name, int type, char *uids); Modified: xfcalendar/trunk/src/interface.c =================================================================== --- xfcalendar/trunk/src/interface.c 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/src/interface.c 2007-12-11 21:58:58 UTC (rev 26458) @@ -214,6 +214,7 @@ } } +#ifdef HAVE_ARCHIVE void static archive_file_entry_changed(GtkWidget *dialog, gpointer user_data) { intf_win *intf_w = (intf_win *)user_data; @@ -279,6 +280,7 @@ g_free(s); } } +#endif static GtkWidget *orage_file_chooser(GtkWidget *parent_window , gboolean save, gchar *cur_file, gchar *cur_folder, gchar *def_name) @@ -353,6 +355,7 @@ gtk_widget_destroy(f_chooser); } +#ifdef HAVE_ARCHIVE static void archive_file_open_button_clicked(GtkButton *button , gpointer user_data) { @@ -378,6 +381,7 @@ } gtk_widget_destroy(f_chooser); } +#endif void exp_open_button_clicked(GtkButton *button, gpointer user_data) { @@ -441,6 +445,7 @@ gtk_widget_destroy(f_chooser); } +#ifdef HAVE_ARCHIVE void on_archive_button_clicked_cb(GtkButton *button, gpointer user_data) { xfical_archive(); @@ -450,6 +455,7 @@ { xfical_unarchive(); } +#endif gboolean orage_import_file(gchar *entry_filename) { @@ -1051,13 +1057,19 @@ g_signal_connect((gpointer)intf_w->iea_exp_add_id_rb, "clicked" , G_CALLBACK(exp_add_id_rb_clicked), intf_w); +#ifdef HAVE_ARCHIVE gtk_tooltips_set_tip(intf_w->tooltips, intf_w->iea_exp_add_all_rb - , _("Note that only main file appointments are read.\nArchived events are not exported."), NULL); + , _("Note that only main file appointments are read.\nArchived and Foreign events are not exported."), NULL); +#else + gtk_tooltips_set_tip(intf_w->tooltips, intf_w->iea_exp_add_all_rb + , _("Note that only main file appointments are read.\nForeign events are not exported."), NULL); +#endif gtk_tooltips_set_tip(intf_w->tooltips, intf_w->iea_exp_add_id_rb , _("You can easily drag these from event-list window."), NULL); gtk_tooltips_set_tip(intf_w->tooltips, intf_w->iea_exp_id_entry , _("Orage appointment UIDs separated by commas."), NULL); +#ifdef HAVE_ARCHIVE /***** archive *****/ vbox = gtk_vbox_new(FALSE, 0); intf_w->iea_arc_frame = xfce_create_framebox_with_content( @@ -1093,6 +1105,7 @@ , G_CALLBACK(on_unarchive_button_clicked_cb), intf_w); gtk_tooltips_set_tip(intf_w->tooltips, intf_w->iea_arc_button2 , _("Return all archived events into main orage file and remove arch file.\nThis is usefull for example when doing export and moving orage\nappointments to another system."), NULL); +#endif } void create_orage_file_tab(intf_win *intf_w) @@ -1169,6 +1182,7 @@ g_signal_connect(G_OBJECT(intf_w->orage_file_save_button), "clicked" , G_CALLBACK(orage_file_save_button_clicked), intf_w); +#ifdef HAVE_ARCHIVE /***** archive file *****/ vbox = gtk_vbox_new(FALSE, 0); intf_w->archive_file_frame = xfce_create_framebox_with_content( @@ -1225,6 +1239,7 @@ , G_CALLBACK(archive_file_entry_changed), intf_w); g_signal_connect(G_OBJECT(intf_w->archive_file_save_button), "clicked" , G_CALLBACK(archive_file_save_button_clicked), intf_w); +#endif } static void create_foreign_file_tab(intf_win *intf_w) Modified: xfcalendar/trunk/src/interface.h =================================================================== --- xfcalendar/trunk/src/interface.h 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/src/interface.h 2007-12-11 21:58:58 UTC (rev 26458) @@ -50,10 +50,12 @@ GtkWidget *iea_exp_add_all_rb; GtkWidget *iea_exp_add_id_rb; GtkWidget *iea_exp_id_entry; +#ifdef HAVE_ARCHIVE /* archive */ GtkWidget *iea_arc_frame; GtkWidget *iea_arc_button1; GtkWidget *iea_arc_button2; +#endif /* Orage files tab */ GtkWidget *fil_notebook_page; Modified: xfcalendar/trunk/src/main.c =================================================================== --- xfcalendar/trunk/src/main.c 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/src/main.c 2007-12-11 21:58:58 UTC (rev 26458) @@ -172,9 +172,11 @@ gboolean keep_tidy(void) { +#ifdef HAVE_ARCHIVE /* move old appointment to other file to keep the active calendar file smaller and faster */ xfical_archive(); +#endif return TRUE; } Modified: xfcalendar/trunk/src/parameters.c =================================================================== --- xfcalendar/trunk/src/parameters.c 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/src/parameters.c 2007-12-11 21:58:58 UTC (rev 26458) @@ -58,8 +58,10 @@ GtkWidget *timezone_frame; GtkWidget *timezone_button; /* Archive period */ +#ifdef HAVE_ARCHIVE GtkWidget *archive_threshold_frame; GtkWidget *archive_threshold_spin; +#endif /* Choose the sound application for reminders */ GtkWidget *sound_application_frame; GtkWidget *sound_application_entry; @@ -330,11 +332,13 @@ xfical_set_local_timezone(); } +#ifdef HAVE_ARCHIVE static void archive_threshold_spin_changed(GtkSpinButton *sb , gpointer user_data) { g_par.archive_limit = gtk_spin_button_get_value(sb); } +#endif static void always_today_changed(GtkWidget *dialog, gpointer user_data) { @@ -409,6 +413,7 @@ g_signal_connect(G_OBJECT(dialog->timezone_button), "clicked" , G_CALLBACK(timezone_button_clicked), dialog); +#ifdef HAVE_ARCHIVE /* Choose archiving threshold */ hbox = gtk_hbox_new(FALSE, 0); dialog->archive_threshold_frame = @@ -426,6 +431,7 @@ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); g_signal_connect(G_OBJECT(dialog->archive_threshold_spin), "value-changed" , G_CALLBACK(archive_threshold_spin_changed), dialog); +#endif /* Choose a sound application for reminders */ hbox = gtk_hbox_new(FALSE, 0); @@ -769,8 +775,10 @@ return; } xfce_rc_write_entry(rc, "Timezone", g_par.local_timezone); +#ifdef HAVE_ARCHIVE xfce_rc_write_int_entry(rc, "Archive limit", g_par.archive_limit); xfce_rc_write_entry(rc, "Archive file", g_par.archive_file); +#endif xfce_rc_write_entry(rc, "Orage file", g_par.orage_file); xfce_rc_write_entry(rc, "Sound application", g_par.sound_application); gtk_window_get_position(GTK_WINDOW(g_par.xfcal->mWindow) @@ -835,9 +843,11 @@ } g_par.local_timezone = g_strdup(xfce_rc_read_entry(rc, "Timezone", "floating")); +#ifdef HAVE_ARCHIVE g_par.archive_limit = xfce_rc_read_int_entry(rc, "Archive limit", 0); g_par.archive_file = g_strdup(xfce_rc_read_entry(rc, "Archive file" , orage_resource_file_location(ORAGE_DIR ARCFILE))); +#endif g_par.orage_file = g_strdup(xfce_rc_read_entry(rc, "Orage file" , orage_resource_file_location(ORAGE_DIR APPFILE))); g_par.sound_application = Modified: xfcalendar/trunk/src/parameters.h =================================================================== --- xfcalendar/trunk/src/parameters.h 2007-12-11 19:30:45 UTC (rev 26457) +++ xfcalendar/trunk/src/parameters.h 2007-12-11 21:58:58 UTC (rev 26458) @@ -60,9 +60,11 @@ char *local_timezone; gboolean local_timezone_utc; +#ifdef HAVE_ARCHIVE /* archiving */ int archive_limit; char *archive_file; +#endif /* foreign files */ int foreign_count; _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits