From ec75d9b4cd611396d327adbe8268db8d569c28ca Mon Sep 17 00:00:00 2001 From: "Gergely POLONKAI (W00d5t0ck)" Date: Wed, 18 Sep 2013 11:22:07 +0200 Subject: [PATCH] Moved XML creation code to AgChart's create_save_doc() --- src/ag-chart.c | 96 ++++++++++++++++++++++++++++++++++++++++ src/ag-window.c | 114 ++++++++++-------------------------------------- 2 files changed, 120 insertions(+), 90 deletions(-) diff --git a/src/ag-chart.c b/src/ag-chart.c index f4e0d82..b4bf767 100644 --- a/src/ag-chart.c +++ b/src/ag-chart.c @@ -542,6 +542,102 @@ ag_chart_load_from_file(GFile *file, GError **err) return chart; } +static xmlDocPtr +create_save_doc(AgChart *chart) +{ + xmlDocPtr doc = NULL; + xmlNodePtr root_node = NULL, + data_node = NULL, + place_node = NULL, + time_node = NULL; + gchar *value; + GsweCoordinates *coordinates; + GsweTimestamp *timestamp; + + doc = xmlNewDoc(BAD_CAST "1.0"); + root_node = xmlNewNode(NULL, BAD_CAST "chartinfo"); + xmlDocSetRootElement(doc, root_node); + + // Begin node + data_node = xmlNewChild(root_node, NULL, BAD_CAST "data", NULL); + + value = ag_chart_get_name(chart); + xmlNewChild(data_node, NULL, BAD_CAST "name", BAD_CAST value); + g_free(value); + + // Begin node + place_node = xmlNewChild(data_node, NULL, BAD_CAST "place", NULL); + + value = ag_chart_get_country(chart); + xmlNewChild(place_node, NULL, BAD_CAST "country", BAD_CAST value); + g_free(value); + + value = ag_chart_get_city(chart); + xmlNewChild(place_node, NULL, BAD_CAST "city", BAD_CAST value); + g_free(value); + + coordinates = gswe_moment_get_coordinates(GSWE_MOMENT(chart)); + + value = g_malloc0(12); + g_ascii_dtostr(value, 12, coordinates->longitude); + xmlNewChild(place_node, NULL, BAD_CAST "longitude", BAD_CAST value); + g_free(value); + + value = g_malloc0(12); + g_ascii_dtostr(value, 12, coordinates->latitude); + xmlNewChild(place_node, NULL, BAD_CAST "latitude", BAD_CAST value); + g_free(value); + + value = g_malloc0(12); + g_ascii_dtostr(value, 12, coordinates->altitude); + xmlNewChild(place_node, NULL, BAD_CAST "altitude", BAD_CAST value); + g_free(value); + + g_free(coordinates); + + // Begin