[Xfce4-commits] r26653 - in xfcalendar/trunk: . libical/zoneinfo/America po src
Juha Kautto
juha at xfce.org
Sat Mar 1 14:16:37 CET 2008
Author: juha
Date: 2008-03-01 13:16:37 +0000 (Sat, 01 Mar 2008)
New Revision: 26653
Modified:
xfcalendar/trunk/configure.in.in
xfcalendar/trunk/libical/zoneinfo/America/Buenos_Aires.ics
xfcalendar/trunk/libical/zoneinfo/America/Catamarca.ics
xfcalendar/trunk/libical/zoneinfo/America/Cordoba.ics
xfcalendar/trunk/libical/zoneinfo/America/Jujuy.ics
xfcalendar/trunk/libical/zoneinfo/America/Mendoza.ics
xfcalendar/trunk/po/fi.po
xfcalendar/trunk/src/appointment.c
xfcalendar/trunk/src/appointment.h
xfcalendar/trunk/src/day-view.c
xfcalendar/trunk/src/event-list.c
xfcalendar/trunk/src/functions.c
xfcalendar/trunk/src/functions.h
xfcalendar/trunk/src/ical-code.c
xfcalendar/trunk/src/ical-code.h
xfcalendar/trunk/src/interface.c
xfcalendar/trunk/src/parameters.c
xfcalendar/trunk/src/parameters.h
xfcalendar/trunk/src/reminder.c
Log:
1) Added categories and made it possible to associate a colour to them.
Event list and Day list views show categories with the colour.
2) timezone fixes
3) combine some code:
- alarm list handling in libical and reminder
- data file handling: reminder, interface, parameters and functions
4) fixed small memory leak in event-list
Modified: xfcalendar/trunk/configure.in.in
===================================================================
--- xfcalendar/trunk/configure.in.in 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/configure.in.in 2008-03-01 13:16:37 UTC (rev 26653)
@@ -9,7 +9,7 @@
dnl
dnl Version information
-m4_define([orage_version], [4.5.12.10-svn])
+m4_define([orage_version], [4.5.13.0-svn])
m4_define([gtk_minimum_version], [2.6.0])
m4_define([xfce_minimum_version], [4.4.0])
Modified: xfcalendar/trunk/libical/zoneinfo/America/Buenos_Aires.ics
===================================================================
--- xfcalendar/trunk/libical/zoneinfo/America/Buenos_Aires.ics 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/libical/zoneinfo/America/Buenos_Aires.ics 2008-03-01 13:16:37 UTC (rev 26653)
@@ -5,8 +5,8 @@
TZID:/softwarestudio.org/Olson_20011030_5/America/Buenos_Aires
X-LIC-LOCATION:America/Buenos_Aires
BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
+TZOFFSETFROM:-0200
+TZOFFSETTO:-0200
TZNAME:ART
DTSTART:19700101T000000
END:STANDARD
Modified: xfcalendar/trunk/libical/zoneinfo/America/Catamarca.ics
===================================================================
--- xfcalendar/trunk/libical/zoneinfo/America/Catamarca.ics 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/libical/zoneinfo/America/Catamarca.ics 2008-03-01 13:16:37 UTC (rev 26653)
@@ -5,8 +5,8 @@
TZID:/softwarestudio.org/Olson_20011030_5/America/Catamarca
X-LIC-LOCATION:America/Catamarca
BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
+TZOFFSETFROM:-0200
+TZOFFSETTO:-0200
TZNAME:ART
DTSTART:19700101T000000
END:STANDARD
Modified: xfcalendar/trunk/libical/zoneinfo/America/Cordoba.ics
===================================================================
--- xfcalendar/trunk/libical/zoneinfo/America/Cordoba.ics 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/libical/zoneinfo/America/Cordoba.ics 2008-03-01 13:16:37 UTC (rev 26653)
@@ -5,8 +5,8 @@
TZID:/softwarestudio.org/Olson_20011030_5/America/Cordoba
X-LIC-LOCATION:America/Cordoba
BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
+TZOFFSETFROM:-0200
+TZOFFSETTO:-0200
TZNAME:ART
DTSTART:19700101T000000
END:STANDARD
Modified: xfcalendar/trunk/libical/zoneinfo/America/Jujuy.ics
===================================================================
--- xfcalendar/trunk/libical/zoneinfo/America/Jujuy.ics 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/libical/zoneinfo/America/Jujuy.ics 2008-03-01 13:16:37 UTC (rev 26653)
@@ -5,8 +5,8 @@
TZID:/softwarestudio.org/Olson_20011030_5/America/Jujuy
X-LIC-LOCATION:America/Jujuy
BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
+TZOFFSETFROM:-0200
+TZOFFSETTO:-0200
TZNAME:ART
DTSTART:19700101T000000
END:STANDARD
Modified: xfcalendar/trunk/libical/zoneinfo/America/Mendoza.ics
===================================================================
--- xfcalendar/trunk/libical/zoneinfo/America/Mendoza.ics 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/libical/zoneinfo/America/Mendoza.ics 2008-03-01 13:16:37 UTC (rev 26653)
@@ -5,8 +5,8 @@
TZID:/softwarestudio.org/Olson_20011030_5/America/Mendoza
X-LIC-LOCATION:America/Mendoza
BEGIN:STANDARD
-TZOFFSETFROM:-0300
-TZOFFSETTO:-0300
+TZOFFSETFROM:-0200
+TZOFFSETTO:-0200
TZNAME:ART
DTSTART:19700101T000000
END:STANDARD
Modified: xfcalendar/trunk/po/fi.po
===================================================================
--- xfcalendar/trunk/po/fi.po 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/po/fi.po 2008-03-01 13:16:37 UTC (rev 26653)
@@ -1066,7 +1066,8 @@
"\t\tW=viikoittain, M=kuukausittain, Y=vuosittain\n"
"\t 3. Tyyppi: f=vapaa, B=varattu\n"
"\t 4. Tiedostossa: O=Orage\n"
-"\t\t A=Arkisto F=Vieras\t 5. Tapahtuman tyyppi:\n"
+"\t\t A=Arkisto F=Vieras\n"
+"\t 5. Tapahtuman tyyppi:\n"
"\t\tE=Tapahtuma T=Tehtävä J=Muistiinpano"
#: ../src/functions.c:145
Modified: xfcalendar/trunk/src/appointment.c
===================================================================
--- xfcalendar/trunk/src/appointment.c 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/appointment.c 2008-03-01 13:16:37 UTC (rev 26653)
@@ -29,6 +29,7 @@
#include <sys/types.h>
#include <sys/stat.h>
+#include <fcntl.h>
#include <unistd.h>
#include <locale.h>
#include <time.h>
@@ -41,9 +42,12 @@
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
+#include <glib.h>
#include <glib/gprintf.h>
+#include <glib/gstdio.h>
#include <libxfcegui4/libxfcegui4.h>
+#include <libxfce4util/libxfce4util.h>
#include "functions.h"
#include "mainbox.h"
@@ -57,6 +61,27 @@
#define FILETYPE_SIZE 38
+typedef struct _orage_category_win
+{
+ GtkWidget *window;
+ GtkWidget *vbox;
+
+ GtkWidget *new_frame;
+ GtkWidget *new_entry;
+ GtkWidget *new_color_button;
+ GtkWidget *new_add_button;
+
+ GtkWidget *cur_frame;
+ GtkWidget *cur_frame_vbox;
+
+ GtkTooltips *tooltips;
+ GtkAccelGroup *accelgroup;
+
+ gpointer *apptw;
+} category_win_struct;
+
+static void refresh_categories(category_win_struct *catw);
+
static void fill_appt_window(appt_win *apptw, char *action, char *par);
/*
* the previous and the following are the main functions in this file
@@ -750,7 +775,7 @@
struct tm current_t;
gchar starttime[6], endtime[6], completedtime[6];
gint i, j, k;
- gchar *tmp;
+ gchar *tmp, *tmp2;
/* Next line is fix for bug 2811.
* We need to make sure spin buttons do not have values which are not
@@ -859,6 +884,21 @@
appt->availability = gtk_combo_box_get_active(
GTK_COMBO_BOX(apptw->Availability_cb));
+ /* categories */
+ tmp = g_strdup(gtk_entry_get_text(GTK_ENTRY(apptw->Categories_entry)));
+ tmp2 = gtk_combo_box_get_active_text(GTK_COMBO_BOX(apptw->Categories_cb));
+ if (!strcmp(tmp2, _("Not set"))) {
+ g_free(tmp2);
+ tmp2 = NULL;
+ }
+ if (tmp) {
+ appt->categories = g_strjoin(",", tmp, tmp2, NULL);
+ g_free(tmp);
+ g_free(tmp2);
+ }
+ else
+ appt->categories = tmp2;
+
/* notes */
gtk_text_buffer_get_bounds(apptw->Note_buffer, &start, &end);
appt->note = gtk_text_iter_get_text(&start, &end);
@@ -1370,7 +1410,7 @@
/* default alarm type is orage window and sound */
appt->display_alarm_orage = TRUE;
- appt->sound_alarm = TRUE;
+ appt->sound_alarm = TRUE;
/* default sound file is set in fill_appt_window */
}
else if ((strcmp(action, "UPDATE") == 0) || (strcmp(action, "COPY") == 0)) {
@@ -1396,6 +1436,379 @@
return(appt);
}
+/************************************************************/
+/* categories start. this will go to functions.c when ready */
+/************************************************************/
+
+#define ORAGE_CATEGORIES "orage_categories.txt"
+#define ORAGE_COLOR_FORMAT "%uR %uG %uB"
+
+XfceRc *orage_category_file_open(gboolean read_only)
+{
+ gchar *fpath;
+ XfceRc *rc;
+
+ fpath = orage_data_file_location(ORAGE_CATEGORIES);
+ if (!fpath) {
+ g_warning("orage_category_file_open: category filename build failed (%s)\n", fpath);
+ return(NULL);
+ }
+ if ((rc = xfce_rc_simple_open(fpath, read_only)) == NULL) {
+ g_warning("Unable to open RC file.");
+ /* let's try to build it if we opened in read mode */
+ if (read_only && (rc = xfce_rc_simple_open(fpath, FALSE)) == NULL) {
+ /* still failed, can't do more */
+ g_warning("Unable to open (write) RC file.");
+ return(NULL);
+ }
+ }
+
+ g_free(fpath);
+ return(rc);
+}
+
+void orage_category_file_close(XfceRc *rc)
+{
+ xfce_rc_close(rc);
+}
+
+typedef struct _orage_category
+{
+ gchar *category;
+ GdkColor color;
+} orage_category_struct;
+
+
+GList *orage_category_list = NULL;
+
+GdkColor *orage_category_list_contains(char *categories)
+{
+ GList *cat_l;
+ orage_category_struct *cat;
+
+ if (categories == NULL)
+ return(NULL);
+ cat_l = orage_category_list;
+ for (cat_l = g_list_first(cat_l);
+ cat_l != NULL;
+ cat_l = g_list_next(cat_l)) {
+ cat = (orage_category_struct *)cat_l->data;
+ if (g_str_has_suffix(categories, cat->category)) {
+ return(&cat->color);
+ }
+ }
+ /* not found */
+ return(NULL);
+}
+
+void orage_category_free(gpointer gcat, gpointer dummy)
+{
+ orage_category_struct *cat = (orage_category_struct *)gcat;
+
+ g_free(cat->category);
+ g_free(cat);
+}
+
+void orage_category_free_list()
+{
+ g_list_foreach(orage_category_list, orage_category_free, NULL);
+ g_list_free(orage_category_list);
+ orage_category_list = NULL;
+}
+
+void orage_category_get_list()
+{
+ XfceRc *rc;
+ gchar **cat_groups, *color;
+ gint i;
+ orage_category_struct *cat;
+ GdkColormap *pic1_cmap;
+
+ if (orage_category_list != NULL)
+ orage_category_free_list();
+ pic1_cmap = gdk_colormap_get_system();
+ rc = orage_category_file_open(TRUE);
+ cat_groups = xfce_rc_get_groups(rc);
+ for (i=1; cat_groups[i] != NULL; i++) {
+ xfce_rc_set_group(rc, cat_groups[i]);
+ color = (char *)xfce_rc_read_entry(rc, "Color", NULL);
+ if (color) {
+ cat= g_new(orage_category_struct, 1);
+ cat->category = g_strdup(cat_groups[i]);
+ sscanf(color, ORAGE_COLOR_FORMAT, &(cat->color.red)
+ , &(cat->color.green), &(cat->color.blue));
+ gdk_colormap_alloc_color(pic1_cmap, &cat->color, FALSE, TRUE);
+ orage_category_list = g_list_prepend(orage_category_list, cat);
+ }
+ }
+ g_strfreev(cat_groups);
+ orage_category_file_close(rc);
+}
+
+gboolean category_fill_cb(GtkComboBox *cb, char *select)
+{
+ XfceRc *rc;
+ gchar **cat_gourps;
+ gint i;
+ gboolean found=FALSE;
+
+ rc = orage_category_file_open(TRUE);
+ cat_gourps = xfce_rc_get_groups(rc);
+ /* cat_gourps[0] is special [NULL] entry always */
+ gtk_combo_box_append_text(cb, _("Not set"));
+ gtk_combo_box_set_active(cb, 0);
+ for (i=1; cat_gourps[i] != NULL; i++) {
+ gtk_combo_box_append_text(cb, (const gchar *)cat_gourps[i]);
+ if (!found && select && !strcmp(select, cat_gourps[i])) {
+ gtk_combo_box_set_active(cb, i);
+ found = TRUE;
+ }
+ }
+ g_strfreev(cat_gourps);
+ orage_category_file_close(rc);
+ return(found);
+}
+
+void orage_category_refill_cb(appt_win *apptw)
+{
+ gchar *tmp;
+
+ /* first remember the currently selected value */
+ tmp = gtk_combo_box_get_active_text(GTK_COMBO_BOX(apptw->Categories_cb));
+
+ /* then clear the values by removing the widget and putting it back */
+ gtk_widget_destroy(apptw->Categories_cb);
+ apptw->Categories_cb = gtk_combo_box_new_text();
+ gtk_container_add(GTK_CONTAINER(apptw->Categories_cb_event)
+ , apptw->Categories_cb);
+
+ /* and finally fill it with new values */
+ category_fill_cb(GTK_COMBO_BOX(apptw->Categories_cb), tmp);
+
+ g_free(tmp);
+ gtk_widget_show(apptw->Categories_cb);
+}
+
+void fill_category_data(appt_win *apptw, xfical_appt *appt)
+{
+ gchar *tmp = NULL;
+
+ /* first search the last entry. which is the special color value */
+ if (appt->categories) {
+ tmp = g_strrstr(appt->categories, ",");
+ if (!tmp) /* , not found, let's take the whole string */
+ tmp = appt->categories;
+ while (*(tmp) == ' ' || *(tmp) == ',') /* skip blanks and , */
+ tmp++;
+ }
+ if (category_fill_cb(GTK_COMBO_BOX(apptw->Categories_cb), tmp)) {
+ /* we found match. Let's try to hide that from the entry text */
+ while (tmp != appt->categories
+ && (*(tmp-1) == ' ' || *(tmp-1) == ','))
+ tmp--;
+ *tmp = '\0'; /* note that this goes to appt->categories */
+ }
+ gtk_entry_set_text(GTK_ENTRY(apptw->Categories_entry)
+ , (appt->categories ? appt->categories : ""));
+}
+
+void orage_category_write_entry(gchar *category, GdkColor *color)
+{
+ XfceRc *rc;
+ char *color_str;
+
+ if (!ORAGE_STR_EXISTS(category)) {
+ orage_message(50, "orage_category_write_entry: empty category. Not written");
+ return;
+ }
+ color_str = g_strdup_printf(ORAGE_COLOR_FORMAT
+ , color->red, color->green, color->blue);
+ rc = orage_category_file_open(FALSE);
+ xfce_rc_set_group(rc, category);
+ xfce_rc_write_entry(rc, "Color", color_str);
+ g_free(color_str);
+ orage_category_file_close(rc);
+}
+
+static void orage_category_remove_entry(gchar *category)
+{
+ XfceRc *rc;
+
+ if (!ORAGE_STR_EXISTS(category)) {
+ orage_message(50, "orage_category_write_entry: empty category. Not removed");
+ return;
+ }
+ rc = orage_category_file_open(FALSE);
+ xfce_rc_delete_group(rc, category, FALSE);
+ orage_category_file_close(rc);
+}
+
+static void close_cat_window(gpointer user_data)
+{
+ category_win_struct *catw = (category_win_struct *)user_data;
+
+ orage_category_refill_cb((appt_win *)catw->apptw);
+ gtk_widget_destroy(catw->window);
+ gtk_object_destroy(GTK_OBJECT(catw->tooltips));
+ g_free(catw);
+}
+
+static gboolean on_cat_window_delete_event(GtkWidget *w, GdkEvent *e
+ , gpointer user_data)
+{
+ close_cat_window(user_data);
+ return(FALSE);
+}
+
+static void cat_add_button_clicked(GtkButton *button, gpointer user_data)
+{
+ category_win_struct *catw = (category_win_struct *)user_data;
+ gchar *entry_category;
+ GdkColor color;
+
+ entry_category = g_strdup(gtk_entry_get_text((GtkEntry *)catw->new_entry));
+ g_strstrip(entry_category);
+ gtk_color_button_get_color((GtkColorButton *)catw->new_color_button
+ , &color);
+ orage_category_write_entry(entry_category, &color);
+ g_free(entry_category);
+ refresh_categories(catw);
+}
+
+static void cat_color_button_changed(GtkColorButton *color_button
+ , gpointer user_data)
+{
+ category_win_struct *catw = (category_win_struct *)user_data;
+ gchar *category;
+ GdkColor color;
+
+ category = g_object_get_data(G_OBJECT(color_button), "CATEGORY");
+ gtk_color_button_get_color(color_button, &color);
+ orage_category_write_entry(category, &color);
+}
+
+static void cat_del_button_clicked(GtkButton *button, gpointer user_data)
+{
+ category_win_struct *catw = (category_win_struct *)user_data;
+ gchar *category;
+
+ category = g_object_get_data(G_OBJECT(button), "CATEGORY");
+ orage_category_remove_entry(category);
+ refresh_categories(catw);
+}
+
+static void show_category(gpointer elem, gpointer user_data)
+{
+ orage_category_struct *cat = (orage_category_struct *)elem;
+ category_win_struct *catw = (category_win_struct *)user_data;
+ GtkWidget *label, *hbox, *button, *color_button;
+
+ hbox = gtk_hbox_new(FALSE, 0);
+ label = gtk_label_new(cat->category);
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 5);
+
+ color_button = gtk_color_button_new_with_color(&cat->color);
+ gtk_box_pack_start(GTK_BOX(hbox), color_button, FALSE, FALSE, 5);
+ g_object_set_data_full(G_OBJECT(color_button), "CATEGORY"
+ , g_strdup(cat->category), g_free);
+ g_signal_connect((gpointer)color_button, "color-set"
+ , G_CALLBACK(cat_color_button_changed), catw);
+
+ button = gtk_button_new_from_stock("gtk-remove");
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5);
+ g_object_set_data_full(G_OBJECT(button), "CATEGORY"
+ , g_strdup(cat->category), g_free);
+ g_signal_connect((gpointer)button, "clicked"
+ , G_CALLBACK(cat_del_button_clicked), catw);
+
+ gtk_box_pack_start(GTK_BOX(catw->cur_frame_vbox), hbox, FALSE, FALSE, 5);
+}
+
+static void refresh_categories(category_win_struct *catw)
+{
+ GtkWidget *swin;
+
+ gtk_widget_destroy(catw->cur_frame);
+
+ catw->cur_frame_vbox = gtk_vbox_new(FALSE, 0);
+ swin = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin)
+ , GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(swin)
+ , catw->cur_frame_vbox);
+ catw->cur_frame = xfce_create_framebox_with_content(
+ _("Current categories"), swin);
+ gtk_box_pack_start(GTK_BOX(catw->vbox), catw->cur_frame, TRUE, TRUE, 5);
+
+ orage_category_get_list();
+ g_list_foreach(orage_category_list, show_category, catw);
+ gtk_widget_show_all(catw->cur_frame);
+}
+
+static void create_cat_win(category_win_struct *catw)
+{
+ GtkWidget *label, *hbox, *vbox;
+
+ /***** New category *****/
+ vbox = gtk_vbox_new(FALSE, 0);
+ catw->new_frame = xfce_create_framebox_with_content(
+ _("Add new category with color"), vbox);
+ gtk_box_pack_start(GTK_BOX(catw->vbox), catw->new_frame, FALSE, FALSE, 5);
+
+ hbox = gtk_hbox_new(FALSE, 0);
+ label = gtk_label_new(_("Category:"));
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
+ catw->new_entry = gtk_entry_new();
+ gtk_box_pack_start(GTK_BOX(hbox), catw->new_entry, TRUE, TRUE, 0);
+ catw->new_color_button = gtk_color_button_new();
+ gtk_box_pack_start(GTK_BOX(hbox), catw->new_color_button, FALSE, FALSE, 5);
+ catw->new_add_button = gtk_button_new_from_stock("gtk-add");
+ gtk_box_pack_start(GTK_BOX(hbox), catw->new_add_button, FALSE, FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ g_signal_connect((gpointer)catw->new_add_button, "clicked"
+ , G_CALLBACK(cat_add_button_clicked), catw);
+
+ /***** Current categories *****/
+ /* refresh_categories always destroys frame first, so let's create
+ * a dummy for it for the first time */
+ vbox = gtk_vbox_new(FALSE, 0);
+ catw->cur_frame = xfce_create_framebox_with_content(("dummy"), vbox);
+ refresh_categories(catw);
+}
+
+static void on_categories_button_clicked_cb(GtkWidget *button
+ , gpointer *user_data)
+{
+ appt_win *apptw = (appt_win *)user_data;
+ category_win_struct *catw;
+
+ catw = g_new(category_win_struct, 1);
+ catw->apptw = (gpointer)apptw; /* remember the caller */
+ catw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_modal(GTK_WINDOW(catw->window), TRUE);
+ gtk_window_set_title(GTK_WINDOW(catw->window)
+ , _("Colors of categories - Orage"));
+ gtk_window_set_default_size(GTK_WINDOW(catw->window), 390, 360);
+
+ catw->tooltips = gtk_tooltips_new();
+ catw->accelgroup = gtk_accel_group_new();
+ gtk_window_add_accel_group(GTK_WINDOW(catw->window), catw->accelgroup);
+
+ catw->vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(catw->window), catw->vbox);
+
+ create_cat_win(catw);
+
+ g_signal_connect((gpointer)catw->window, "delete_event",
+ G_CALLBACK(on_cat_window_delete_event), catw);
+ gtk_widget_show_all(catw->window);
+}
+
+/**********************************************************/
+/* categories end. */
+/**********************************************************/
+
/* Fill appointment window with data */
static void fill_appt_window(appt_win *apptw, char *action, char *par)
{
@@ -1404,6 +1817,7 @@
struct tm *t, tm_date;
char *untildate_to_display, *tmp;
int i;
+ GdkColor color;
orage_message(30, "%s appointment: %s", action, par);
if ((appt = fill_appt_window_get_appt(apptw, action, par)) == NULL) {
@@ -1470,10 +1884,10 @@
, (appt->title ? appt->title : ""));
if (strcmp(action, "COPY") == 0) {
- gtk_editable_set_position(GTK_EDITABLE(apptw->Title_entry), -1);
- i = gtk_editable_get_position(GTK_EDITABLE(apptw->Title_entry));
- gtk_editable_insert_text(GTK_EDITABLE(apptw->Title_entry)
- , _(" *** COPY ***"), strlen(_(" *** COPY ***")), &i);
+ gtk_editable_set_position(GTK_EDITABLE(apptw->Title_entry), -1);
+ i = gtk_editable_get_position(GTK_EDITABLE(apptw->Title_entry));
+ gtk_editable_insert_text(GTK_EDITABLE(apptw->Title_entry)
+ , _(" *** COPY ***"), strlen(_(" *** COPY ***")), &i);
}
/* location */
@@ -1489,6 +1903,9 @@
, appt->availability);
}
+ /* categories */
+ fill_category_data(apptw, appt);
+
/* note */
gtk_text_buffer_set_text(apptw->Note_buffer
, (appt->note ? (const gchar *) appt->note : ""), -1);
@@ -1754,7 +2171,7 @@
GtkWidget *label, *event, *hbox;
char *availability_array[2] = {_("Free"), _("Busy")};
- apptw->TableGeneral = orage_table_new(10, BORDER_SIZE);
+ apptw->TableGeneral = orage_table_new(11, BORDER_SIZE);
apptw->General_notebook_page = apptw->TableGeneral;
apptw->General_tab_label = gtk_label_new(_("General"));
@@ -1891,6 +2308,29 @@
, apptw->Completed_label, apptw->Completed_hbox
, ++row, (GTK_FILL), (GTK_FILL));
+ /* categories */
+ apptw->Categories_label = gtk_label_new(_("Categories"));
+ apptw->Categories_hbox = gtk_hbox_new(FALSE, 0);
+ apptw->Categories_entry = gtk_entry_new();
+ gtk_box_pack_start(GTK_BOX(apptw->Categories_hbox), apptw->Categories_entry
+ , TRUE, TRUE, 0);
+ apptw->Categories_cb = gtk_combo_box_new_text();
+ apptw->Categories_cb_event = gtk_event_box_new(); /* needed for tooltips */
+ gtk_container_add(GTK_CONTAINER(apptw->Categories_cb_event)
+ , apptw->Categories_cb);
+ gtk_box_pack_start(GTK_BOX(apptw->Categories_hbox)
+ , apptw->Categories_cb_event, FALSE, FALSE, 4);
+ gtk_tooltips_set_tip(apptw->Tooltips, apptw->Categories_cb_event
+ , _("This is special category, which can be used to color this appointment in list views."), NULL);
+ apptw->Categories_button =gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR);
+ gtk_box_pack_start(GTK_BOX(apptw->Categories_hbox), apptw->Categories_button
+ , FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(apptw->Tooltips, apptw->Categories_button
+ , _("update colors for categories."), NULL);
+ orage_table_add_row(apptw->TableGeneral
+ , apptw->Categories_label, apptw->Categories_hbox
+ , ++row, (GTK_EXPAND | GTK_FILL), (0));
+
/* note */
apptw->Note = gtk_label_new(_("Note"));
apptw->Note_Scrolledwindow = gtk_scrolled_window_new(NULL, NULL);
@@ -1955,14 +2395,17 @@
, G_CALLBACK(on_app_spin_button_changed_cb), apptw);
g_signal_connect((gpointer)apptw->CompletedTimezone_button, "clicked"
, G_CALLBACK(on_appCompletedTimezone_clicked_cb), apptw);
- /* Take care of the title entry to build the appointment window title
- * Beware: we are not using apptw->Title_entry as a GtkEntry here
- * but as an interface GtkEditable instead.
- */
+ /* Take care of the title entry to build the appointment window title */
g_signal_connect((gpointer)apptw->Title_entry, "changed"
, G_CALLBACK(on_appTitle_entry_changed_cb), apptw);
g_signal_connect((gpointer)apptw->Location_entry, "changed"
, G_CALLBACK(on_app_entry_changed_cb), apptw);
+ g_signal_connect((gpointer)apptw->Categories_entry, "changed"
+ , G_CALLBACK(on_app_entry_changed_cb), apptw);
+ g_signal_connect((gpointer)apptw->Categories_cb, "changed"
+ , G_CALLBACK(on_app_combobox_changed_cb), apptw);
+ g_signal_connect((gpointer)apptw->Categories_button, "clicked"
+ , G_CALLBACK(on_categories_button_clicked_cb), apptw);
g_signal_connect((gpointer)apptw->Availability_cb, "changed"
, G_CALLBACK(on_app_combobox_changed_cb), apptw);
g_signal_connect((gpointer)apptw->Note_buffer, "changed"
Modified: xfcalendar/trunk/src/appointment.h
===================================================================
--- xfcalendar/trunk/src/appointment.h 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/appointment.h 2008-03-01 13:16:37 UTC (rev 26653)
@@ -94,6 +94,12 @@
GtkWidget *CompletedTimezone_button;
GtkWidget *Availability_label;
GtkWidget *Availability_cb;
+ GtkWidget *Categories_label;
+ GtkWidget *Categories_hbox;
+ GtkWidget *Categories_entry;
+ GtkWidget *Categories_cb;
+ GtkWidget *Categories_cb_event;
+ GtkWidget *Categories_button;
GtkWidget *Note;
GtkWidget *Note_Scrolledwindow;
GtkWidget *Note_textview;
@@ -183,4 +189,7 @@
appt_win *create_appt_win(char *action, char *par);
+GdkColor *orage_category_list_contains(char *categories);
+void orage_category_get_list();
+
#endif /* !__APPOINTMENT_H__ */
Modified: xfcalendar/trunk/src/day-view.c
===================================================================
--- xfcalendar/trunk/src/day-view.c 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/day-view.c 2008-03-01 13:16:37 UTC (rev 26653)
@@ -418,6 +418,7 @@
gchar *text, *tip, *start_date, *end_date;
GtkWidget *ev, *lab, *hb;
struct tm tm_start, tm_end, tm_first;
+ GdkColor *color;
/* First clarify timings */
tm_start = orage_icaltime_to_tm_time(appt->starttimecur, FALSE);
@@ -443,30 +444,39 @@
if (appt->starttimecur[8] != 'T') { /* whole day event */
gtk_widget_modify_bg(ev, GTK_STATE_NORMAL, &dw->bg2);
- if (dw->header[col] == NULL)
- hb = gtk_hbox_new(TRUE, 1);
- else
+ if (dw->header[col] == NULL) { /* first data */
+ hb = gtk_hbox_new(TRUE, 3);
+ dw->header[col] = hb;
+ }
+ else {
hb = dw->header[col];
+ /* FIXME: set some real bar here to make it visible that we
+ * have more than 1 appointment here
+ */
+ }
tip = g_strdup_printf("%s\n%s - %s\n%s"
- , appt->title
- , appt->starttimecur
- , appt->endtimecur
+ , appt->title, appt->starttimecur, appt->endtimecur
, appt->note);
- dw->header[col] = hb;
}
else {
- if ((row % 2) == 1)
+ if ((color = orage_category_list_contains(appt->categories)) != NULL)
+ gtk_widget_modify_bg(ev, GTK_STATE_NORMAL, color);
+ else if ((row % 2) == 1)
gtk_widget_modify_bg(ev, GTK_STATE_NORMAL, &dw->bg1);
- if (dw->element[row][col] == NULL)
- hb = gtk_hbox_new(TRUE, 1);
- else
+ if (dw->element[row][col] == NULL) {
+ hb = gtk_hbox_new(TRUE, 3);
+ dw->element[row][col] = hb;
+ }
+ else {
hb = dw->element[row][col];
+ /* FIXME: set some real bar here to make it visible that we
+ * have more than 1 appointment here
+ */
+ }
if (orage_days_between(&tm_start, &tm_end) == 0)
tip = g_strdup_printf("%s\n%02d:%02d-%02d:%02d\n%s"
- , appt->title
- , tm_start.tm_hour, tm_start.tm_min
- , tm_end.tm_hour, tm_end.tm_min
- , appt->note);
+ , appt->title, tm_start.tm_hour, tm_start.tm_min
+ , tm_end.tm_hour, tm_end.tm_min, appt->note);
else {
/* we took the date in unnormalized format, so we need to do that now */
tm_start.tm_year -= 1900;
@@ -483,7 +493,6 @@
g_free(start_date);
g_free(end_date);
}
- dw->element[row][col] = hb;
}
gtk_tooltips_set_tip(dw->Tooltips, ev, tip, NULL);
/*
@@ -774,6 +783,7 @@
guint monthdays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
GtkWidget *vp;
+ orage_category_get_list();
days = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(dw->day_spin));
tm_date = orage_i18_date_to_tm_date(
gtk_button_get_label(GTK_BUTTON(dw->StartDate_button)));
Modified: xfcalendar/trunk/src/event-list.c
===================================================================
--- xfcalendar/trunk/src/event-list.c 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/event-list.c 2008-03-01 13:16:37 UTC (rev 26653)
@@ -63,6 +63,7 @@
#include "tray_icon.h"
#include "day-view.h"
+#define BORDER_SIZE 10
enum {
COL_TIME = 0
@@ -70,6 +71,7 @@
,COL_HEAD
,COL_UID
,COL_SORT
+ ,CAL_CATEGORIES
,NUM_COLS
};
@@ -215,6 +217,24 @@
return(result);
}
+static void flags_data_func(GtkTreeViewColumn *col, GtkCellRenderer *rend
+ , GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
+{
+ gchar *categories;
+ GdkColor *color;
+
+ gtk_tree_model_get(model, iter, CAL_CATEGORIES, &categories, -1);
+ if ((color = orage_category_list_contains(categories)) == NULL)
+ g_object_set(rend
+ , "background-set", FALSE
+ , NULL);
+ else
+ g_object_set(rend
+ , "background-gdk", color
+ , "background-set", TRUE
+ , NULL);
+}
+
static void start_time_data_func(GtkTreeViewColumn *col, GtkCellRenderer *rend
, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
{
@@ -272,6 +292,7 @@
, "weight-set", TRUE
, NULL);
}
+ g_free(stime);
}
else if (el->page == TODO_PAGE) {
gtk_tree_model_get(model, iter, COL_SORT, &stime, -1);
@@ -310,6 +331,7 @@
, "weight-set", TRUE
, NULL);
}
+ g_free(stime);
}
else {
g_object_set(rend
@@ -393,6 +415,7 @@
, COL_HEAD, title
, COL_UID, appt->uid
, COL_SORT, s_sort1
+ , CAL_CATEGORIES, appt->categories
, -1);
g_free(title);
g_free(s_sort1);
@@ -577,6 +600,7 @@
void refresh_el_win(el_win *el)
{
+ orage_category_get_list();
if (el->Window && el->ListStore && el->TreeView) {
gtk_list_store_clear(el->ListStore);
el->page = gtk_notebook_get_current_page(GTK_NOTEBOOK(el->Notebook));
@@ -1096,7 +1120,8 @@
GtkWidget *label, *hbox;
el->event_tab_label = gtk_label_new(_("Event"));
- el->event_notebook_page = orage_table_new(2, 10);
+ /* FIXME: remove these tables, which are not needed anymore */
+ el->event_notebook_page = orage_table_new(1, BORDER_SIZE);
label = gtk_label_new(_("Extra days to show "));
hbox = gtk_hbox_new(FALSE, 0);
@@ -1116,7 +1141,8 @@
static void build_todo_tab(el_win *el)
{
el->todo_tab_label = gtk_label_new(_("Todo"));
- el->todo_notebook_page = orage_table_new(2, 10);
+ /* FIXME: remove these tables, which are not needed anymore */
+ el->todo_notebook_page = orage_table_new(1, BORDER_SIZE);
gtk_notebook_append_page(GTK_NOTEBOOK(el->Notebook)
, el->todo_notebook_page, el->todo_tab_label);
@@ -1130,7 +1156,8 @@
gchar *sdate;
el->journal_tab_label = gtk_label_new(_("Journal"));
- el->journal_notebook_page = orage_table_new(2, 10);
+ /* FIXME: remove these tables, which are not needed anymore */
+ el->journal_notebook_page = orage_table_new(1, BORDER_SIZE);
label = gtk_label_new(_("Journal entries starting from:"));
hbox = gtk_hbox_new(FALSE, 0);
@@ -1158,7 +1185,8 @@
GtkWidget *label;
el->search_tab_label = gtk_label_new(_("Search"));
- el->search_notebook_page = orage_table_new(1, 10);
+ /* FIXME: remove these tables, which are not needed anymore */
+ el->search_notebook_page = orage_table_new(1, BORDER_SIZE);
label = gtk_label_new(_("Search text "));
el->search_entry = gtk_entry_new();
@@ -1199,7 +1227,7 @@
/* Tree view */
el->ListStore = gtk_list_store_new(NUM_COLS
, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING
- , G_TYPE_STRING);
+ , G_TYPE_STRING, G_TYPE_STRING);
el->TreeView = gtk_tree_view_new();
gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(el->TreeView), TRUE);
@@ -1229,6 +1257,8 @@
col = gtk_tree_view_column_new_with_attributes( _("Flags"), rend
, "text", COL_FLAGS
, NULL);
+ gtk_tree_view_column_set_cell_data_func(col, rend, flags_data_func
+ , el, NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(el->TreeView), col);
rend = gtk_cell_renderer_text_new();
@@ -1251,6 +1281,13 @@
gtk_tree_view_append_column(GTK_TREE_VIEW(el->TreeView), col);
gtk_tree_view_column_set_visible(col, FALSE);
+ rend = gtk_cell_renderer_text_new();
+ col = gtk_tree_view_column_new_with_attributes("cat", rend
+ , "text", CAL_CATEGORIES
+ , NULL);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(el->TreeView), col);
+ gtk_tree_view_column_set_visible(col, FALSE);
+
gtk_tooltips_set_tip(el->Tooltips, el->TreeView, _("Double click line to edit it.\n\nFlags in order:\n\t 1. Alarm: n=no alarm\n\t\t A=visual Alarm S=also Sound alarm\n\t 2. Recurrence: n=no recurrence\n\t\t D=Daily W=Weekly M=Monthly Y=Yearly\n\t 3. Type: f=free B=Busy\n\t 4. Located in file:\n\t\tO=Orage A=Archive F=Foreign\n\t 5. Appointment type:\n\t\tE=Event T=Todo J=Journal"), NULL);
g_signal_connect(el->TreeView, "row-activated",
Modified: xfcalendar/trunk/src/functions.c
===================================================================
--- xfcalendar/trunk/src/functions.c 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/functions.c 2008-03-01 13:16:37 UTC (rev 26653)
@@ -36,9 +36,7 @@
#include <gtk/gtk.h>
#include <gdk/gdk.h>
-/*
#include <libxfce4util/libxfce4util.h>
-*/
#include "orage-i18n.h"
#include "functions.h"
@@ -106,21 +104,6 @@
g_free(formatted);
}
-/*
-void orage_message(const char *format, ...)
-{
- va_list args;
- char *formatted, *str;
-
- va_start(args, format);
- formatted = g_strdup_vprintf(format, args);
- va_end(args);
-
- g_message("Orage **: %s", formatted);
- g_free(formatted);
-}
-*/
-
GtkWidget *orage_create_combo_box_with_content(char *text[], int size)
{
register int i;
@@ -504,3 +487,13 @@
t = orage_localtime();
orage_select_date(cal, t->tm_year+1900, t->tm_mon, t->tm_mday);
}
+
+gchar *orage_data_file_location(char *name)
+{
+ char *file_name, *dir_name;
+
+ dir_name = g_strconcat(ORAGE_DIR, name, NULL);
+ file_name = xfce_resource_save_location(XFCE_RESOURCE_DATA, dir_name, TRUE);
+ g_free(dir_name);
+ return(file_name);
+}
Modified: xfcalendar/trunk/src/functions.h
===================================================================
--- xfcalendar/trunk/src/functions.h 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/functions.h 2008-03-01 13:16:37 UTC (rev 26653)
@@ -29,6 +29,11 @@
#define XFICAL_APPT_DATE_FORMAT "%04d%02d%02d"
#define XFICAL_APPT_DATE_FORMAT_LEN 9
+#define ORAGE_DIR "orage" G_DIR_SEPARATOR_S
+#define ORAGE_PARFILE "oragerc"
+#define ORAGE_APPFILE "orage.ics"
+#define ORAGE_ARCFILE "orage_archive.ics"
+
#define ORAGE_STR_EXISTS(str) ((str != NULL) && (str[0] != 0))
void orage_message(gint level, const char *format, ...);
@@ -72,4 +77,6 @@
void orage_select_date(GtkCalendar *cal, guint year, guint month, guint day);
void orage_select_today(GtkCalendar *cal);
+gchar *orage_data_file_location(char *name);
+
#endif /* !__ORAGE_FUNCTIONS_H__ */
Modified: xfcalendar/trunk/src/ical-code.c
===================================================================
--- xfcalendar/trunk/src/ical-code.c 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/ical-code.c 2008-03-01 13:16:37 UTC (rev 26653)
@@ -909,9 +909,24 @@
#endif
itime_tz = icalproperty_get_first_parameter(p, ICAL_TZID_PARAMETER);
if (itime_tz) {
- tz_loc = (char *) icalparameter_get_tzid(itime_tz);
- l_icaltimezone = icaltimezone_get_builtin_timezone(tz_loc);
- if (!l_icaltimezone) {
+ tz_loc = (char *)icalparameter_get_tzid(itime_tz);
+ if (tz_loc[0] == '/') {
+ /* FIXME: this should be in import and in get data
+ * This probably is evolution format,
+ * which has /xxx/xxx/timezone and we should remove the
+ * extra /xxx/xxx/ from it */
+ char **new_str;
+
+ orage_message(-20, P_N "evolution timezone fix %s", tz_loc);
+ new_str = g_strsplit(tz_loc, "/", 4);
+ if (new_str[0] != NULL && new_str[1] != NULL && new_str[2] != NULL
+ && new_str[3] != NULL)
+ l_icaltimezone = icaltimezone_get_builtin_timezone(new_str[3]);
+ g_strfreev(new_str);
+ }
+ else
+ l_icaltimezone = icaltimezone_get_builtin_timezone(tz_loc);
+ if (!l_icaltimezone) {
orage_message(250, P_N "builtin timezone %s not found, conversion failed.", tz_loc);
}
tz = icaltime_convert_to_zone(t, l_icaltimezone);
@@ -919,7 +934,7 @@
else
tz = t;
- return (tz);
+ return(tz);
}
static struct icaltimetype convert_to_local_timezone(struct icaltimetype t
@@ -1597,6 +1612,7 @@
struct icaltimetype dtstamp, create_time, wtime;
gboolean end_time_done;
gchar *int_uid, *ext_uid;
+ gchar **tmp_cat;
struct icaldurationtype duration;
int i;
icalcomponent_kind ikind = ICAL_VEVENT_COMPONENT;
@@ -1632,7 +1648,7 @@
icmp = icalcomponent_vanew(ikind
, icalproperty_new_uid(int_uid)
- , icalproperty_new_categories("ORAGENOTE")
+ /* , icalproperty_new_categories("ORAGENOTE") */
, icalproperty_new_class(ICAL_CLASS_PUBLIC)
, icalproperty_new_dtstamp(dtstamp)
, icalproperty_new_created(create_time)
@@ -1651,6 +1667,14 @@
icalcomponent_add_property(icmp
, icalproperty_new_location(appt->location));
}
+ if (appt->categories) { /* need to split it if more than one */
+ tmp_cat = g_strsplit(appt->categories, ",", 0);
+ for (i=0; tmp_cat[i] != NULL; i++) {
+ icalcomponent_add_property(icmp
+ , icalproperty_new_categories(tmp_cat[i]));
+ }
+ g_strfreev(tmp_cat);
+ }
if (appt->allDay) { /* cut the string after Date: yyyymmdd */
appt->starttime[8] = '\0';
appt->endtime[8] = '\0';
@@ -2255,6 +2279,7 @@
appt.completed_tz_loc = NULL;
appt.availability = -1;
appt.priority = 0;
+ appt.categories = NULL;
appt.note = NULL;
appt.alarmtime = 0;
appt.alarm_before = TRUE;
@@ -2358,6 +2383,16 @@
appt.priority = icalproperty_get_priority(p);
break;
case ICAL_CATEGORIES_PROPERTY:
+ if (appt.categories == NULL)
+ appt.categories = g_strdup(icalproperty_get_categories(p));
+ else {
+ text = appt.categories;
+ appt.categories = g_strjoin(","
+ , appt.categories
+ , icalproperty_get_categories(p), NULL);
+ g_free((char *)text);
+ }
+ break;
case ICAL_CLASS_PROPERTY:
case ICAL_DTSTAMP_PROPERTY:
case ICAL_CREATED_PROPERTY:
Modified: xfcalendar/trunk/src/ical-code.h
===================================================================
--- xfcalendar/trunk/src/ical-code.h 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/ical-code.h 2008-03-01 13:16:37 UTC (rev 26653)
@@ -48,9 +48,10 @@
/* note that version 4.5.9 changed uid format.
* new format starts with 3 char source id (plus separator '.'),
* which tells the file where the id is found:
- * "O01." = Orage file (normal file)
- * "A01." = Archive file
+ * "O00." = Orage file (normal file)
+ * "A00." = Archive file
* "F10." = Foreign file number 10
+ * "H08." = Holiday file number 08
*/
gchar *uid;
gchar *title;
@@ -75,6 +76,7 @@
gint availability;
gint priority;
+ gchar *categories;
gchar *note;
/* alarm */
Modified: xfcalendar/trunk/src/interface.c
===================================================================
--- xfcalendar/trunk/src/interface.c 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/interface.c 2008-03-01 13:16:37 UTC (rev 26653)
@@ -321,9 +321,9 @@
gchar *rcfile;
gchar *s;
- rcfile = orage_resource_file_location(ORAGE_DIR);
+ rcfile = orage_data_file_location(NULL);
f_chooser = orage_file_chooser(intf_w->main_window, TRUE
- , g_par.orage_file, rcfile, APPFILE);
+ , g_par.orage_file, rcfile, ORAGE_APPFILE);
g_free(rcfile);
if (gtk_dialog_run(GTK_DIALOG(f_chooser)) == GTK_RESPONSE_ACCEPT) {
@@ -348,9 +348,9 @@
gchar *rcfile;
gchar *s;
- rcfile = orage_resource_file_location(ORAGE_DIR);
+ rcfile = orage_data_file_location(NULL);
f_chooser = orage_file_chooser(intf_w->main_window, TRUE
- , g_par.archive_file, rcfile, ARCFILE);
+ , g_par.archive_file, rcfile, ORAGE_ARCFILE);
g_free(rcfile);
if (gtk_dialog_run(GTK_DIALOG(f_chooser)) == GTK_RESPONSE_ACCEPT) {
@@ -1319,8 +1319,8 @@
create_orage_file_tab(intf_w);
create_foreign_file_tab(intf_w);
- g_signal_connect((gpointer)intf_w->main_window, "delete_event",
- G_CALLBACK(on_Window_delete_event), intf_w);
+ g_signal_connect((gpointer)intf_w->main_window, "delete_event",
+ G_CALLBACK(on_Window_delete_event), intf_w);
gtk_widget_show_all(intf_w->main_window);
drag_and_drop_init(intf_w);
Modified: xfcalendar/trunk/src/parameters.c
===================================================================
--- xfcalendar/trunk/src/parameters.c 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/parameters.c 2008-03-01 13:16:37 UTC (rev 26653)
@@ -115,15 +115,6 @@
} Itf;
-gchar *orage_resource_file_location(char *name)
-{
- char *file_name;
-
- file_name = xfce_resource_save_location(XFCE_RESOURCE_DATA
- , name, TRUE);
- return(file_name);
-}
-
static void dialog_response(GtkWidget *dialog, gint response_id
, gpointer user_data)
{
@@ -792,7 +783,7 @@
gchar f_par[50];
fpath = xfce_resource_save_location(XFCE_RESOURCE_CONFIG
- , ORAGE_DIR PARFILE, TRUE);
+ , ORAGE_DIR ORAGE_PARFILE, TRUE);
if ((rc = xfce_rc_simple_open(fpath, FALSE)) == NULL) {
g_warning("Unable to open RC file.");
return;
@@ -855,7 +846,7 @@
gchar f_par[100];
fpath = xfce_resource_save_location(XFCE_RESOURCE_CONFIG
- , ORAGE_DIR PARFILE, TRUE);
+ , ORAGE_DIR ORAGE_PARFILE, TRUE);
if ((rc = xfce_rc_simple_open(fpath, TRUE)) == NULL) {
g_warning("Unable to open (read) RC file.");
@@ -870,12 +861,12 @@
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);
- fpath2 = orage_resource_file_location(ORAGE_DIR ARCFILE);
+ fpath2 = orage_data_file_location(ORAGE_ARCFILE);
g_par.archive_file =
g_strdup(xfce_rc_read_entry(rc, "Archive file", fpath2));
g_free(fpath2);
#endif
- fpath2 = orage_resource_file_location(ORAGE_DIR APPFILE);
+ fpath2 = orage_data_file_location(ORAGE_APPFILE);
g_par.orage_file = g_strdup(xfce_rc_read_entry(rc, "Orage file", fpath2));
g_free(fpath2);
g_par.sound_application =
Modified: xfcalendar/trunk/src/parameters.h
===================================================================
--- xfcalendar/trunk/src/parameters.h 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/parameters.h 2008-03-01 13:16:37 UTC (rev 26653)
@@ -26,11 +26,6 @@
#include "xfce_trayicon.h"
#include "mainbox.h"
-#define ORAGE_DIR "orage" G_DIR_SEPARATOR_S
-#define PARFILE "oragerc"
-#define APPFILE "orage.ics"
-#define ARCFILE "orage_archive.ics"
-
#define BORDER 5
typedef struct _foreign_file
{
@@ -104,7 +99,6 @@
extern global_parameters g_par; /* refer to existing global parameters */
#endif
-gchar *orage_resource_file_location(char *name);
void show_parameters(void);
void write_parameters(void);
void read_parameters(void);
Modified: xfcalendar/trunk/src/reminder.c
===================================================================
--- xfcalendar/trunk/src/reminder.c 2008-02-28 13:37:25 UTC (rev 26652)
+++ xfcalendar/trunk/src/reminder.c 2008-03-01 13:16:37 UTC (rev 26653)
@@ -63,8 +63,6 @@
static void create_reminders(alarm_struct *alarm);
static void reset_orage_alarm_clock();
-/* this is almost the same than in ical-code.c.
- * Perhaps these can be combined */
static void alarm_free(gpointer galarm, gpointer dummy)
{
#undef P_N
@@ -113,7 +111,7 @@
int p_file;
char *file_name;
- file_name = orage_resource_file_location(ORAGE_DIR ORAGE_PERSISTENT_ALARMS);
+ file_name = orage_data_file_location(ORAGE_PERSISTENT_ALARMS);
if (!file_name) {
g_warning("orage_persistent_file_open: Persistent alarms filename build failed, alarms not saved (%s)\n", file_name);
return(-1);
More information about the Xfce4-commits
mailing list