Code beautification
Wrap long lines in all files
This commit is contained in:
parent
110e7f3c25
commit
9342ea63de
13
src/ag-app.h
13
src/ag-app.h
@ -8,11 +8,17 @@
|
|||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define AG_TYPE_APP (ag_app_get_type())
|
#define AG_TYPE_APP (ag_app_get_type())
|
||||||
#define AG_APP(o) (G_TYPE_CHECK_INSTANCE_CAST((o), AG_TYPE_APP, AgApp))
|
#define AG_APP(o) (G_TYPE_CHECK_INSTANCE_CAST((o), \
|
||||||
#define AG_APP_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), AG_TYPE_APP, AgAppClass))
|
AG_TYPE_APP, \
|
||||||
|
AgApp))
|
||||||
|
#define AG_APP_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \
|
||||||
|
AG_TYPE_APP, \
|
||||||
|
AgAppClass))
|
||||||
#define AG_IS_APP(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), AG_TYPE_APP))
|
#define AG_IS_APP(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), AG_TYPE_APP))
|
||||||
#define AG_IS_APP_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), AG_TYPE_APP))
|
#define AG_IS_APP_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), AG_TYPE_APP))
|
||||||
#define AG_APP_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), AG_TYPE_APP, AgAppClass))
|
#define AG_APP_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), \
|
||||||
|
AG_TYPE_APP, \
|
||||||
|
AgAppClass))
|
||||||
|
|
||||||
typedef struct _AgApp AgApp;
|
typedef struct _AgApp AgApp;
|
||||||
typedef struct _AgAppClass AgAppClass;
|
typedef struct _AgAppClass AgAppClass;
|
||||||
@ -48,4 +54,3 @@ void ag_app_message_dialog(GtkWidget *window,
|
|||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __AG_APP_H__ */
|
#endif /* __AG_APP_H__ */
|
||||||
|
|
||||||
|
544
src/ag-chart.c
544
src/ag-chart.c
@ -61,9 +61,39 @@ ag_chart_class_init(AgChartClass *klass)
|
|||||||
gobject_class->get_property = ag_chart_get_property;
|
gobject_class->get_property = ag_chart_get_property;
|
||||||
gobject_class->finalize = ag_chart_finalize;
|
gobject_class->finalize = ag_chart_finalize;
|
||||||
|
|
||||||
g_object_class_install_property(gobject_class, PROP_NAME, g_param_spec_string("name", "Chart name", "Name of the person on this chart", NULL, G_PARAM_READWRITE));
|
g_object_class_install_property(
|
||||||
g_object_class_install_property(gobject_class, PROP_COUNTRY, g_param_spec_string("country", "Country name", "Name of the country of birth", NULL, G_PARAM_READWRITE));
|
gobject_class,
|
||||||
g_object_class_install_property(gobject_class, PROP_CITY, g_param_spec_string("city", "City name", "Name of the city of birth", NULL, G_PARAM_READWRITE));
|
PROP_NAME,
|
||||||
|
g_param_spec_string(
|
||||||
|
"name",
|
||||||
|
"Chart name",
|
||||||
|
"Name of the person on this chart",
|
||||||
|
NULL,
|
||||||
|
G_PARAM_READWRITE
|
||||||
|
)
|
||||||
|
);
|
||||||
|
g_object_class_install_property(
|
||||||
|
gobject_class,
|
||||||
|
PROP_COUNTRY,
|
||||||
|
g_param_spec_string(
|
||||||
|
"country",
|
||||||
|
"Country name",
|
||||||
|
"Name of the country of birth",
|
||||||
|
NULL,
|
||||||
|
G_PARAM_READWRITE
|
||||||
|
)
|
||||||
|
);
|
||||||
|
g_object_class_install_property(
|
||||||
|
gobject_class,
|
||||||
|
PROP_CITY,
|
||||||
|
g_param_spec_string(
|
||||||
|
"city",
|
||||||
|
"City name",
|
||||||
|
"Name of the city of birth",
|
||||||
|
NULL,
|
||||||
|
G_PARAM_READWRITE
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -78,7 +108,10 @@ ag_chart_init(AgChart *chart)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ag_chart_set_property(GObject *gobject, guint prop_id, const GValue *value, GParamSpec *param_spec)
|
ag_chart_set_property(GObject *gobject,
|
||||||
|
guint prop_id,
|
||||||
|
const GValue *value,
|
||||||
|
GParamSpec *param_spec)
|
||||||
{
|
{
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_NAME:
|
case PROP_NAME:
|
||||||
@ -99,7 +132,10 @@ ag_chart_set_property(GObject *gobject, guint prop_id, const GValue *value, GPar
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ag_chart_get_property(GObject *gobject, guint prop_id, GValue *value, GParamSpec *param_spec)
|
ag_chart_get_property(GObject *gobject,
|
||||||
|
guint prop_id,
|
||||||
|
GValue *value,
|
||||||
|
GParamSpec *param_spec)
|
||||||
{
|
{
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_NAME:
|
case PROP_NAME:
|
||||||
@ -146,77 +182,150 @@ void
|
|||||||
ag_chart_add_planets(AgChart *chart)
|
ag_chart_add_planets(AgChart *chart)
|
||||||
{
|
{
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_CHARIKLO, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_CHARIKLO, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_CHARIKLO));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_CHARIKLO)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_VESTA, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_VESTA, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_VESTA));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_VESTA)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_JUNO, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_JUNO, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_JUNO));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_JUNO)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_PALLAS, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_PALLAS, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_PALLAS));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_PALLAS)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_CERES, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_CERES, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_CERES));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_CERES)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_NESSUS, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_NESSUS, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_NESSUS));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_NESSUS)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_PHOLUS, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_PHOLUS, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_PHOLUS));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_PHOLUS)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_CHIRON, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_CHIRON, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_CHIRON));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_CHIRON)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MOON_APOGEE, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MOON_APOGEE, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_MOON_APOGEE));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_MOON_APOGEE)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MOON_NODE, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MOON_NODE, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_MOON_NODE));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_MOON_NODE)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_PLUTO, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_PLUTO, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_PLUTO));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_PLUTO)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_NEPTUNE, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_NEPTUNE, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_NEPTUNE));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_NEPTUNE)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_URANUS, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_URANUS, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_URANUS));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_URANUS)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_SATURN, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_SATURN, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_SATURN));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_SATURN)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_JUPITER, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_JUPITER, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_JUPITER));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_JUPITER)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MARS, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MARS, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_MARS));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_MARS)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_VENUS, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_VENUS, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_VENUS));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_VENUS)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MERCURY, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MERCURY, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_MERCURY));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_MERCURY)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MOON, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MOON, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_MOON));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_MOON)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_SUN, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_SUN, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_SUN));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_SUN)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_VERTEX, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_VERTEX, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_VERTEX));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_VERTEX)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_ASCENDANT, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_ASCENDANT, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_ASCENDANT));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_ASCENDANT)
|
||||||
|
);
|
||||||
|
|
||||||
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MC, NULL);
|
gswe_moment_add_planet(GSWE_MOMENT(chart), GSWE_PLANET_MC, NULL);
|
||||||
chart->priv->planet_list = g_list_prepend(chart->priv->planet_list, GINT_TO_POINTER(GSWE_PLANET_MC));
|
chart->priv->planet_list = g_list_prepend(
|
||||||
|
chart->priv->planet_list,
|
||||||
|
GINT_TO_POINTER(GSWE_PLANET_MC)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
AgChart *
|
AgChart *
|
||||||
ag_chart_new_full(GsweTimestamp *timestamp, gdouble longitude, gdouble latitude, gdouble altitude, GsweHouseSystem house_system)
|
ag_chart_new_full(GsweTimestamp *timestamp,
|
||||||
|
gdouble longitude,
|
||||||
|
gdouble latitude,
|
||||||
|
gdouble altitude,
|
||||||
|
GsweHouseSystem house_system)
|
||||||
{
|
{
|
||||||
AgChart *chart;
|
AgChart *chart;
|
||||||
GsweCoordinates *coords = g_new0(GsweCoordinates, 1);
|
GsweCoordinates *coords = g_new0(GsweCoordinates, 1);
|
||||||
@ -289,9 +398,12 @@ ag_chart_get_city(AgChart *chart)
|
|||||||
/**
|
/**
|
||||||
* get_by_xpath:
|
* get_by_xpath:
|
||||||
* @xpath_context: an XPath context
|
* @xpath_context: an XPath context
|
||||||
* @uri: the name of the file currently being processed. Used in error messages only
|
* @uri: the name of the file currently being processed. Used in error messages
|
||||||
|
* only
|
||||||
* @xpath: an XPath expression
|
* @xpath: an XPath expression
|
||||||
* @value_required: marks the value as required. Although the XML tags must be present, some values (like country or city name) may be omitted
|
* @value_required: marks the value as required. Although the XML tags must be
|
||||||
|
* present, some values (like country or city name) may be
|
||||||
|
* omitted
|
||||||
* @type: the type of the variable to return
|
* @type: the type of the variable to return
|
||||||
* @err: a GError
|
* @err: a GError
|
||||||
*
|
*
|
||||||
@ -300,7 +412,12 @@ ag_chart_get_city(AgChart *chart)
|
|||||||
* Returns: (transfer container): a GVariant with the requested value
|
* Returns: (transfer container): a GVariant with the requested value
|
||||||
*/
|
*/
|
||||||
static GVariant *
|
static GVariant *
|
||||||
get_by_xpath(xmlXPathContextPtr xpath_context, const gchar *uri, const gchar *xpath, gboolean value_required, XmlConvertType type, GError **err)
|
get_by_xpath(xmlXPathContextPtr xpath_context,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *xpath,
|
||||||
|
gboolean value_required,
|
||||||
|
XmlConvertType type,
|
||||||
|
GError **err)
|
||||||
{
|
{
|
||||||
xmlXPathObjectPtr xpathObj;
|
xmlXPathObjectPtr xpathObj;
|
||||||
const gchar *text;
|
const gchar *text;
|
||||||
@ -309,15 +426,28 @@ get_by_xpath(xmlXPathContextPtr xpath_context, const gchar *uri, const gchar *xp
|
|||||||
gdouble d;
|
gdouble d;
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
if ((xpathObj = xmlXPathEvalExpression((const xmlChar *)xpath, xpath_context)) == NULL) {
|
if ((xpathObj = xmlXPathEvalExpression(
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_LIBXML, "File '%s' could not be parsed due to internal XML error.", uri);
|
(const xmlChar *)xpath,
|
||||||
|
xpath_context
|
||||||
|
)) == NULL) {
|
||||||
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_LIBXML,
|
||||||
|
"File '%s' could not be parsed due to internal XML error.",
|
||||||
|
uri
|
||||||
|
);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xpathObj->nodesetval == NULL) {
|
if (xpathObj->nodesetval == NULL) {
|
||||||
g_debug("No such node '%s'", xpath);
|
g_debug("No such node '%s'", xpath);
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' doesn't look like a valid saved chart.", uri);
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE,
|
||||||
|
"File '%s' doesn't look like a valid saved chart.",
|
||||||
|
uri
|
||||||
|
);
|
||||||
xmlXPathFreeObject(xpathObj);
|
xmlXPathFreeObject(xpathObj);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -325,7 +455,12 @@ get_by_xpath(xmlXPathContextPtr xpath_context, const gchar *uri, const gchar *xp
|
|||||||
|
|
||||||
if (xpathObj->nodesetval->nodeNr > 1) {
|
if (xpathObj->nodesetval->nodeNr > 1) {
|
||||||
g_debug("Too many '%s' nodes", xpath);
|
g_debug("Too many '%s' nodes", xpath);
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' doesn't look like a valid saved chart.", uri);
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE,
|
||||||
|
"File '%s' doesn't look like a valid saved chart.",
|
||||||
|
uri
|
||||||
|
);
|
||||||
xmlXPathFreeObject(xpathObj);
|
xmlXPathFreeObject(xpathObj);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -334,7 +469,12 @@ get_by_xpath(xmlXPathContextPtr xpath_context, const gchar *uri, const gchar *xp
|
|||||||
if (xpathObj->nodesetval->nodeNr == 0) {
|
if (xpathObj->nodesetval->nodeNr == 0) {
|
||||||
if (value_required) {
|
if (value_required) {
|
||||||
g_debug("Too many '%s' nodes", xpath);
|
g_debug("Too many '%s' nodes", xpath);
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' doesn't look like a valid saved chart.", uri);
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE,
|
||||||
|
"File '%s' doesn't look like a valid saved chart.",
|
||||||
|
uri
|
||||||
|
);
|
||||||
xmlXPathFreeObject(xpathObj);
|
xmlXPathFreeObject(xpathObj);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -374,7 +514,12 @@ get_by_xpath(xmlXPathContextPtr xpath_context, const gchar *uri, const gchar *xp
|
|||||||
d = g_ascii_strtod(text, &endptr);
|
d = g_ascii_strtod(text, &endptr);
|
||||||
|
|
||||||
if ((*endptr != 0) || (errno != 0)) {
|
if ((*endptr != 0) || (errno != 0)) {
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' doesn't look like a valid saved chart.", uri);
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE,
|
||||||
|
"File '%s' doesn't look like a valid saved chart.",
|
||||||
|
uri
|
||||||
|
);
|
||||||
ret = NULL;
|
ret = NULL;
|
||||||
} else {
|
} else {
|
||||||
ret = g_variant_new_double(d);
|
ret = g_variant_new_double(d);
|
||||||
@ -386,7 +531,12 @@ get_by_xpath(xmlXPathContextPtr xpath_context, const gchar *uri, const gchar *xp
|
|||||||
i = strtol(text, &endptr, 10);
|
i = strtol(text, &endptr, 10);
|
||||||
|
|
||||||
if ((*endptr != 0) || (errno != 0)) {
|
if ((*endptr != 0) || (errno != 0)) {
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' doesn't look like a valid saved chart.", uri);
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE,
|
||||||
|
"File '%s' doesn't look like a valid saved chart.",
|
||||||
|
uri
|
||||||
|
);
|
||||||
ret = NULL;
|
ret = NULL;
|
||||||
} else {
|
} else {
|
||||||
ret = g_variant_new_int32(i);
|
ret = g_variant_new_int32(i);
|
||||||
@ -439,7 +589,13 @@ ag_chart_load_from_file(GFile *file, GError **err)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((doc = xmlReadMemory(xml, length, "chart.xml", NULL, 0)) == NULL) {
|
if ((doc = xmlReadMemory(xml, length, "chart.xml", NULL, 0)) == NULL) {
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' can not be read. Maybe it is corrupt, or not a save file at all", uri);
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE,
|
||||||
|
"File '%s' can not be read. " \
|
||||||
|
"Maybe it is corrupt, or not a save file at all",
|
||||||
|
uri
|
||||||
|
);
|
||||||
g_free(xml);
|
g_free(xml);
|
||||||
g_free(uri);
|
g_free(uri);
|
||||||
|
|
||||||
@ -447,7 +603,12 @@ ag_chart_load_from_file(GFile *file, GError **err)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((xpath_context = xmlXPathNewContext(doc)) == NULL) {
|
if ((xpath_context = xmlXPathNewContext(doc)) == NULL) {
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_LIBXML, "File '%s' could not be loaded due to internal LibXML error", uri);
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_LIBXML,
|
||||||
|
"File '%s' could not be loaded due to internal LibXML error",
|
||||||
|
uri
|
||||||
|
);
|
||||||
xmlFreeDoc(doc);
|
xmlFreeDoc(doc);
|
||||||
g_free(xml);
|
g_free(xml);
|
||||||
g_free(uri);
|
g_free(uri);
|
||||||
@ -455,59 +616,157 @@ ag_chart_load_from_file(GFile *file, GError **err)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((chart_name = get_by_xpath(xpath_context, uri, "/chartinfo/data/name/text()", TRUE, XML_CONVERT_STRING, err)) == NULL) {
|
if ((chart_name = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/name/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_STRING,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((country = get_by_xpath(xpath_context, uri, "/chartinfo/data/place/country/text()", FALSE, XML_CONVERT_STRING, err)) == NULL) {
|
if ((country = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/place/country/text()",
|
||||||
|
FALSE,
|
||||||
|
XML_CONVERT_STRING,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((city = get_by_xpath(xpath_context, uri, "/chartinfo/data/place/city/text()", FALSE, XML_CONVERT_STRING, err)) == NULL) {
|
if ((city = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/place/city/text()",
|
||||||
|
FALSE,
|
||||||
|
XML_CONVERT_STRING,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((longitude = get_by_xpath(xpath_context, uri, "/chartinfo/data/place/longitude/text()", TRUE, XML_CONVERT_DOUBLE, err)) == NULL) {
|
if ((longitude = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/place/longitude/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_DOUBLE,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((latitude = get_by_xpath(xpath_context, uri, "/chartinfo/data/place/latitude/text()", TRUE, XML_CONVERT_DOUBLE, err)) == NULL) {
|
if ((latitude = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/place/latitude/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_DOUBLE,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((altitude = get_by_xpath(xpath_context, uri, "/chartinfo/data/place/altitude/text()", TRUE, XML_CONVERT_DOUBLE, err)) == NULL) {
|
if ((altitude = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/place/altitude/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_DOUBLE,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((year = get_by_xpath(xpath_context, uri, "/chartinfo/data/time/year/text()", TRUE, XML_CONVERT_INT, err)) == NULL) {
|
if ((year = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/time/year/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_INT,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((month = get_by_xpath(xpath_context, uri, "/chartinfo/data/time/month/text()", TRUE, XML_CONVERT_INT, err)) == NULL) {
|
if ((month = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/time/month/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_INT,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((day = get_by_xpath(xpath_context, uri, "/chartinfo/data/time/day/text()", TRUE, XML_CONVERT_INT, err)) == NULL) {
|
if ((day = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/time/day/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_INT,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((hour = get_by_xpath(xpath_context, uri, "/chartinfo/data/time/hour/text()", TRUE, XML_CONVERT_INT, err)) == NULL) {
|
if ((hour = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/time/hour/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_INT,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((minute = get_by_xpath(xpath_context, uri, "/chartinfo/data/time/minute/text()", TRUE, XML_CONVERT_INT, err)) == NULL) {
|
if ((minute = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/time/minute/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_INT,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((second = get_by_xpath(xpath_context, uri, "/chartinfo/data/time/second/text()", TRUE, XML_CONVERT_INT, err)) == NULL) {
|
if ((second = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/time/second/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_INT,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((timezone = get_by_xpath(xpath_context, uri, "/chartinfo/data/time/timezone/text()", TRUE, XML_CONVERT_DOUBLE, err)) == NULL) {
|
if ((timezone = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/data/time/timezone/text()",
|
||||||
|
TRUE,
|
||||||
|
XML_CONVERT_DOUBLE,
|
||||||
|
err
|
||||||
|
)) == NULL) {
|
||||||
found_error = TRUE;
|
found_error = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
note = get_by_xpath(xpath_context, uri, "/chartinfo/note/text()", FALSE, XML_CONVERT_STRING, err);
|
note = get_by_xpath(
|
||||||
|
xpath_context,
|
||||||
|
uri,
|
||||||
|
"/chartinfo/note/text()",
|
||||||
|
FALSE,
|
||||||
|
XML_CONVERT_STRING,
|
||||||
|
err
|
||||||
|
);
|
||||||
|
|
||||||
if (found_error) {
|
if (found_error) {
|
||||||
ag_g_variant_unref(note);
|
ag_g_variant_unref(note);
|
||||||
@ -550,7 +809,13 @@ ag_chart_load_from_file(GFile *file, GError **err)
|
|||||||
g_variant_unref(timezone);
|
g_variant_unref(timezone);
|
||||||
|
|
||||||
// TODO: Make house system configurable (and saveable)
|
// TODO: Make house system configurable (and saveable)
|
||||||
chart = ag_chart_new_full(timestamp, g_variant_get_double(longitude), g_variant_get_double(latitude), g_variant_get_double(altitude), GSWE_HOUSE_SYSTEM_PLACIDUS);
|
chart = ag_chart_new_full(
|
||||||
|
timestamp,
|
||||||
|
g_variant_get_double(longitude),
|
||||||
|
g_variant_get_double(latitude),
|
||||||
|
g_variant_get_double(altitude),
|
||||||
|
GSWE_HOUSE_SYSTEM_PLACIDUS
|
||||||
|
);
|
||||||
g_variant_unref(longitude);
|
g_variant_unref(longitude);
|
||||||
g_variant_unref(latitude);
|
g_variant_unref(latitude);
|
||||||
g_variant_unref(altitude);
|
g_variant_unref(altitude);
|
||||||
@ -645,12 +910,18 @@ create_save_doc(AgChart *chart)
|
|||||||
timestamp = gswe_moment_get_timestamp(GSWE_MOMENT(chart));
|
timestamp = gswe_moment_get_timestamp(GSWE_MOMENT(chart));
|
||||||
|
|
||||||
value = g_malloc0(10);
|
value = g_malloc0(10);
|
||||||
g_ascii_dtostr(value, 10, gswe_timestamp_get_gregorian_year(timestamp, NULL));
|
g_ascii_dtostr(
|
||||||
|
value, 10,
|
||||||
|
gswe_timestamp_get_gregorian_year(timestamp, NULL)
|
||||||
|
);
|
||||||
xmlNewChild(time_node, NULL, BAD_CAST "year", BAD_CAST value);
|
xmlNewChild(time_node, NULL, BAD_CAST "year", BAD_CAST value);
|
||||||
g_free(value);
|
g_free(value);
|
||||||
|
|
||||||
value = g_malloc0(3);
|
value = g_malloc0(3);
|
||||||
g_ascii_dtostr(value, 3, gswe_timestamp_get_gregorian_month(timestamp, NULL));
|
g_ascii_dtostr(
|
||||||
|
value, 3,
|
||||||
|
gswe_timestamp_get_gregorian_month(timestamp, NULL)
|
||||||
|
);
|
||||||
xmlNewChild(time_node, NULL, BAD_CAST "month", BAD_CAST value);
|
xmlNewChild(time_node, NULL, BAD_CAST "month", BAD_CAST value);
|
||||||
g_free(value);
|
g_free(value);
|
||||||
|
|
||||||
@ -660,17 +931,26 @@ create_save_doc(AgChart *chart)
|
|||||||
g_free(value);
|
g_free(value);
|
||||||
|
|
||||||
value = g_malloc0(3);
|
value = g_malloc0(3);
|
||||||
g_ascii_dtostr(value, 3, gswe_timestamp_get_gregorian_hour(timestamp, NULL));
|
g_ascii_dtostr(
|
||||||
|
value, 3,
|
||||||
|
gswe_timestamp_get_gregorian_hour(timestamp, NULL)
|
||||||
|
);
|
||||||
xmlNewChild(time_node, NULL, BAD_CAST "hour", BAD_CAST value);
|
xmlNewChild(time_node, NULL, BAD_CAST "hour", BAD_CAST value);
|
||||||
g_free(value);
|
g_free(value);
|
||||||
|
|
||||||
value = g_malloc0(3);
|
value = g_malloc0(3);
|
||||||
g_ascii_dtostr(value, 3, gswe_timestamp_get_gregorian_minute(timestamp, NULL));
|
g_ascii_dtostr(
|
||||||
|
value, 3,
|
||||||
|
gswe_timestamp_get_gregorian_minute(timestamp, NULL)
|
||||||
|
);
|
||||||
xmlNewChild(time_node, NULL, BAD_CAST "minute", BAD_CAST value);
|
xmlNewChild(time_node, NULL, BAD_CAST "minute", BAD_CAST value);
|
||||||
g_free(value);
|
g_free(value);
|
||||||
|
|
||||||
value = g_malloc0(3);
|
value = g_malloc0(3);
|
||||||
g_ascii_dtostr(value, 3, gswe_timestamp_get_gregorian_second(timestamp, NULL));
|
g_ascii_dtostr(
|
||||||
|
value, 3,
|
||||||
|
gswe_timestamp_get_gregorian_second(timestamp, NULL)
|
||||||
|
);
|
||||||
xmlNewChild(time_node, NULL, BAD_CAST "second", BAD_CAST value);
|
xmlNewChild(time_node, NULL, BAD_CAST "second", BAD_CAST value);
|
||||||
g_free(value);
|
g_free(value);
|
||||||
|
|
||||||
@ -680,7 +960,12 @@ create_save_doc(AgChart *chart)
|
|||||||
g_free(value);
|
g_free(value);
|
||||||
|
|
||||||
if (ag_chart_get_note(chart)) {
|
if (ag_chart_get_note(chart)) {
|
||||||
xmlNewChild(root_node, NULL, BAD_CAST "note", BAD_CAST ag_chart_get_note(chart));
|
xmlNewChild(
|
||||||
|
root_node,
|
||||||
|
NULL,
|
||||||
|
BAD_CAST "note",
|
||||||
|
BAD_CAST ag_chart_get_note(chart)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return doc;
|
return doc;
|
||||||
@ -695,7 +980,17 @@ ag_chart_save_to_file(AgChart *chart, GFile *file, GError **err)
|
|||||||
|
|
||||||
xmlDocDumpFormatMemoryEnc(save_doc, &content, &length, "UTF-8", 1);
|
xmlDocDumpFormatMemoryEnc(save_doc, &content, &length, "UTF-8", 1);
|
||||||
|
|
||||||
g_file_replace_contents(file, (const gchar *)content, length, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, err);
|
g_file_replace_contents(
|
||||||
|
file,
|
||||||
|
(const gchar *)content,
|
||||||
|
length,
|
||||||
|
NULL,
|
||||||
|
FALSE,
|
||||||
|
G_FILE_CREATE_NONE,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
err
|
||||||
|
);
|
||||||
|
|
||||||
xmlFreeDoc(save_doc);
|
xmlFreeDoc(save_doc);
|
||||||
}
|
}
|
||||||
@ -737,7 +1032,8 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
|
|
||||||
root_node = xmlDocGetRootElement(doc);
|
root_node = xmlDocGetRootElement(doc);
|
||||||
|
|
||||||
// gswe_moment_get_house_cusps() also calculates ascmcs data, so call it this early
|
// gswe_moment_get_house_cusps() also calculates ascmcs data, so call it
|
||||||
|
// this early
|
||||||
houses = gswe_moment_get_house_cusps(GSWE_MOMENT(chart), NULL);
|
houses = gswe_moment_get_house_cusps(GSWE_MOMENT(chart), NULL);
|
||||||
|
|
||||||
// Begin <ascmcs> node
|
// Begin <ascmcs> node
|
||||||
@ -746,7 +1042,11 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
|
|
||||||
node = xmlNewChild(ascmcs_node, NULL, BAD_CAST "ascendant", NULL);
|
node = xmlNewChild(ascmcs_node, NULL, BAD_CAST "ascendant", NULL);
|
||||||
|
|
||||||
planet_data = gswe_moment_get_planet(GSWE_MOMENT(chart), GSWE_PLANET_ASCENDANT, NULL);
|
planet_data = gswe_moment_get_planet(
|
||||||
|
GSWE_MOMENT(chart),
|
||||||
|
GSWE_PLANET_ASCENDANT,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
value = g_malloc0(12);
|
value = g_malloc0(12);
|
||||||
g_ascii_dtostr(value, 12, gswe_planet_data_get_position(planet_data));
|
g_ascii_dtostr(value, 12, gswe_planet_data_get_position(planet_data));
|
||||||
xmlNewProp(node, BAD_CAST "degree_ut", BAD_CAST value);
|
xmlNewProp(node, BAD_CAST "degree_ut", BAD_CAST value);
|
||||||
@ -754,7 +1054,11 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
|
|
||||||
node = xmlNewChild(ascmcs_node, NULL, BAD_CAST "mc", NULL);
|
node = xmlNewChild(ascmcs_node, NULL, BAD_CAST "mc", NULL);
|
||||||
|
|
||||||
planet_data = gswe_moment_get_planet(GSWE_MOMENT(chart), GSWE_PLANET_MC, NULL);
|
planet_data = gswe_moment_get_planet(
|
||||||
|
GSWE_MOMENT(chart),
|
||||||
|
GSWE_PLANET_MC,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
value = g_malloc0(12);
|
value = g_malloc0(12);
|
||||||
g_ascii_dtostr(value, 12, gswe_planet_data_get_position(planet_data));
|
g_ascii_dtostr(value, 12, gswe_planet_data_get_position(planet_data));
|
||||||
xmlNewProp(node, BAD_CAST "degree_ut", BAD_CAST value);
|
xmlNewProp(node, BAD_CAST "degree_ut", BAD_CAST value);
|
||||||
@ -762,7 +1066,11 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
|
|
||||||
node = xmlNewChild(ascmcs_node, NULL, BAD_CAST "vertex", NULL);
|
node = xmlNewChild(ascmcs_node, NULL, BAD_CAST "vertex", NULL);
|
||||||
|
|
||||||
planet_data = gswe_moment_get_planet(GSWE_MOMENT(chart), GSWE_PLANET_VERTEX, NULL);
|
planet_data = gswe_moment_get_planet(
|
||||||
|
GSWE_MOMENT(chart),
|
||||||
|
GSWE_PLANET_VERTEX,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
value = g_malloc0(12);
|
value = g_malloc0(12);
|
||||||
g_ascii_dtostr(value, 12, gswe_planet_data_get_position(planet_data));
|
g_ascii_dtostr(value, 12, gswe_planet_data_get_position(planet_data));
|
||||||
xmlNewProp(node, BAD_CAST "degree_ut", BAD_CAST value);
|
xmlNewProp(node, BAD_CAST "degree_ut", BAD_CAST value);
|
||||||
@ -783,7 +1091,10 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
g_free(value);
|
g_free(value);
|
||||||
|
|
||||||
value = g_malloc0(12);
|
value = g_malloc0(12);
|
||||||
g_ascii_dtostr(value, 12, gswe_house_data_get_cusp_position(house_data));
|
g_ascii_dtostr(
|
||||||
|
value, 12,
|
||||||
|
gswe_house_data_get_cusp_position(house_data)
|
||||||
|
);
|
||||||
xmlNewProp(node, BAD_CAST "degree", BAD_CAST value);
|
xmlNewProp(node, BAD_CAST "degree", BAD_CAST value);
|
||||||
g_free(value);
|
g_free(value);
|
||||||
}
|
}
|
||||||
@ -794,21 +1105,28 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
|
|
||||||
planets_class = g_type_class_ref(GSWE_TYPE_PLANET);
|
planets_class = g_type_class_ref(GSWE_TYPE_PLANET);
|
||||||
|
|
||||||
for (planet = gswe_moment_get_all_planets(GSWE_MOMENT(chart)); planet; planet = g_list_next(planet)) {
|
for (
|
||||||
|
planet = gswe_moment_get_all_planets(GSWE_MOMENT(chart));
|
||||||
|
planet;
|
||||||
|
planet = g_list_next(planet)
|
||||||
|
) {
|
||||||
planet_data = planet->data;
|
planet_data = planet->data;
|
||||||
GEnumValue *enum_value;
|
GEnumValue *enum_value;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
(gswe_planet_data_get_planet(planet_data) == GSWE_PLANET_ASCENDANT) ||
|
(gswe_planet_data_get_planet(planet_data) == GSWE_PLANET_ASCENDANT)
|
||||||
(gswe_planet_data_get_planet(planet_data) == GSWE_PLANET_MC) ||
|
|| (gswe_planet_data_get_planet(planet_data) == GSWE_PLANET_MC)
|
||||||
(gswe_planet_data_get_planet(planet_data) == GSWE_PLANET_VERTEX)
|
|| (gswe_planet_data_get_planet(planet_data) == GSWE_PLANET_VERTEX)
|
||||||
) {
|
) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
node = xmlNewChild(bodies_node, NULL, BAD_CAST "body", NULL);
|
node = xmlNewChild(bodies_node, NULL, BAD_CAST "body", NULL);
|
||||||
|
|
||||||
enum_value = g_enum_get_value(G_ENUM_CLASS(planets_class), gswe_planet_data_get_planet(planet_data));
|
enum_value = g_enum_get_value(
|
||||||
|
G_ENUM_CLASS(planets_class),
|
||||||
|
gswe_planet_data_get_planet(planet_data)
|
||||||
|
);
|
||||||
xmlNewProp(node, BAD_CAST "name", BAD_CAST enum_value->value_name);
|
xmlNewProp(node, BAD_CAST "name", BAD_CAST enum_value->value_name);
|
||||||
|
|
||||||
value = g_malloc0(12);
|
value = g_malloc0(12);
|
||||||
@ -823,7 +1141,11 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
|
|
||||||
aspects_class = g_type_class_ref(GSWE_TYPE_ASPECT);
|
aspects_class = g_type_class_ref(GSWE_TYPE_ASPECT);
|
||||||
|
|
||||||
for (aspect = gswe_moment_get_all_aspects(GSWE_MOMENT(chart)); aspect; aspect = g_list_next(aspect)) {
|
for (
|
||||||
|
aspect = gswe_moment_get_all_aspects(GSWE_MOMENT(chart));
|
||||||
|
aspect;
|
||||||
|
aspect = g_list_next(aspect)
|
||||||
|
) {
|
||||||
GswePlanetData *planet_data;
|
GswePlanetData *planet_data;
|
||||||
GEnumValue *enum_value;
|
GEnumValue *enum_value;
|
||||||
|
|
||||||
@ -836,14 +1158,23 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
node = xmlNewChild(aspects_node, NULL, BAD_CAST "aspect", NULL);
|
node = xmlNewChild(aspects_node, NULL, BAD_CAST "aspect", NULL);
|
||||||
|
|
||||||
planet_data = gswe_aspect_data_get_planet1(aspect_data);
|
planet_data = gswe_aspect_data_get_planet1(aspect_data);
|
||||||
enum_value = g_enum_get_value(G_ENUM_CLASS(planets_class), gswe_planet_data_get_planet(planet_data));
|
enum_value = g_enum_get_value(
|
||||||
|
G_ENUM_CLASS(planets_class),
|
||||||
|
gswe_planet_data_get_planet(planet_data)
|
||||||
|
);
|
||||||
xmlNewProp(node, BAD_CAST "body1", BAD_CAST enum_value->value_name);
|
xmlNewProp(node, BAD_CAST "body1", BAD_CAST enum_value->value_name);
|
||||||
|
|
||||||
planet_data = gswe_aspect_data_get_planet2(aspect_data);
|
planet_data = gswe_aspect_data_get_planet2(aspect_data);
|
||||||
enum_value = g_enum_get_value(G_ENUM_CLASS(planets_class), gswe_planet_data_get_planet(planet_data));
|
enum_value = g_enum_get_value(
|
||||||
|
G_ENUM_CLASS(planets_class),
|
||||||
|
gswe_planet_data_get_planet(planet_data)
|
||||||
|
);
|
||||||
xmlNewProp(node, BAD_CAST "body2", BAD_CAST enum_value->value_name);
|
xmlNewProp(node, BAD_CAST "body2", BAD_CAST enum_value->value_name);
|
||||||
|
|
||||||
enum_value = g_enum_get_value(G_ENUM_CLASS(aspects_class), gswe_aspect_data_get_aspect(aspect_data));
|
enum_value = g_enum_get_value(
|
||||||
|
G_ENUM_CLASS(aspects_class),
|
||||||
|
gswe_aspect_data_get_aspect(aspect_data)
|
||||||
|
);
|
||||||
xmlNewProp(node, BAD_CAST "type", BAD_CAST enum_value->value_name);
|
xmlNewProp(node, BAD_CAST "type", BAD_CAST enum_value->value_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -854,26 +1185,41 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
antiscia_node = xmlNewChild(root_node, NULL, BAD_CAST "antiscia", NULL);
|
antiscia_node = xmlNewChild(root_node, NULL, BAD_CAST "antiscia", NULL);
|
||||||
antiscia_class = g_type_class_ref(GSWE_TYPE_ANTISCION_AXIS);
|
antiscia_class = g_type_class_ref(GSWE_TYPE_ANTISCION_AXIS);
|
||||||
|
|
||||||
for (antiscion = gswe_moment_get_all_antiscia(GSWE_MOMENT(chart)); antiscion; antiscion = g_list_next(antiscion)) {
|
for (
|
||||||
|
antiscion = gswe_moment_get_all_antiscia(GSWE_MOMENT(chart));
|
||||||
|
antiscion;
|
||||||
|
antiscion = g_list_next(antiscion)
|
||||||
|
) {
|
||||||
GswePlanetData *planet_data;
|
GswePlanetData *planet_data;
|
||||||
GsweAntiscionData *antiscion_data = antiscion->data;
|
GsweAntiscionData *antiscion_data = antiscion->data;
|
||||||
GEnumValue *enum_value;
|
GEnumValue *enum_value;
|
||||||
|
|
||||||
if (gswe_antiscion_data_get_axis(antiscion_data) == GSWE_ANTISCION_AXIS_NONE) {
|
if (gswe_antiscion_data_get_axis(
|
||||||
|
antiscion_data) == GSWE_ANTISCION_AXIS_NONE
|
||||||
|
) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
node = xmlNewChild(antiscia_node, NULL, BAD_CAST "antiscia", NULL);
|
node = xmlNewChild(antiscia_node, NULL, BAD_CAST "antiscia", NULL);
|
||||||
|
|
||||||
planet_data = gswe_antiscion_data_get_planet1(antiscion_data);
|
planet_data = gswe_antiscion_data_get_planet1(antiscion_data);
|
||||||
enum_value = g_enum_get_value(G_ENUM_CLASS(planets_class), gswe_planet_data_get_planet(planet_data));
|
enum_value = g_enum_get_value(
|
||||||
|
G_ENUM_CLASS(planets_class),
|
||||||
|
gswe_planet_data_get_planet(planet_data)
|
||||||
|
);
|
||||||
xmlNewProp(node, BAD_CAST "body1", BAD_CAST enum_value->value_name);
|
xmlNewProp(node, BAD_CAST "body1", BAD_CAST enum_value->value_name);
|
||||||
|
|
||||||
planet_data = gswe_antiscion_data_get_planet2(antiscion_data);
|
planet_data = gswe_antiscion_data_get_planet2(antiscion_data);
|
||||||
enum_value = g_enum_get_value(G_ENUM_CLASS(planets_class), gswe_planet_data_get_planet(planet_data));
|
enum_value = g_enum_get_value(
|
||||||
|
G_ENUM_CLASS(planets_class),
|
||||||
|
gswe_planet_data_get_planet(planet_data)
|
||||||
|
);
|
||||||
xmlNewProp(node, BAD_CAST "body2", BAD_CAST enum_value->value_name);
|
xmlNewProp(node, BAD_CAST "body2", BAD_CAST enum_value->value_name);
|
||||||
|
|
||||||
enum_value = g_enum_get_value(G_ENUM_CLASS(antiscia_class), gswe_antiscion_data_get_axis(antiscion_data));
|
enum_value = g_enum_get_value(
|
||||||
|
G_ENUM_CLASS(antiscia_class),
|
||||||
|
gswe_antiscion_data_get_axis(antiscion_data)
|
||||||
|
);
|
||||||
xmlNewProp(node, BAD_CAST "axis", BAD_CAST enum_value->value_name);
|
xmlNewProp(node, BAD_CAST "axis", BAD_CAST enum_value->value_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -889,7 +1235,12 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
stylesheet_path = g_strdup_printf("%s/%s", PKGDATADIR, "chart.xsl");
|
stylesheet_path = g_strdup_printf("%s/%s", PKGDATADIR, "chart.xsl");
|
||||||
g_debug("Opening %s as a stylesheet", stylesheet_path);
|
g_debug("Opening %s as a stylesheet", stylesheet_path);
|
||||||
if ((xslt_doc = xmlReadFile(stylesheet_path, "UTF-8", 0)) == NULL) {
|
if ((xslt_doc = xmlReadFile(stylesheet_path, "UTF-8", 0)) == NULL) {
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' can not be parsed as a stylesheet file.", stylesheet_path);
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE,
|
||||||
|
"File '%s' can not be parsed as a stylesheet file.",
|
||||||
|
stylesheet_path
|
||||||
|
);
|
||||||
g_free(stylesheet_path);
|
g_free(stylesheet_path);
|
||||||
g_free(css_path);
|
g_free(css_path);
|
||||||
g_free(css_uri);
|
g_free(css_uri);
|
||||||
@ -906,7 +1257,12 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((xslt_proc = xsltParseStylesheetDoc(xslt_doc)) == NULL) {
|
if ((xslt_proc = xsltParseStylesheetDoc(xslt_doc)) == NULL) {
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' can not be parsed as a stylesheet file.", stylesheet_path);
|
g_set_error(
|
||||||
|
err,
|
||||||
|
AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE,
|
||||||
|
"File '%s' can not be parsed as a stylesheet file.",
|
||||||
|
stylesheet_path
|
||||||
|
);
|
||||||
g_free(stylesheet_path);
|
g_free(stylesheet_path);
|
||||||
g_free(css_path);
|
g_free(css_path);
|
||||||
g_free(css_uri);
|
g_free(css_uri);
|
||||||
@ -938,7 +1294,13 @@ ag_chart_create_svg(AgChart *chart, gsize *length, GError **err)
|
|||||||
|
|
||||||
// Now, svg_doc contains the generated SVG file
|
// Now, svg_doc contains the generated SVG file
|
||||||
|
|
||||||
xmlDocDumpFormatMemoryEnc(svg_doc, (xmlChar **)&save_content, &save_length, "UTF-8", 1);
|
xmlDocDumpFormatMemoryEnc(
|
||||||
|
svg_doc,
|
||||||
|
(xmlChar **)&save_content,
|
||||||
|
&save_length,
|
||||||
|
"UTF-8",
|
||||||
|
1
|
||||||
|
);
|
||||||
xmlFreeDoc(svg_doc);
|
xmlFreeDoc(svg_doc);
|
||||||
|
|
||||||
if (length != NULL) {
|
if (length != NULL) {
|
||||||
@ -964,7 +1326,17 @@ ag_chart_export_svg_to_file(AgChart *chart, GFile *file, GError **err)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_file_replace_contents(file, (const gchar *)svg, length, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, err);
|
g_file_replace_contents(
|
||||||
|
file,
|
||||||
|
(const gchar *)svg,
|
||||||
|
length,
|
||||||
|
NULL,
|
||||||
|
FALSE,
|
||||||
|
G_FILE_CREATE_NONE,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
err
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -12,11 +12,17 @@ typedef enum {
|
|||||||
} AgChartError;
|
} AgChartError;
|
||||||
|
|
||||||
#define AG_TYPE_CHART (ag_chart_get_type())
|
#define AG_TYPE_CHART (ag_chart_get_type())
|
||||||
#define AG_CHART(o) (G_TYPE_CHECK_INSTANCE_CAST((o), AG_TYPE_CHART, AgChart))
|
#define AG_CHART(o) (G_TYPE_CHECK_INSTANCE_CAST((o), \
|
||||||
#define AG_CHART_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), AG_TYPE_CHART, AgChartClass))
|
AG_TYPE_CHART, \
|
||||||
|
AgChart))
|
||||||
|
#define AG_CHART_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \
|
||||||
|
AG_TYPE_CHART, \
|
||||||
|
AgChartClass))
|
||||||
#define AG_IS_CHART(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), AG_TYPE_CHART))
|
#define AG_IS_CHART(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), AG_TYPE_CHART))
|
||||||
#define AG_IS_CHART_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), AG_TYPE_CHART))
|
#define AG_IS_CHART_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), AG_TYPE_CHART))
|
||||||
#define AG_CHART_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), AG_TYPE_CHART, AgChartClass))
|
#define AG_CHART_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), \
|
||||||
|
AG_TYPE_CHART, \
|
||||||
|
AgChartClass))
|
||||||
|
|
||||||
typedef struct _AgChart AgChart;
|
typedef struct _AgChart AgChart;
|
||||||
typedef struct _AgChartClass AgChartClass;
|
typedef struct _AgChartClass AgChartClass;
|
||||||
|
@ -43,10 +43,25 @@ ag_preferences_class_init(AgPreferencesClass *klass)
|
|||||||
object_class->finalize = ag_preferences_finalize;
|
object_class->finalize = ag_preferences_finalize;
|
||||||
dialog_class->response = ag_preferences_response;
|
dialog_class->response = ag_preferences_response;
|
||||||
|
|
||||||
gtk_widget_class_set_template_from_resource(widget_class, "/eu/polonkai/gergely/Astrognome/ui/ag-preferences.ui");
|
gtk_widget_class_set_template_from_resource(
|
||||||
gtk_widget_class_bind_template_child_private(widget_class, AgPreferences, maximized);
|
widget_class,
|
||||||
gtk_widget_class_bind_template_child_private(widget_class, AgPreferences, planet_chars);
|
"/eu/polonkai/gergely/Astrognome/ui/ag-preferences.ui"
|
||||||
gtk_widget_class_bind_template_child_private(widget_class, AgPreferences, aspect_chars);
|
);
|
||||||
|
gtk_widget_class_bind_template_child_private(
|
||||||
|
widget_class,
|
||||||
|
AgPreferences,
|
||||||
|
maximized
|
||||||
|
);
|
||||||
|
gtk_widget_class_bind_template_child_private(
|
||||||
|
widget_class,
|
||||||
|
AgPreferences,
|
||||||
|
planet_chars
|
||||||
|
);
|
||||||
|
gtk_widget_class_bind_template_child_private(
|
||||||
|
widget_class,
|
||||||
|
AgPreferences,
|
||||||
|
aspect_chars
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -62,11 +77,29 @@ ag_preferences_init(AgPreferences *prefs)
|
|||||||
priv->settings = ag_settings_get();
|
priv->settings = ag_settings_get();
|
||||||
|
|
||||||
settings_window = ag_settings_peek_window_settings(priv->settings);
|
settings_window = ag_settings_peek_window_settings(priv->settings);
|
||||||
g_settings_bind(settings_window, "maximized", priv->maximized, "active", G_SETTINGS_BIND_DEFAULT);
|
g_settings_bind(
|
||||||
|
settings_window,
|
||||||
|
"maximized",
|
||||||
|
priv->maximized,
|
||||||
|
"active",
|
||||||
|
G_SETTINGS_BIND_DEFAULT
|
||||||
|
);
|
||||||
|
|
||||||
settings_main = ag_settings_peek_main_settings(priv->settings);
|
settings_main = ag_settings_peek_main_settings(priv->settings);
|
||||||
g_settings_bind(settings_main, "planets-char", priv->planet_chars, "active", G_SETTINGS_BIND_DEFAULT);
|
g_settings_bind(
|
||||||
g_settings_bind(settings_main, "aspects-char", priv->aspect_chars, "active", G_SETTINGS_BIND_DEFAULT);
|
settings_main,
|
||||||
|
"planets-char",
|
||||||
|
priv->planet_chars,
|
||||||
|
"active",
|
||||||
|
G_SETTINGS_BIND_DEFAULT
|
||||||
|
);
|
||||||
|
g_settings_bind(
|
||||||
|
settings_main,
|
||||||
|
"aspects-char",
|
||||||
|
priv->aspect_chars,
|
||||||
|
"active",
|
||||||
|
G_SETTINGS_BIND_DEFAULT
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -76,7 +109,12 @@ ag_preferences_show_dialog(GtkWindow *parent)
|
|||||||
|
|
||||||
if (prefs_dialog == NULL) {
|
if (prefs_dialog == NULL) {
|
||||||
prefs_dialog = GTK_WIDGET(g_object_new(AG_TYPE_PREFERENCES, NULL));
|
prefs_dialog = GTK_WIDGET(g_object_new(AG_TYPE_PREFERENCES, NULL));
|
||||||
g_signal_connect(prefs_dialog, "destroy", G_CALLBACK(gtk_widget_destroyed), &prefs_dialog);
|
g_signal_connect(
|
||||||
|
prefs_dialog,
|
||||||
|
"destroy",
|
||||||
|
G_CALLBACK(gtk_widget_destroyed),
|
||||||
|
&prefs_dialog
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parent != gtk_window_get_transient_for(GTK_WINDOW(prefs_dialog))) {
|
if (parent != gtk_window_get_transient_for(GTK_WINDOW(prefs_dialog))) {
|
||||||
|
@ -6,11 +6,19 @@
|
|||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define AG_TYPE_PREFERENCES (ag_preferences_get_type())
|
#define AG_TYPE_PREFERENCES (ag_preferences_get_type())
|
||||||
#define AG_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST((o), AG_TYPE_PREFERENCES, AgPreferences))
|
#define AG_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST((o), \
|
||||||
#define AG_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), AG_TYPE_PREFERENCES, AgPreferencesClass))
|
AG_TYPE_PREFERENCES, \
|
||||||
#define AG_IS_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), AG_TYPE_PREFERENCES))
|
AgPreferences))
|
||||||
#define AG_IS_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), AG_TYPE_PREFERENCES))
|
#define AG_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \
|
||||||
#define AG_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), AG_TYPE_PREFERENCES, AgPreferencesClass))
|
AG_TYPE_PREFERENCES, \
|
||||||
|
AgPreferencesClass))
|
||||||
|
#define AG_IS_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), \
|
||||||
|
AG_TYPE_PREFERENCES))
|
||||||
|
#define AG_IS_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), \
|
||||||
|
AG_TYPE_PREFERENCES))
|
||||||
|
#define AG_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), \
|
||||||
|
AG_TYPE_PREFERENCES, \
|
||||||
|
AgPreferencesClass))
|
||||||
|
|
||||||
typedef struct _AgPreferences AgPreferences;
|
typedef struct _AgPreferences AgPreferences;
|
||||||
typedef struct _AgPreferencesClass AgPreferencesClass;
|
typedef struct _AgPreferencesClass AgPreferencesClass;
|
||||||
|
@ -27,7 +27,9 @@ ag_settings_init(AgSettings *settings)
|
|||||||
static void
|
static void
|
||||||
ag_settings_dispose(GObject *object)
|
ag_settings_dispose(GObject *object)
|
||||||
{
|
{
|
||||||
AgSettingsPrivate *priv = ag_settings_get_instance_private(AG_SETTINGS(object));
|
AgSettingsPrivate *priv = ag_settings_get_instance_private(
|
||||||
|
AG_SETTINGS(object)
|
||||||
|
);
|
||||||
|
|
||||||
g_clear_object(&priv->settings_window);
|
g_clear_object(&priv->settings_window);
|
||||||
g_clear_object(&priv->settings_chart);
|
g_clear_object(&priv->settings_chart);
|
||||||
|
@ -7,11 +7,19 @@
|
|||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define AG_TYPE_SETTINGS (ag_settings_get_type())
|
#define AG_TYPE_SETTINGS (ag_settings_get_type())
|
||||||
#define AG_SETTINGS(o) (G_TYPE_CHECK_INSTANCE_CAST((o), AG_TYPE_SETTINGS, AgSettings))
|
#define AG_SETTINGS(o) (G_TYPE_CHECK_INSTANCE_CAST((o), \
|
||||||
#define AG_SETTINGS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), AG_TYPE_SETTINGS, AgSettingsClass))
|
AG_TYPE_SETTINGS, \
|
||||||
#define AG_IS_SETTINGS(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), AG_TYPE_SETTINGS))
|
AgSettings))
|
||||||
#define AG_IS_SETTINGS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), AG_TYPE_SETTINGS))
|
#define AG_SETTINGS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \
|
||||||
#define AG_SETTINGS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), AG_TYPE_SETTINGS, AgSettingsClass))
|
AG_TYPE_SETTINGS, \
|
||||||
|
AgSettingsClass))
|
||||||
|
#define AG_IS_SETTINGS(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), \
|
||||||
|
AG_TYPE_SETTINGS))
|
||||||
|
#define AG_IS_SETTINGS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), \
|
||||||
|
AG_TYPE_SETTINGS))
|
||||||
|
#define AG_SETTINGS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), \
|
||||||
|
AG_TYPE_SETTINGS, \
|
||||||
|
AgSettingsClass))
|
||||||
|
|
||||||
typedef struct _AgSettings AgSettings;
|
typedef struct _AgSettings AgSettings;
|
||||||
typedef struct _AgSettingsClass AgSettingsClass;
|
typedef struct _AgSettingsClass AgSettingsClass;
|
||||||
|
176
src/ag-window.c
176
src/ag-window.c
@ -398,7 +398,8 @@ ag_window_create_planet_widget(GswePlanetInfo *planet_info)
|
|||||||
switch (planet) {
|
switch (planet) {
|
||||||
case GSWE_PLANET_SUN:
|
case GSWE_PLANET_SUN:
|
||||||
return gtk_image_new_from_resource(
|
return gtk_image_new_from_resource(
|
||||||
"/eu/polonkai/gergely/Astrognome/default-icons/planet-sun.svg"
|
"/eu/polonkai/gergely"
|
||||||
|
"/Astrognome/default-icons/planet-sun.svg"
|
||||||
);
|
);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -482,7 +483,11 @@ ag_window_redraw_aspect_table(AgWindow *window)
|
|||||||
GList *planet;
|
GList *planet;
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
for (planet = planet_list, i = 0; planet; planet = g_list_next(planet), i++) {
|
for (
|
||||||
|
planet = planet_list, i = 0;
|
||||||
|
planet;
|
||||||
|
planet = g_list_next(planet), i++
|
||||||
|
) {
|
||||||
GtkWidget *label_hor,
|
GtkWidget *label_hor,
|
||||||
*label_ver,
|
*label_ver,
|
||||||
*current_widget;
|
*current_widget;
|
||||||
@ -491,56 +496,111 @@ ag_window_redraw_aspect_table(AgWindow *window)
|
|||||||
GswePlanetInfo *planet_info;
|
GswePlanetInfo *planet_info;
|
||||||
|
|
||||||
planet_id = GPOINTER_TO_INT(planet->data);
|
planet_id = GPOINTER_TO_INT(planet->data);
|
||||||
planet_data = gswe_moment_get_planet(GSWE_MOMENT(priv->chart), planet_id, NULL);
|
planet_data = gswe_moment_get_planet(
|
||||||
|
GSWE_MOMENT(priv->chart),
|
||||||
|
planet_id,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
planet_info = gswe_planet_data_get_planet_info(planet_data);
|
planet_info = gswe_planet_data_get_planet_info(planet_data);
|
||||||
|
|
||||||
if ((current_widget = gtk_grid_get_child_at(GTK_GRID(priv->aspect_table), i + 1, i)) != NULL) {
|
if ((current_widget = gtk_grid_get_child_at(
|
||||||
gtk_container_remove(GTK_CONTAINER(priv->aspect_table), current_widget);
|
GTK_GRID(priv->aspect_table),
|
||||||
|
i + 1, i
|
||||||
|
)) != NULL) {
|
||||||
|
gtk_container_remove(
|
||||||
|
GTK_CONTAINER(priv->aspect_table),
|
||||||
|
current_widget
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
label_hor = ag_window_create_planet_widget(planet_info);
|
label_hor = ag_window_create_planet_widget(planet_info);
|
||||||
gtk_grid_attach(GTK_GRID(priv->aspect_table), label_hor, i + 1, i, 1, 1);
|
gtk_grid_attach(
|
||||||
|
GTK_GRID(priv->aspect_table),
|
||||||
|
label_hor,
|
||||||
|
i + 1, i,
|
||||||
|
1, 1
|
||||||
|
);
|
||||||
|
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
if ((current_widget = gtk_grid_get_child_at(GTK_GRID(priv->aspect_table), 0, i)) != NULL) {
|
if ((current_widget = gtk_grid_get_child_at(
|
||||||
gtk_container_remove(GTK_CONTAINER(priv->aspect_table), current_widget);
|
GTK_GRID(priv->aspect_table),
|
||||||
|
0, i
|
||||||
|
)) != NULL) {
|
||||||
|
gtk_container_remove(
|
||||||
|
GTK_CONTAINER(priv->aspect_table),
|
||||||
|
current_widget
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
label_ver = ag_window_create_planet_widget(planet_info);
|
label_ver = ag_window_create_planet_widget(planet_info);
|
||||||
gtk_grid_attach(GTK_GRID(priv->aspect_table), label_ver, 0, i, 1, 1);
|
gtk_grid_attach(
|
||||||
|
GTK_GRID(priv->aspect_table),
|
||||||
|
label_ver,
|
||||||
|
0, i,
|
||||||
|
1, 1
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->aspect_table_populated = TRUE;
|
priv->aspect_table_populated = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (planet1 = planet_list, i = 0; planet1; planet1 = g_list_next(planet1), i++) {
|
for (
|
||||||
for (planet2 = planet_list, j = 0; planet2; planet2 = g_list_next(planet2), j++) {
|
planet1 = planet_list, i = 0;
|
||||||
|
planet1;
|
||||||
|
planet1 = g_list_next(planet1), i++
|
||||||
|
) {
|
||||||
|
for (
|
||||||
|
planet2 = planet_list, j = 0;
|
||||||
|
planet2;
|
||||||
|
planet2 = g_list_next(planet2), j++
|
||||||
|
) {
|
||||||
GsweAspectData *aspect;
|
GsweAspectData *aspect;
|
||||||
GtkWidget *aspect_widget;
|
GtkWidget *aspect_widget;
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
|
|
||||||
if (GPOINTER_TO_INT(planet1->data) == GPOINTER_TO_INT(planet2->data)) {
|
if (GPOINTER_TO_INT(planet1->data)
|
||||||
|
== GPOINTER_TO_INT(planet2->data)
|
||||||
|
) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((aspect_widget = gtk_grid_get_child_at(GTK_GRID(priv->aspect_table), j + 1, i)) != NULL) {
|
if ((aspect_widget = gtk_grid_get_child_at(
|
||||||
gtk_container_remove(GTK_CONTAINER(priv->aspect_table), aspect_widget);
|
GTK_GRID(priv->aspect_table),
|
||||||
|
j + 1, i
|
||||||
|
)) != NULL) {
|
||||||
|
gtk_container_remove(
|
||||||
|
GTK_CONTAINER(priv->aspect_table),
|
||||||
|
aspect_widget
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((aspect = gswe_moment_get_aspect_by_planets(GSWE_MOMENT(priv->chart), GPOINTER_TO_INT(planet1->data), GPOINTER_TO_INT(planet2->data), &err)) != NULL) {
|
if ((aspect = gswe_moment_get_aspect_by_planets(
|
||||||
|
GSWE_MOMENT(priv->chart),
|
||||||
|
GPOINTER_TO_INT(planet1->data),
|
||||||
|
GPOINTER_TO_INT(planet2->data),
|
||||||
|
&err
|
||||||
|
)) != NULL) {
|
||||||
GsweAspectInfo *aspect_info;
|
GsweAspectInfo *aspect_info;
|
||||||
|
|
||||||
aspect_info = gswe_aspect_data_get_aspect_info(aspect);
|
aspect_info = gswe_aspect_data_get_aspect_info(aspect);
|
||||||
|
|
||||||
if (gswe_aspect_data_get_aspect(aspect) != GSWE_ASPECT_NONE) {
|
if (gswe_aspect_data_get_aspect(aspect) != GSWE_ASPECT_NONE) {
|
||||||
aspect_widget = ag_window_create_aspect_widget(aspect_info);
|
aspect_widget = ag_window_create_aspect_widget(aspect_info);
|
||||||
gtk_grid_attach(GTK_GRID(priv->aspect_table), aspect_widget, j + 1, i, 1, 1);
|
gtk_grid_attach(
|
||||||
|
GTK_GRID(priv->aspect_table),
|
||||||
|
aspect_widget,
|
||||||
|
j + 1, i,
|
||||||
|
1, 1
|
||||||
|
);
|
||||||
}
|
}
|
||||||
} else if (err) {
|
} else if (err) {
|
||||||
g_warning("%s\n", err->message);
|
g_warning("%s\n", err->message);
|
||||||
} else {
|
} else {
|
||||||
g_error("No aspect is returned between two planets. This is a bug in SWE-GLib!\n");
|
g_error(
|
||||||
|
"No aspect is returned between two planets. " \
|
||||||
|
"This is a bug in SWE-GLib!"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -659,16 +719,36 @@ recalculate_chart(AgWindow *window)
|
|||||||
end_iter;
|
end_iter;
|
||||||
gchar *note;
|
gchar *note;
|
||||||
AgWindowPrivate *priv = ag_window_get_instance_private(window);
|
AgWindowPrivate *priv = ag_window_get_instance_private(window);
|
||||||
gint year = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(priv->year)),
|
gint year = gtk_spin_button_get_value_as_int(
|
||||||
month = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(priv->month)),
|
GTK_SPIN_BUTTON(priv->year)
|
||||||
day = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(priv->day)),
|
),
|
||||||
hour = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(priv->hour)),
|
month = gtk_spin_button_get_value_as_int(
|
||||||
minute = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(priv->minute)),
|
GTK_SPIN_BUTTON(priv->month)
|
||||||
second = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(priv->second));
|
),
|
||||||
gdouble longitude = gtk_spin_button_get_value(GTK_SPIN_BUTTON(priv->longitude)),
|
day = gtk_spin_button_get_value_as_int(
|
||||||
latitude = gtk_spin_button_get_value(GTK_SPIN_BUTTON(priv->latitude));
|
GTK_SPIN_BUTTON(priv->day)
|
||||||
gboolean south = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->south_lat)),
|
),
|
||||||
west = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->west_long));
|
hour = gtk_spin_button_get_value_as_int(
|
||||||
|
GTK_SPIN_BUTTON(priv->hour)
|
||||||
|
),
|
||||||
|
minute = gtk_spin_button_get_value_as_int(
|
||||||
|
GTK_SPIN_BUTTON(priv->minute)
|
||||||
|
),
|
||||||
|
second = gtk_spin_button_get_value_as_int(
|
||||||
|
GTK_SPIN_BUTTON(priv->second)
|
||||||
|
);
|
||||||
|
gdouble longitude = gtk_spin_button_get_value(
|
||||||
|
GTK_SPIN_BUTTON(priv->longitude)
|
||||||
|
),
|
||||||
|
latitude = gtk_spin_button_get_value(
|
||||||
|
GTK_SPIN_BUTTON(priv->latitude)
|
||||||
|
);
|
||||||
|
gboolean south = gtk_toggle_button_get_active(
|
||||||
|
GTK_TOGGLE_BUTTON(priv->south_lat)
|
||||||
|
),
|
||||||
|
west = gtk_toggle_button_get_active(
|
||||||
|
GTK_TOGGLE_BUTTON(priv->west_long)
|
||||||
|
);
|
||||||
|
|
||||||
g_debug("Recalculating chart data");
|
g_debug("Recalculating chart data");
|
||||||
|
|
||||||
@ -682,19 +762,42 @@ recalculate_chart(AgWindow *window)
|
|||||||
|
|
||||||
// TODO: Set timezone according to the city selected!
|
// TODO: Set timezone according to the city selected!
|
||||||
if (priv->chart == NULL) {
|
if (priv->chart == NULL) {
|
||||||
timestamp = gswe_timestamp_new_from_gregorian_full(year, month, day, hour, minute, second, 0, 1.0);
|
timestamp = gswe_timestamp_new_from_gregorian_full(
|
||||||
|
year, month, day,
|
||||||
|
hour, minute, second, 0,
|
||||||
|
1.0
|
||||||
|
);
|
||||||
// TODO: make house system configurable
|
// TODO: make house system configurable
|
||||||
priv->chart = ag_chart_new_full(timestamp, longitude, latitude, 380.0, GSWE_HOUSE_SYSTEM_PLACIDUS);
|
priv->chart = ag_chart_new_full(
|
||||||
g_signal_connect(priv->chart, "changed", G_CALLBACK(chart_changed), window);
|
timestamp,
|
||||||
|
longitude, latitude, 380.0,
|
||||||
|
GSWE_HOUSE_SYSTEM_PLACIDUS
|
||||||
|
);
|
||||||
|
g_signal_connect(
|
||||||
|
priv->chart,
|
||||||
|
"changed",
|
||||||
|
G_CALLBACK(chart_changed),
|
||||||
|
window
|
||||||
|
);
|
||||||
ag_window_redraw_chart(window);
|
ag_window_redraw_chart(window);
|
||||||
} else {
|
} else {
|
||||||
timestamp = gswe_moment_get_timestamp(GSWE_MOMENT(priv->chart));
|
timestamp = gswe_moment_get_timestamp(GSWE_MOMENT(priv->chart));
|
||||||
gswe_timestamp_set_gregorian_full(timestamp, year, month, day, hour, minute, second, 0, 1.0, NULL);
|
gswe_timestamp_set_gregorian_full(
|
||||||
|
timestamp,
|
||||||
|
year, month, day,
|
||||||
|
hour, minute, second, 0,
|
||||||
|
1.0,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
ag_chart_set_name(priv->chart, gtk_entry_get_text(GTK_ENTRY(priv->name)));
|
ag_chart_set_name(priv->chart, gtk_entry_get_text(GTK_ENTRY(priv->name)));
|
||||||
gtk_text_buffer_get_bounds(priv->note_buffer, &start_iter, &end_iter);
|
gtk_text_buffer_get_bounds(priv->note_buffer, &start_iter, &end_iter);
|
||||||
note = gtk_text_buffer_get_text(priv->note_buffer, &start_iter, &end_iter, TRUE);
|
note = gtk_text_buffer_get_text(
|
||||||
|
priv->note_buffer,
|
||||||
|
&start_iter, &end_iter,
|
||||||
|
TRUE
|
||||||
|
);
|
||||||
ag_chart_set_note(priv->chart, note);
|
ag_chart_set_note(priv->chart, note);
|
||||||
g_free(note);
|
g_free(note);
|
||||||
}
|
}
|
||||||
@ -732,7 +835,9 @@ ag_window_tab_changed_cb(GtkStack *stack, GParamSpec *pspec, AgWindow *window)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ag_window_change_tab_action(GSimpleAction *action, GVariant *parameter, gpointer user_data)
|
ag_window_change_tab_action(GSimpleAction *action,
|
||||||
|
GVariant *parameter,
|
||||||
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
AgWindow *window = AG_WINDOW(user_data);
|
AgWindow *window = AG_WINDOW(user_data);
|
||||||
const gchar *target_tab = g_variant_get_string(parameter, NULL);
|
const gchar *target_tab = g_variant_get_string(parameter, NULL);
|
||||||
@ -1072,7 +1177,10 @@ ag_window_settings_save(GtkWindow *window, GSettings *settings)
|
|||||||
gboolean maximized;
|
gboolean maximized;
|
||||||
|
|
||||||
state = gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(window)));
|
state = gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(window)));
|
||||||
maximized = ((state & GDK_WINDOW_STATE_MAXIMIZED) == GDK_WINDOW_STATE_MAXIMIZED);
|
maximized = (
|
||||||
|
(state & GDK_WINDOW_STATE_MAXIMIZED)
|
||||||
|
== GDK_WINDOW_STATE_MAXIMIZED
|
||||||
|
);
|
||||||
|
|
||||||
g_settings_set_boolean(settings, "maximized", maximized);
|
g_settings_set_boolean(settings, "maximized", maximized);
|
||||||
|
|
||||||
|
@ -15,11 +15,17 @@ typedef enum {
|
|||||||
} AgWindowError;
|
} AgWindowError;
|
||||||
|
|
||||||
#define AG_TYPE_WINDOW (ag_window_get_type())
|
#define AG_TYPE_WINDOW (ag_window_get_type())
|
||||||
#define AG_WINDOW(o) (G_TYPE_CHECK_INSTANCE_CAST((o), AG_TYPE_WINDOW, AgWindow))
|
#define AG_WINDOW(o) (G_TYPE_CHECK_INSTANCE_CAST((o), \
|
||||||
#define AG_WINDOW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), AG_TYPE_WINDOW, AgWindowClass))
|
AG_TYPE_WINDOW, \
|
||||||
|
AgWindow))
|
||||||
|
#define AG_WINDOW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \
|
||||||
|
AG_TYPE_WINDOW, \
|
||||||
|
AgWindowClass))
|
||||||
#define AG_IS_WINDOW(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), AG_TYPE_WINDOW))
|
#define AG_IS_WINDOW(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), AG_TYPE_WINDOW))
|
||||||
#define AG_IS_WINDOW_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), AG_TYPE_WINDOW))
|
#define AG_IS_WINDOW_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), AG_TYPE_WINDOW))
|
||||||
#define AG_WINDOW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), AG_TYPE_WINDOW, AgWindowClass))
|
#define AG_WINDOW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), \
|
||||||
|
AG_TYPE_WINDOW, \
|
||||||
|
AgWindowClass))
|
||||||
|
|
||||||
typedef struct _AgWindow AgWindow;
|
typedef struct _AgWindow AgWindow;
|
||||||
typedef struct _AgWindowClass AgWindowClass;
|
typedef struct _AgWindowClass AgWindowClass;
|
||||||
|
@ -56,9 +56,27 @@ main(int argc, char *argv[])
|
|||||||
AstrognomeOptions options;
|
AstrognomeOptions options;
|
||||||
|
|
||||||
GOptionEntry option_entries[] = {
|
GOptionEntry option_entries[] = {
|
||||||
{ "new-window", 'n', 0, G_OPTION_ARG_NONE, &(options.new_window), N_("Opens a new Astrognome window"), NULL },
|
{
|
||||||
{ "version", 'v', 0, G_OPTION_ARG_NONE, &(options.version), N_("Display version and exit"), NULL },
|
"new-window", 'n',
|
||||||
{ "quit", 'q', 0, G_OPTION_ARG_NONE, &(options.quit), N_("Quit any running Astrognome"), NULL },
|
0, G_OPTION_ARG_NONE,
|
||||||
|
&(options.new_window),
|
||||||
|
N_("Opens a new Astrognome window"),
|
||||||
|
NULL
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version", 'v',
|
||||||
|
0, G_OPTION_ARG_NONE,
|
||||||
|
&(options.version),
|
||||||
|
N_("Display version and exit"),
|
||||||
|
NULL
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quit", 'q',
|
||||||
|
0, G_OPTION_ARG_NONE,
|
||||||
|
&(options.quit),
|
||||||
|
N_("Quit any running Astrognome"),
|
||||||
|
NULL
|
||||||
|
},
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -78,7 +96,10 @@ main(int argc, char *argv[])
|
|||||||
|
|
||||||
memset(&options, 0, sizeof(AstrognomeOptions));
|
memset(&options, 0, sizeof(AstrognomeOptions));
|
||||||
|
|
||||||
if (!gtk_init_with_args(&argc, &argv, _("[FILE…]"), option_entries, GETTEXT_PACKAGE, &err)) {
|
if (!gtk_init_with_args(
|
||||||
|
&argc, &argv,
|
||||||
|
_("[FILE…]"
|
||||||
|
), option_entries, GETTEXT_PACKAGE, &err)) {
|
||||||
g_printerr("%s\n", err->message);
|
g_printerr("%s\n", err->message);
|
||||||
|
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
@ -96,7 +117,10 @@ main(int argc, char *argv[])
|
|||||||
g_application_set_default(G_APPLICATION(app));
|
g_application_set_default(G_APPLICATION(app));
|
||||||
|
|
||||||
if (!g_application_register(G_APPLICATION(app), NULL, &err)) {
|
if (!g_application_register(G_APPLICATION(app), NULL, &err)) {
|
||||||
g_printerr("Couldn't register Astrognome instance: '%s'\n", (err) ? err->message : "");
|
g_printerr(
|
||||||
|
"Couldn't register Astrognome instance: '%s'\n",
|
||||||
|
(err) ? err->message : ""
|
||||||
|
);
|
||||||
g_object_unref(app);
|
g_object_unref(app);
|
||||||
|
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
@ -115,4 +139,3 @@ main(int argc, char *argv[])
|
|||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user