From: <si...@us...> - 2008-08-04 22:20:32
|
Revision: 547 http://osmo-pim.svn.sourceforge.net/osmo-pim/?rev=547&view=rev Author: silloz Date: 2008-08-04 22:20:37 +0000 (Mon, 04 Aug 2008) Log Message: ----------- * Simplified XML files processing part 3 Modified Paths: -------------- trunk/src/tasks.c trunk/src/tasks_items.c trunk/src/utils.c trunk/src/utils.h Modified: trunk/src/tasks.c =================================================================== --- trunk/src/tasks.c 2008-08-04 02:16:50 UTC (rev 546) +++ trunk/src/tasks.c 2008-08-04 22:20:37 UTC (rev 547) @@ -58,18 +58,15 @@ /*------------------------------------------------------------------------------*/ -gchar* -get_priority_text (gint index) { - +gchar* +get_priority_text (gint index) +{ gchar *priority_table[] = { N_("Low"), N_("Medium"), N_("High") }; - if (index >=0 && index <= 2) { - return gettext(priority_table[index]); - } else { - return NULL; - } + g_return_val_if_fail (index >=0 && index <= 2, NULL); + return gettext (priority_table[index]); } /*------------------------------------------------------------------------------*/ Modified: trunk/src/tasks_items.c =================================================================== --- trunk/src/tasks_items.c 2008-08-04 02:16:50 UTC (rev 546) +++ trunk/src/tasks_items.c 2008-08-04 22:20:37 UTC (rev 547) @@ -121,17 +121,17 @@ /*------------------------------------------------------------------------------*/ void -task_item_free (TASK_ITEM *item) { +task_item_free (TASK_ITEM *item) +{ + if (item != NULL) { + if (item->alarm_command != NULL) g_free (item->alarm_command); + if (item->priority != NULL) g_free (item->priority); + if (item->category != NULL) g_free (item->category); + if (item->summary != NULL) g_free (item->summary); + if (item->desc != NULL) g_free (item->desc); - if (item != NULL) { - if (item->priority != NULL) g_free (item->priority); - if (item->category != NULL) g_free (item->category); - if (item->summary != NULL) g_free (item->summary); - if (item->desc != NULL) g_free (item->desc); - if (item->alarm_command != NULL) g_free (item->alarm_command); - - g_free(item); - } + g_free (item); + } } /*------------------------------------------------------------------------------*/ @@ -312,62 +312,58 @@ /*------------------------------------------------------------------------------*/ void -day_selected_cb (GuiCalendar *t_calendar, gpointer user_data) { - +day_selected_cb (GuiCalendar *calendar, gpointer user_data) +{ guint day, month, year; TIME tm; - GUI *appGUI = (GUI *)user_data; - - gui_calendar_get_date (t_calendar, &year, &month, &day); - - appGUI->tsk->tasks_due_julian_day = date_to_julian (day, month, year); + GUI *appGUI = (GUI *) user_data; - tasks_date_related_set_state (TRUE, appGUI); + gui_calendar_get_date (calendar, &year, &month, &day); + appGUI->tsk->tasks_due_julian_day = date_to_julian (day, month, year); - if (gtk_expander_get_expanded (GTK_EXPANDER(appGUI->tsk->time_expander)) == TRUE) { + tasks_date_related_set_state (TRUE, appGUI); - tm.hour = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->cal->spinbutton_start_hour)); - tm.minute = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->cal->spinbutton_start_minute)); - tm.second = 0; - appGUI->tsk->tasks_due_time = time_to_seconds (&tm); - tasks_time_related_set_state (TRUE, appGUI); + if (gtk_expander_get_expanded (GTK_EXPANDER (appGUI->tsk->time_expander)) == TRUE) { + tm.hour = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_hour)); + tm.minute = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_minute)); + tm.second = 0; + appGUI->tsk->tasks_due_time = time_to_seconds (&tm); + tasks_time_related_set_state (TRUE, appGUI); + } else { + appGUI->tsk->tasks_due_time = -1; + tasks_time_related_set_state (FALSE, appGUI); + } - } else { - appGUI->tsk->tasks_due_time = -1; - tasks_time_related_set_state (FALSE, appGUI); - } - - gtk_widget_destroy (appGUI->tsk->td_calendar_window); - - gtk_entry_set_text (GTK_ENTRY(appGUI->tsk->due_date_entry), - get_date_time_full_str (appGUI->tsk->tasks_due_julian_day, appGUI->tsk->tasks_due_time)); + gtk_widget_destroy (appGUI->tsk->td_calendar_window); + gtk_entry_set_text (GTK_ENTRY (appGUI->tsk->due_date_entry), + get_date_time_full_str (appGUI->tsk->tasks_due_julian_day, appGUI->tsk->tasks_due_time)); } /*------------------------------------------------------------------------------*/ void -close_calendar_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { - - GUI *appGUI = (GUI *)user_data; - gtk_widget_destroy(appGUI->tsk->td_calendar_window); +close_calendar_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) +{ + GUI *appGUI = (GUI *) user_data; + gtk_widget_destroy (appGUI->tsk->td_calendar_window); } /*------------------------------------------------------------------------------*/ void -button_close_calendar_cb (GtkButton *button, gpointer user_data) { - - close_calendar_cb (GTK_WIDGET(button), NULL, user_data); +button_close_calendar_cb (GtkButton *button, gpointer user_data) +{ + close_calendar_cb (GTK_WIDGET (button), NULL, user_data); } /*------------------------------------------------------------------------------*/ void -button_ok_calendar_cb (GtkButton *button, gpointer data) { - - GUI *appGUI = (GUI *)data; - day_selected_cb (GUI_CALENDAR(appGUI->tsk->td_calendar), appGUI); +button_ok_calendar_cb (GtkButton *button, gpointer user_data) +{ + GUI *appGUI = (GUI *) user_data; + day_selected_cb (GUI_CALENDAR (appGUI->tsk->td_calendar), appGUI); } /*------------------------------------------------------------------------------*/ @@ -627,23 +623,23 @@ /*------------------------------------------------------------------------------*/ void -tasks_add_edit_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { +tasks_add_edit_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) +{ + GUI *appGUI = (GUI *) user_data; -GUI *appGUI = (GUI *)user_data; - - gtk_window_get_size (GTK_WINDOW(appGUI->tsk->tasks_add_window), - &config.tasks_addedit_win_w, &config.tasks_addedit_win_h); - gdk_window_get_root_origin (GDK_WINDOW(appGUI->tsk->tasks_add_window->window), - &config.tasks_addedit_win_x, &config.tasks_addedit_win_y); - gtk_widget_destroy(appGUI->tsk->tasks_add_window); + gtk_window_get_size (GTK_WINDOW (appGUI->tsk->tasks_add_window), + &config.tasks_addedit_win_w, &config.tasks_addedit_win_h); + gdk_window_get_root_origin (GDK_WINDOW (appGUI->tsk->tasks_add_window->window), + &config.tasks_addedit_win_x, &config.tasks_addedit_win_y); + gtk_widget_destroy (appGUI->tsk->tasks_add_window); } /*------------------------------------------------------------------------------*/ void -button_tasks_add_edit_window_close_cb (GtkButton *button, gpointer user_data) { - - tasks_add_edit_window_close_cb (GTK_WIDGET(button), NULL, user_data); +button_tasks_add_edit_window_close_cb (GtkButton *button, gpointer user_data) +{ + tasks_add_edit_window_close_cb (GTK_WIDGET (button), NULL, user_data); } /*------------------------------------------------------------------------------*/ @@ -772,13 +768,13 @@ /*------------------------------------------------------------------------------*/ -gint -alarm_cmd_entry_key_release_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { +gint +alarm_cmd_entry_key_release_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) +{ + GUI *appGUI = (GUI *) user_data; + task_cmd_validate (appGUI); - GUI *appGUI = (GUI *)data; - task_cmd_validate (appGUI); - - return FALSE; + return FALSE; } /*------------------------------------------------------------------------------*/ @@ -1578,91 +1574,87 @@ /*------------------------------------------------------------------------------*/ void -read_tasks_entries (GUI *appGUI) { - +read_tasks_entries (GUI *appGUI) +{ xmlDocPtr doc; xmlChar *key; xmlNodePtr node, cnode, category_node, main_node; GtkTreeIter iter; -guint32 priority_n; gchar *calendar_prop, *tasks_prop; gboolean calendar_state, tasks_state; TASK_ITEM *item; +/*guint32 priority_n;*/ +gint priority_n; + if (g_file_test (prefs_get_config_filename (TASKS_ENTRIES_FILENAME, appGUI), G_FILE_TEST_IS_REGULAR) == FALSE) + return; - if (g_file_test (prefs_get_config_filename(TASKS_ENTRIES_FILENAME, appGUI), G_FILE_TEST_IS_REGULAR) == FALSE) - return; + if ((doc = xmlParseFile (prefs_get_config_filename (TASKS_ENTRIES_FILENAME, appGUI)))) { - if((doc = xmlParseFile(prefs_get_config_filename(TASKS_ENTRIES_FILENAME, appGUI)))) { + if (!(node = xmlDocGetRootElement (doc))) { + xmlFreeDoc (doc); + return; + } - if(!(node = xmlDocGetRootElement(doc))) { - xmlFreeDoc(doc); - return; - } + if (xmlStrcmp (node->name, (const xmlChar *) TASKS_NAME)) { + xmlFreeDoc (doc); + return; + } - if (xmlStrcmp(node->name, (const xmlChar *) TASKS_NAME)) { - xmlFreeDoc(doc); - return; - } + main_node = node->xmlChildrenNode; - main_node = node->xmlChildrenNode; + while (main_node != NULL) { - while (main_node != NULL) { + if (!xmlStrcmp (main_node->name, (xmlChar *) TASKS_CATEGORY_ENTRIES_NAME)) { - if(!xmlStrcmp(main_node->name, (xmlChar *) TASKS_CATEGORY_ENTRIES_NAME)) { + /* read note */ + category_node = main_node->xmlChildrenNode; - /* read note */ - category_node = main_node->xmlChildrenNode; + while (category_node != NULL) { + calendar_state = tasks_state = TRUE; - while (category_node != NULL) { + if ((!xmlStrcmp (category_node->name, (const xmlChar *) "name"))) { + key = xmlNodeListGetString (doc, category_node->xmlChildrenNode, 1); + calendar_prop = (gchar *) xmlGetProp (category_node, (const xmlChar *) "calendar"); + if (calendar_prop != NULL) { + calendar_state = atoi (calendar_prop); + xmlFree (calendar_prop); + } + tasks_prop = (gchar *) xmlGetProp (category_node, (const xmlChar *) "tasks"); + if (tasks_prop != NULL) { + tasks_state = atoi (tasks_prop); + xmlFree (tasks_prop); + } + if (key != NULL) { + gtk_list_store_append (appGUI->opt->tasks_category_store, &iter); + gtk_list_store_set (appGUI->opt->tasks_category_store, &iter, + TC_COLUMN_NAME, (gchar *) key, + TC_COLUMN_CALENDAR, calendar_state, + TC_COLUMN_TASKS, tasks_state, -1); + xmlFree (key); + } + } - calendar_state = tasks_state = TRUE; + category_node = category_node->next; + } + } - if ((!xmlStrcmp(category_node->name, (const xmlChar *) "name"))) { - key = xmlNodeListGetString(doc, category_node->xmlChildrenNode, 1); - calendar_prop = (gchar *) xmlGetProp(category_node, (const xmlChar *) "calendar"); - if (calendar_prop != NULL) { - calendar_state = atoi(calendar_prop); - xmlFree (calendar_prop); - } - tasks_prop = (gchar *) xmlGetProp(category_node, (const xmlChar *) "tasks"); - if (tasks_prop != NULL) { - tasks_state = atoi(tasks_prop); - xmlFree (tasks_prop); - } - if (key != NULL) { - gtk_list_store_append(appGUI->opt->tasks_category_store, &iter); - gtk_list_store_set(appGUI->opt->tasks_category_store, &iter, - TC_COLUMN_NAME, (gchar *) key, - TC_COLUMN_CALENDAR, calendar_state, - TC_COLUMN_TASKS, tasks_state, -1); - } - xmlFree(key); - } + /*---------------------------------------------------------------------------------------*/ - category_node = category_node->next; - } - } + if (!xmlStrcmp (main_node->name, (xmlChar *) TASKS_ENTRIES_NAME)) { + node = main_node->xmlChildrenNode; - /*---------------------------------------------------------------------------------------*/ + while (node != NULL) { - if(!xmlStrcmp(main_node->name, (xmlChar *) TASKS_ENTRIES_NAME)) { + if (!xmlStrcmp (node->name, (xmlChar *) "entry")) { + cnode = node->xmlChildrenNode; - /* read note */ - node = main_node->xmlChildrenNode; + item = g_new0 (TASK_ITEM, 1); + if (item == NULL) continue; - while (node != NULL) { - - if(!xmlStrcmp(node->name, (xmlChar *) "entry")) { - - cnode = node->xmlChildrenNode; - - item = g_new0 (TASK_ITEM, 1); - if (item == NULL) continue; - - item->done = FALSE; - item->active = FALSE; - item->active_warning = FALSE; + item->done = FALSE; + item->active = FALSE; + item->active_warning = FALSE; item->offline_ignore = FALSE; item->repeat = FALSE; item->repeat_day = 127; @@ -1676,351 +1668,157 @@ item->alarm_command = NULL; item->warning_days = 0; item->warning_time = 0; - item->due_date_julian = 0; - item->due_time = -1; - item->start_date_julian = 0; - item->done_date_julian = 0; - item->priority = NULL; - item->category = NULL; - item->summary = NULL; - item->desc = NULL; + item->due_date_julian = 0; + item->due_time = -1; + item->start_date_julian = 0; + item->done_date_julian = 0; + item->priority = NULL; + item->category = NULL; + item->summary = NULL; + item->desc = NULL; + priority_n = 1; - while (cnode != NULL) { + while (cnode != NULL) { + utl_xml_get_int ("status", &(item->done), cnode, doc); + utl_xml_get_uint ("due_date", &(item->due_date_julian), cnode, doc); + utl_xml_get_int ("due_time", &(item->due_time), cnode, doc); + utl_xml_get_uint ("start_date", &(item->start_date_julian), cnode, doc); + utl_xml_get_uint ("done_date", &(item->done_date_julian), cnode, doc); + utl_xml_get_int ("active", &(item->active), cnode, doc); + utl_xml_get_int ("active_warning", &(item->active_warning), cnode, doc); + utl_xml_get_int ("offline_ignore", &(item->offline_ignore), cnode, doc); + utl_xml_get_int ("repeat", &(item->repeat), cnode, doc); + utl_xml_get_int ("repeat_day", &(item->repeat_day), cnode, doc); + utl_xml_get_int ("repeat_month_interval", &(item->repeat_month_interval), cnode, doc); + utl_xml_get_int ("repeat_day_interval", &(item->repeat_day_interval), cnode, doc); + utl_xml_get_int ("repeat_start_day", &(item->repeat_start_day), cnode, doc); + utl_xml_get_int ("repeat_time_start", &(item->repeat_time_start), cnode, doc); + utl_xml_get_int ("repeat_time_end", &(item->repeat_time_end), cnode, doc); + utl_xml_get_int ("repeat_time_interval", &(item->repeat_time_interval), cnode, doc); + utl_xml_get_int ("repeat_counter", &(item->repeat_counter), cnode, doc); + utl_xml_get_int ("warning_days", &(item->warning_days), cnode, doc); + utl_xml_get_int ("warning_time", &(item->warning_time), cnode, doc); + utl_xml_get_int ("priority", &priority_n, cnode, doc); + utl_xml_get_str ("alarm_command", &(item->alarm_command), cnode, doc); + utl_xml_get_str ("category", &(item->category), cnode, doc); + utl_xml_get_str ("summary", &(item->summary), cnode, doc); + utl_xml_get_str ("description", &(item->desc), cnode, doc); + cnode = cnode->next; + } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "status"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->done)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "due_date"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->due_date_julian)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "due_time"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->due_time)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "start_date"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->start_date_julian)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "done_date"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->done_date_julian)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "active"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->active)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "active_warning"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->active_warning)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "offline_ignore"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->offline_ignore)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "repeat"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->repeat)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "repeat_day"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->repeat_day)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "repeat_month_interval"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->repeat_month_interval)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "repeat_day_interval"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->repeat_day_interval)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "repeat_start_day"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->repeat_start_day)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "repeat_time_start"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->repeat_time_start)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "repeat_time_end"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->repeat_time_end)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "repeat_time_interval"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->repeat_time_interval)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "repeat_counter"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->repeat_counter)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "alarm_command"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - item->alarm_command = g_strdup((gchar *) key); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "warning_days"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->warning_days)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "warning_time"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - sscanf((gchar *) key, "%d", &(item->warning_time)); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "priority"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - item->priority = g_strdup((gchar *) key); - if (get_priority_index(gettext(item->priority)) == -1) { - sscanf((gchar *) key, "%d", &priority_n); - g_free (item->priority); - item->priority = g_strdup(get_priority_text(priority_n)); - } - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "category"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - item->category = g_strdup((gchar *) key); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "summary"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); - if (key != NULL) { - item->summary = g_strdup((gchar *) key); - xmlFree(key); - } - } - if ((!xmlStrcmp(cnode->name, (const xmlChar *) "description"))) { - key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); + if (item->summary != NULL) { + item->priority = g_strdup (get_priority_text (priority_n)); - item->desc = g_strdup((gchar *) key); + if (item->due_date_julian == 0) { + item->due_time = -1; + item->warning_days = 0; + item->warning_time = 0; + item->repeat = FALSE; + item->active = FALSE; + item->active_warning = FALSE; + } else if (item->due_time == -1){ + item->warning_time = 0; + } - if (item->due_date_julian == 0) { - item->due_time = -1; - item->warning_days = 0; - item->warning_time = 0; - item->repeat = FALSE; - item->active = FALSE; - item->active_warning = FALSE; - } else if (item->due_time == -1){ - item->warning_time = 0; - } + add_item_to_list (item, appGUI); + } - add_item_to_list (item, appGUI); + task_item_free (item); + } - if (key != NULL) { - xmlFree(key); - } + node = node->next; + } - } + } - cnode = cnode->next; - } + /*---------------------------------------------------------------------------------------*/ - task_item_free (item); - } + main_node = main_node->next; + } - node = node->next; - } - - } - - /*---------------------------------------------------------------------------------------*/ - - main_node = main_node->next; - } - - xmlFree(node); - xmlFreeDoc(doc); - } + xmlFree (node); + xmlFreeDoc (doc); + } } /*------------------------------------------------------------------------------*/ void -write_tasks_entries (GUI *appGUI) { - -gint i; +write_tasks_entries (GUI *appGUI) +{ xmlDocPtr doc; xmlNodePtr main_node, node, note_node, dc_node; xmlAttrPtr attr; -gchar temp[BUFFER_SIZE]; GtkTreeIter iter; gchar *name; gint tc_calendar, tc_tasks; TASK_ITEM *item; +gchar temp[BUFFER_SIZE]; +gint i; - if ((appGUI->save_status & WRT_TASKS) != 0) return; + if ((appGUI->save_status & WRT_TASKS) != 0) return; - appGUI->save_status |= WRT_TASKS; + appGUI->save_status |= WRT_TASKS; - doc = xmlNewDoc((const xmlChar *) "1.0"); - attr = xmlNewDocProp (doc, (const xmlChar *) "encoding", (const xmlChar *) "utf-8"); + doc = xmlNewDoc ((const xmlChar *) "1.0"); + attr = xmlNewDocProp (doc, (const xmlChar *) "encoding", (const xmlChar *) "utf-8"); - main_node = xmlNewNode(NULL, (const xmlChar *) TASKS_NAME); - xmlDocSetRootElement(doc, main_node); + main_node = xmlNewNode (NULL, (const xmlChar *) TASKS_NAME); + xmlDocSetRootElement (doc, main_node); - node = xmlNewChild(main_node, NULL, (const xmlChar *) TASKS_CATEGORY_ENTRIES_NAME, (xmlChar *) NULL); + node = xmlNewChild (main_node, NULL, (const xmlChar *) TASKS_CATEGORY_ENTRIES_NAME, (xmlChar *) NULL); - i = 0; + i = 0; - while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->tasks_category_store), &iter, NULL, i++)) { + while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, NULL, i++)) { + gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, + TC_COLUMN_NAME, &name, TC_COLUMN_CALENDAR, &tc_calendar, TC_COLUMN_TASKS, &tc_tasks, -1); - gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->tasks_category_store), &iter, - TC_COLUMN_NAME, &name, TC_COLUMN_CALENDAR, &tc_calendar, TC_COLUMN_TASKS, &tc_tasks, -1); + dc_node = xmlNewChild (node, NULL, (const xmlChar *) "name", (xmlChar *) name); - dc_node = xmlNewChild(node, NULL, (const xmlChar *) "name", (xmlChar *) name); - g_snprintf (temp, BUFFER_SIZE, "%d", tc_calendar); - xmlNewProp(dc_node, (const xmlChar *) "calendar", (xmlChar *) temp); - + xmlNewProp (dc_node, (const xmlChar *) "calendar", (xmlChar *) temp); g_snprintf (temp, BUFFER_SIZE, "%d", tc_tasks); - xmlNewProp(dc_node, (const xmlChar *) "tasks", (xmlChar *) temp); + xmlNewProp (dc_node, (const xmlChar *) "tasks", (xmlChar *) temp); - g_free(name); - } + g_free (name); + } - node = xmlNewChild(main_node, NULL, (const xmlChar *) TASKS_ENTRIES_NAME, (xmlChar *) NULL); + node = xmlNewChild (main_node, NULL, (const xmlChar *) TASKS_ENTRIES_NAME, (xmlChar *) NULL); - i = 0; + i = 0; - while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, NULL, i++)) { + while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->tsk->tasks_list_store), &iter, NULL, i++)) { + item = get_task_item (&iter, appGUI); - item = get_task_item (&iter, appGUI); + if (item != NULL) { + note_node = xmlNewChild (node, NULL, (const xmlChar *) "entry", (xmlChar *) NULL); - if (item != NULL) { + utl_xml_put_int ("status", item->done, note_node); + utl_xml_put_uint ("due_date", item->due_date_julian, note_node); + utl_xml_put_int ("due_time", item->due_time, note_node); + utl_xml_put_uint ("start_date", item->start_date_julian, note_node); + utl_xml_put_uint ("done_date", item->done_date_julian, note_node); + utl_xml_put_int ("active", item->active, note_node); + utl_xml_put_int ("active_warning", item->active_warning, note_node); + utl_xml_put_int ("offline_ignore", item->offline_ignore, note_node); + utl_xml_put_int ("repeat", item->repeat, note_node); + utl_xml_put_int ("repeat_day", item->repeat_day, note_node); + utl_xml_put_int ("repeat_month_interval", item->repeat_month_interval, note_node); + utl_xml_put_int ("repeat_day_interval", item->repeat_day_interval, note_node); + utl_xml_put_int ("repeat_start_day", item->repeat_start_day, note_node); + utl_xml_put_int ("repeat_time_start", item->repeat_time_start, note_node); + utl_xml_put_int ("repeat_time_end", item->repeat_time_end, note_node); + utl_xml_put_int ("repeat_time_interval", item->repeat_time_interval, note_node); + utl_xml_put_int ("repeat_counter", item->repeat_counter, note_node); + utl_xml_put_int ("warning_days", item->warning_days, note_node); + utl_xml_put_int ("warning_time", item->warning_time, note_node); + utl_xml_put_int ("priority", get_priority_index (gettext (item->priority)), note_node); + utl_xml_put_str ("alarm_command", item->alarm_command, note_node); + utl_xml_put_str ("category", item->category, note_node); + utl_xml_put_str ("summary", item->summary, note_node); + utl_xml_put_str ("description", item->desc, note_node); - note_node = xmlNewChild (node, NULL, (const xmlChar *) "entry", (xmlChar *) NULL); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->done); - xmlNewChild (note_node, NULL, (const xmlChar *) "status", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (guint32) item->due_date_julian); - xmlNewChild (note_node, NULL, (const xmlChar *) "due_date", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->due_time); - xmlNewChild (note_node, NULL, (const xmlChar *) "due_time", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (guint32) item->start_date_julian); - xmlNewChild (note_node, NULL, (const xmlChar *) "start_date", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (guint32) item->done_date_julian); - xmlNewChild (note_node, NULL, (const xmlChar *) "done_date", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->active); - xmlNewChild (note_node, NULL, (const xmlChar *) "active", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->active_warning); - xmlNewChild (note_node, NULL, (const xmlChar *) "active_warning", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->offline_ignore); - xmlNewChild (note_node, NULL, (const xmlChar *) "offline_ignore", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->repeat); - xmlNewChild (note_node, NULL, (const xmlChar *) "repeat", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->repeat_day); - xmlNewChild (note_node, NULL, (const xmlChar *) "repeat_day", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->repeat_month_interval); - xmlNewChild (note_node, NULL, (const xmlChar *) "repeat_month_interval", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->repeat_day_interval); - xmlNewChild (note_node, NULL, (const xmlChar *) "repeat_day_interval", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->repeat_start_day); - xmlNewChild (note_node, NULL, (const xmlChar *) "repeat_start_day", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->repeat_time_start); - xmlNewChild (note_node, NULL, (const xmlChar *) "repeat_time_start", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->repeat_time_end); - xmlNewChild (note_node, NULL, (const xmlChar *) "repeat_time_end", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->repeat_time_interval); - xmlNewChild (note_node, NULL, (const xmlChar *) "repeat_time_interval", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->repeat_counter); - xmlNewChild (note_node, NULL, (const xmlChar *) "repeat_counter", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->warning_days); - xmlNewChild (note_node, NULL, (const xmlChar *) "warning_days", (xmlChar *) temp); - - g_snprintf (temp, BUFFER_SIZE, "%d", (gint) item->warning_time); - xmlNewChild (note_node, NULL, (const xmlChar *) "warning_time", (xmlChar *) temp); - - xmlNewChild (note_node, NULL, (const xmlChar *) "alarm_command", (xmlChar *) item->alarm_command); - - g_snprintf (temp, BUFFER_SIZE, "%d", get_priority_index (gettext (item->priority))); - xmlNewChild (note_node, NULL, (const xmlChar *) "priority", (xmlChar *) temp); - - xmlNewChild (note_node, NULL, (const xmlChar *) "category", (xmlChar *) item->category); - xmlNewChild (note_node, NULL, (const xmlChar *) "summary", (xmlChar *) item->summary); - xmlNewChild (note_node, NULL, (const xmlChar *) "description", (xmlChar *) item->desc); - task_item_free (item); } } @@ -2028,9 +1826,8 @@ xmlSaveFormatFileEnc (prefs_get_config_filename (TASKS_ENTRIES_FILENAME, appGUI), doc, "utf-8", 1); xmlFreeDoc (doc); - appGUI->save_status &= ~WRT_TASKS; + appGUI->save_status &= ~WRT_TASKS; } /*------------------------------------------------------------------------------*/ - Modified: trunk/src/utils.c =================================================================== --- trunk/src/utils.c 2008-08-04 02:16:50 UTC (rev 546) +++ trunk/src/utils.c 2008-08-04 22:20:37 UTC (rev 547) @@ -43,6 +43,22 @@ /*------------------------------------------------------------------------------*/ void +utl_xml_get_uint (gchar *name, guint *uname, xmlNodePtr node, xmlDocPtr doc) +{ +xmlChar *key; + + if ((xmlStrcmp (node->name, (const xmlChar *) name)) == 0) { + key = xmlNodeListGetString (doc, node->xmlChildrenNode, 1); + if (key != NULL) { + *uname = (guint) atoi ((gchar *) key); + xmlFree (key); + } + } +} + +/*------------------------------------------------------------------------------*/ + +void utl_xml_get_char (gchar *name, gchar *cname, xmlNodePtr node, xmlDocPtr doc) { xmlChar *key; @@ -102,6 +118,17 @@ /*------------------------------------------------------------------------------*/ void +utl_xml_put_uint (gchar *name, guint value, xmlNodePtr node) +{ +gchar buffer[32]; + + g_snprintf (buffer, 32, "%d", value); + xmlNewChild (node, NULL, (const xmlChar *) name, (xmlChar *) buffer); +} + +/*------------------------------------------------------------------------------*/ + +void utl_xml_put_char (gchar *name, gchar character, xmlNodePtr node) { gchar buffer[32]; Modified: trunk/src/utils.h =================================================================== --- trunk/src/utils.h 2008-08-04 02:16:50 UTC (rev 546) +++ trunk/src/utils.h 2008-08-04 22:20:37 UTC (rev 547) @@ -31,10 +31,12 @@ }; void utl_xml_get_int (gchar *name, gint *iname, xmlNodePtr node, xmlDocPtr doc); +void utl_xml_get_uint (gchar *name, guint *uname, xmlNodePtr node, xmlDocPtr doc); void utl_xml_get_char (gchar *name, gchar *cname, xmlNodePtr node, xmlDocPtr doc); void utl_xml_get_str (gchar *name, gchar **sname, xmlNodePtr node, xmlDocPtr doc); void utl_xml_get_strn (gchar *name, gchar *sname, gint buffer_size, xmlNodePtr node, xmlDocPtr doc); void utl_xml_put_int (gchar *name, gint value, xmlNodePtr node); +void utl_xml_put_uint (gchar *name, guint value, xmlNodePtr node); void utl_xml_put_char (gchar *name, gchar character, xmlNodePtr node); void utl_xml_put_str (gchar *name, gchar *string, xmlNodePtr node); void utl_xml_put_strn (gchar *name, gchar *string, gint buffer_size, xmlNodePtr node); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |