From 25914141c25a8a33539a36dae7c99e2e56796826 Mon Sep 17 00:00:00 2001 From: "Gergely POLONKAI (W00d5t0ck)" Date: Wed, 18 Sep 2013 00:45:00 +0200 Subject: [PATCH 01/12] Now setting chart name based on edit form --- src/ag-window.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ag-window.c b/src/ag-window.c index fe1228c..311eaa8 100644 --- a/src/ag-window.c +++ b/src/ag-window.c @@ -135,6 +135,7 @@ recalculate_chart(AgWindow *window) if (priv->chart == NULL) { // TODO: make house system configurable priv->chart = ag_chart_new_full(priv->timestamp, longitude, latitude, 380.0, GSWE_HOUSE_SYSTEM_PLACIDUS); + ag_chart_set_name(priv->chart, gtk_entry_get_text(GTK_ENTRY(priv->name))); g_signal_connect(priv->chart, "changed", G_CALLBACK(chart_changed), window); ag_window_update_from_chart(window); } else { From 0571253730c334b8059a30c20200a34de1ff926e Mon Sep 17 00:00:00 2001 From: "Gergely POLONKAI (W00d5t0ck)" Date: Wed, 18 Sep 2013 00:45:19 +0200 Subject: [PATCH 02/12] Started creating save functionality --- src/ag-window.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/src/ag-window.c b/src/ag-window.c index 311eaa8..6d585b8 100644 --- a/src/ag-window.c +++ b/src/ag-window.c @@ -1,6 +1,8 @@ #include #include #include +#include +#include #include @@ -42,6 +44,8 @@ G_DEFINE_TYPE(AgWindow, ag_window, GTK_TYPE_APPLICATION_WINDOW); #define GET_PRIVATE(instance) (G_TYPE_INSTANCE_GET_PRIVATE((instance), AG_TYPE_WINDOW, AgWindowPrivate)) +static void recalculate_chart(AgWindow *window); + static void gear_menu_cb(GSimpleAction *action, GVariant *parameter, gpointer user_data) { @@ -65,6 +69,101 @@ close_cb(GSimpleAction *action, GVariant *parameter, gpointer user_data) static void save_cb(GSimpleAction *action, GVariant *parameter, gpointer user_data) { + xmlDocPtr doc = NULL; + xmlNodePtr root_node = NULL, + data_node = NULL, + place_node = NULL, + time_node = NULL; + gchar *value; + GsweCoordinates *coordinates; + GsweTimestamp *timestamp; + AgWindow *window = user_data; + + recalculate_chart(window); + + 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(window->priv->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(window->priv->chart); + xmlNewChild(place_node, NULL, BAD_CAST "country", BAD_CAST value); + g_free(value); + + value = ag_chart_get_city(window->priv->chart); + xmlNewChild(place_node, NULL, BAD_CAST "city", BAD_CAST value); + g_free(value); + + coordinates = gswe_moment_get_coordinates(GSWE_MOMENT(window->priv->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