Refactor AgDb
Rename functions and type names so they are clearly related to charts. This is required to implement display theme manipulation in the database.
This commit is contained in:
		| @@ -1151,7 +1151,7 @@ AgChart *ag_chart_load_from_placidus_file(GFile  *file, | |||||||
| } | } | ||||||
|  |  | ||||||
| AgChart * | AgChart * | ||||||
| ag_chart_new_from_db_save(AgDbSave *save_data, GError **err) | ag_chart_new_from_db_save(AgDbChartSave *save_data, GError **err) | ||||||
| { | { | ||||||
|     GsweTimestamp   *timestamp; |     GsweTimestamp   *timestamp; | ||||||
|     gchar           *house_system_enum_name; |     gchar           *house_system_enum_name; | ||||||
| @@ -1782,12 +1782,12 @@ ag_chart_get_note(AgChart *chart) | |||||||
|     return priv->note; |     return priv->note; | ||||||
| } | } | ||||||
|  |  | ||||||
| AgDbSave * | AgDbChartSave * | ||||||
| ag_chart_get_db_save(AgChart *chart, gint db_id) | ag_chart_get_db_save(AgChart *chart, gint db_id) | ||||||
| { | { | ||||||
|     GsweCoordinates *coords; |     GsweCoordinates *coords; | ||||||
|     AgChartPrivate  *priv      = ag_chart_get_instance_private(chart); |     AgChartPrivate  *priv      = ag_chart_get_instance_private(chart); | ||||||
|     AgDbSave        *save_data = g_new0(AgDbSave, 1); |     AgDbChartSave   *save_data = g_new0(AgDbChartSave, 1); | ||||||
|     GsweTimestamp   *timestamp = gswe_moment_get_timestamp(GSWE_MOMENT(chart)); |     GsweTimestamp   *timestamp = gswe_moment_get_timestamp(GSWE_MOMENT(chart)); | ||||||
|     GEnumClass      *house_system_class; |     GEnumClass      *house_system_class; | ||||||
|     GEnumValue      *house_system_enum; |     GEnumValue      *house_system_enum; | ||||||
|   | |||||||
| @@ -57,7 +57,7 @@ AgChart *ag_chart_load_from_agc(GFile  *file, | |||||||
| AgChart *ag_chart_load_from_placidus_file(GFile  *file, | AgChart *ag_chart_load_from_placidus_file(GFile  *file, | ||||||
|                                           GError **err); |                                           GError **err); | ||||||
|  |  | ||||||
| AgChart *ag_chart_new_from_db_save(AgDbSave *save_data, GError **err); | AgChart *ag_chart_new_from_db_save(AgDbChartSave *save_data, GError **err); | ||||||
|  |  | ||||||
| void ag_chart_save_to_file(AgChart *chart, | void ag_chart_save_to_file(AgChart *chart, | ||||||
|                            GFile   *file, |                            GFile   *file, | ||||||
| @@ -92,7 +92,7 @@ void ag_chart_set_note(AgChart *chart, const gchar *note); | |||||||
|  |  | ||||||
| const gchar *ag_chart_get_note(AgChart *chart); | const gchar *ag_chart_get_note(AgChart *chart); | ||||||
|  |  | ||||||
| AgDbSave *ag_chart_get_db_save(AgChart *chart, gint db_id); | AgDbChartSave *ag_chart_get_db_save(AgChart *chart, gint db_id); | ||||||
|  |  | ||||||
| #define AG_CHART_ERROR (ag_chart_error_quark()) | #define AG_CHART_ERROR (ag_chart_error_quark()) | ||||||
| GQuark ag_chart_error_quark(void); | GQuark ag_chart_error_quark(void); | ||||||
|   | |||||||
							
								
								
									
										189
									
								
								src/ag-db.c
									
									
									
									
									
								
							
							
						
						
									
										189
									
								
								src/ag-db.c
									
									
									
									
									
								
							| @@ -22,50 +22,50 @@ G_DEFINE_QUARK(ag_db_error_quark, ag_db_error); | |||||||
|  |  | ||||||
| G_DEFINE_TYPE_WITH_PRIVATE(AgDb, ag_db, G_TYPE_OBJECT); | G_DEFINE_TYPE_WITH_PRIVATE(AgDb, ag_db, G_TYPE_OBJECT); | ||||||
|  |  | ||||||
| typedef enum { | enum { | ||||||
|     COLUMN_ID, |     COLUMN_CHART_ID, | ||||||
|     COLUMN_NAME, |     COLUMN_CHART_NAME, | ||||||
|     COLUMN_COUNTRY, |     COLUMN_CHART_COUNTRY, | ||||||
|     COLUMN_CITY, |     COLUMN_CHART_CITY, | ||||||
|     COLUMN_LONGITUDE, |     COLUMN_CHART_LONGITUDE, | ||||||
|     COLUMN_LATITUDE, |     COLUMN_CHART_LATITUDE, | ||||||
|     COLUMN_ALTITUDE, |     COLUMN_CHART_ALTITUDE, | ||||||
|     COLUMN_YEAR, |     COLUMN_CHART_YEAR, | ||||||
|     COLUMN_MONTH, |     COLUMN_CHART_MONTH, | ||||||
|     COLUMN_DAY, |     COLUMN_CHART_DAY, | ||||||
|     COLUMN_HOUR, |     COLUMN_CHART_HOUR, | ||||||
|     COLUMN_MINUTE, |     COLUMN_CHART_MINUTE, | ||||||
|     COLUMN_SECOND, |     COLUMN_CHART_SECOND, | ||||||
|     COLUMN_TIMEZONE, |     COLUMN_CHART_TIMEZONE, | ||||||
|     COLUMN_HOUSE_SYSTEM, |     COLUMN_CHART_HOUSE_SYSTEM, | ||||||
|     COLUMN_NOTE, |     COLUMN_CHART_NOTE, | ||||||
|  |  | ||||||
|     /* Leave this as the last element */ |     /* Leave this as the last element */ | ||||||
|     COLUMN_COUNT |     COLUMN_CHART_COUNT | ||||||
| } ChartTableColumn; | }; | ||||||
|  |  | ||||||
| typedef struct { | typedef struct { | ||||||
|     ChartTableColumn id; |     int id; | ||||||
|     gchar *name; |     gchar *name; | ||||||
| } ChartTableColumnDef; | } TableColumnDef; | ||||||
|  |  | ||||||
| static ChartTableColumnDef chart_table_column[] = { | static TableColumnDef chart_table_column[] = { | ||||||
|     { COLUMN_ID,           "id" }, |     { COLUMN_CHART_ID,           "id" }, | ||||||
|     { COLUMN_NAME,         "name" }, |     { COLUMN_CHART_NAME,         "name" }, | ||||||
|     { COLUMN_COUNTRY,      "country_name" }, |     { COLUMN_CHART_COUNTRY,      "country_name" }, | ||||||
|     { COLUMN_CITY,         "city_name" }, |     { COLUMN_CHART_CITY,         "city_name" }, | ||||||
|     { COLUMN_LONGITUDE,    "longitude" }, |     { COLUMN_CHART_LONGITUDE,    "longitude" }, | ||||||
|     { COLUMN_LATITUDE,     "latitude" }, |     { COLUMN_CHART_LATITUDE,     "latitude" }, | ||||||
|     { COLUMN_ALTITUDE,     "altitude" }, |     { COLUMN_CHART_ALTITUDE,     "altitude" }, | ||||||
|     { COLUMN_YEAR,         "year" }, |     { COLUMN_CHART_YEAR,         "year" }, | ||||||
|     { COLUMN_MONTH,        "month" }, |     { COLUMN_CHART_MONTH,        "month" }, | ||||||
|     { COLUMN_DAY,          "day" }, |     { COLUMN_CHART_DAY,          "day" }, | ||||||
|     { COLUMN_HOUR,         "hour" }, |     { COLUMN_CHART_HOUR,         "hour" }, | ||||||
|     { COLUMN_MINUTE,       "minute" }, |     { COLUMN_CHART_MINUTE,       "minute" }, | ||||||
|     { COLUMN_SECOND,       "second" }, |     { COLUMN_CHART_SECOND,       "second" }, | ||||||
|     { COLUMN_TIMEZONE,     "timezone" }, |     { COLUMN_CHART_TIMEZONE,     "timezone" }, | ||||||
|     { COLUMN_HOUSE_SYSTEM, "house_system" }, |     { COLUMN_CHART_HOUSE_SYSTEM, "house_system" }, | ||||||
|     { COLUMN_NOTE,         "note" }, |     { COLUMN_CHART_NOTE,         "note" }, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -542,12 +542,12 @@ ag_db_get(void) | |||||||
|  |  | ||||||
| /** | /** | ||||||
|  * ag_db_save_data_free: |  * ag_db_save_data_free: | ||||||
|  * @save_data: the #AgDbSave struct to free |  * @save_data: the #AgDbChartSave struct to free | ||||||
|  * |  * | ||||||
|  * Frees @save_data and all its fields |  * Frees @save_data and all its fields | ||||||
|  */ |  */ | ||||||
| void | void | ||||||
| ag_db_save_data_free(AgDbSave *save_data) | ag_db_chart_save_free(AgDbChartSave *save_data) | ||||||
| { | { | ||||||
|     if (!save_data) { |     if (!save_data) { | ||||||
|         return; |         return; | ||||||
| @@ -577,7 +577,7 @@ ag_db_save_data_free(AgDbSave *save_data) | |||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * ag_db_save_chart: |  * ag_db_chart_save: | ||||||
|  * @db: the #AgDb object to operate on |  * @db: the #AgDb object to operate on | ||||||
|  * @save_data: the data to save. |  * @save_data: the data to save. | ||||||
|  * @err: a #GError for storing errors |  * @err: a #GError for storing errors | ||||||
| @@ -589,7 +589,7 @@ ag_db_save_data_free(AgDbSave *save_data) | |||||||
|  * Returns: TRUE if the save succeeds, FALSE otherwise |  * Returns: TRUE if the save succeeds, FALSE otherwise | ||||||
|  */ |  */ | ||||||
| gboolean | gboolean | ||||||
| ag_db_save_chart(AgDb *db, AgDbSave *save_data,  GError **err) | ag_db_chart_save(AgDb *db, AgDbChartSave *save_data,  GError **err) | ||||||
| { | { | ||||||
|     GError      *local_err   = NULL; |     GError      *local_err   = NULL; | ||||||
|     gboolean    save_success = TRUE; |     gboolean    save_success = TRUE; | ||||||
| @@ -780,7 +780,7 @@ ag_db_save_chart(AgDb *db, AgDbSave *save_data,  GError **err) | |||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * ag_db_get_chart_list: |  * ag_db_chart_get_list: | ||||||
|  * @db: the #AgDb object to operate on |  * @db: the #AgDb object to operate on | ||||||
|  * @err: a #GError |  * @err: a #GError | ||||||
|  * |  * | ||||||
| @@ -788,15 +788,15 @@ ag_db_save_chart(AgDb *db, AgDbSave *save_data,  GError **err) | |||||||
|  * value may be NULL even if there are no charts or if there was an error, you |  * value may be NULL even if there are no charts or if there was an error, you | ||||||
|  * may want to check @err if the return value is NULL. |  * may want to check @err if the return value is NULL. | ||||||
|  * |  * | ||||||
|  * Please be aware that the #AgDbSave objects of the returned value are not |  * Please be aware that the #AgDbChartSave objects of the returned value are not | ||||||
|  * fully realised chart records. To get one, you need to call |  * fully realised chart records. To get one, you need to call | ||||||
|  * ag_db_get_chart_data_by_id() |  * ag_db_chart_get_data_by_id() | ||||||
|  * |  * | ||||||
|  * Returns: (element-type AgDbSave) (transfer full): the list of all charts, or |  * Returns: (element-type AgDbChartSave) (transfer full): the list of all | ||||||
|  *          or NULL if there are none, or if there is an error. |  *          charts, or NULL if there are none, or if there is an error. | ||||||
|  */ |  */ | ||||||
| GList * | GList * | ||||||
| ag_db_get_chart_list(AgDb *db, GError **err) | ag_db_chart_get_list(AgDb *db, GError **err) | ||||||
| { | { | ||||||
|     GdaDataModelIter *iter; |     GdaDataModelIter *iter; | ||||||
|     GList            *ret    = NULL; |     GList            *ret    = NULL; | ||||||
| @@ -814,8 +814,8 @@ ag_db_get_chart_list(AgDb *db, GError **err) | |||||||
|     iter = gda_data_model_create_iter(result); |     iter = gda_data_model_create_iter(result); | ||||||
|  |  | ||||||
|     while (gda_data_model_iter_move_next(iter)) { |     while (gda_data_model_iter_move_next(iter)) { | ||||||
|         const GValue *value; |         const GValue  *value; | ||||||
|         AgDbSave     *save_data = g_new0(AgDbSave, 1); |         AgDbChartSave *save_data = g_new0(AgDbChartSave, 1); | ||||||
|  |  | ||||||
|         value = gda_data_model_iter_get_value_at(iter, 0); |         value = gda_data_model_iter_get_value_at(iter, 0); | ||||||
|         save_data->db_id = g_value_get_int(value); |         save_data->db_id = g_value_get_int(value); | ||||||
| @@ -830,19 +830,19 @@ ag_db_get_chart_list(AgDb *db, GError **err) | |||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * ag_db_get_chart_data_by_id: |  * ag_db_chart_get_data_by_id: | ||||||
|  * @db: the #AgDb object to operate on |  * @db: the #AgDb object to operate on | ||||||
|  * @row_id: the ID field of the requested chart |  * @row_id: the ID field of the requested chart | ||||||
|  * @err: a #GError |  * @err: a #GError | ||||||
|  * |  * | ||||||
|  * Fetches the specified row from the chart table. |  * Fetches the specified row from the chart table. | ||||||
|  * |  * | ||||||
|  * Returns: (transfer full): A fully filled #AgDbSave record of the chart |  * Returns: (transfer full): A fully filled #AgDbChartSave record of the chart | ||||||
|  */ |  */ | ||||||
| AgDbSave * | AgDbChartSave * | ||||||
| ag_db_get_chart_data_by_id(AgDb *db, guint row_id, GError **err) | ag_db_chart_get_data_by_id(AgDb *db, guint row_id, GError **err) | ||||||
| { | { | ||||||
|     AgDbSave          *save_data; |     AgDbChartSave     *save_data; | ||||||
|     const GValue      *value; |     const GValue      *value; | ||||||
|     gchar             *query, |     gchar             *query, | ||||||
|                       *columns; |                       *columns; | ||||||
| @@ -852,7 +852,7 @@ ag_db_get_chart_data_by_id(AgDb *db, guint row_id, GError **err) | |||||||
|  |  | ||||||
|     columns = NULL; |     columns = NULL; | ||||||
|  |  | ||||||
|     for (i = 1; i < COLUMN_COUNT; i++) { |     for (i = 1; i < COLUMN_CHART_COUNT; i++) { | ||||||
|         gchar *tmp; |         gchar *tmp; | ||||||
|  |  | ||||||
|         if (i == 1) { |         if (i == 1) { | ||||||
| @@ -892,18 +892,28 @@ ag_db_get_chart_data_by_id(AgDb *db, guint row_id, GError **err) | |||||||
|         return NULL; |         return NULL; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     save_data = g_new0(AgDbSave, 1); |     save_data = g_new0(AgDbChartSave, 1); | ||||||
|  |  | ||||||
|     /* id */ |     /* id */ | ||||||
|     value            = gda_data_model_get_value_at(result, COLUMN_ID, 0, NULL); |     value = gda_data_model_get_value_at( | ||||||
|  |             result, | ||||||
|  |             COLUMN_CHART_ID, | ||||||
|  |             0, | ||||||
|  |             NULL | ||||||
|  |         ); | ||||||
|     save_data->db_id = g_value_get_int(value); |     save_data->db_id = g_value_get_int(value); | ||||||
|  |  | ||||||
|     /* name */ |     /* name */ | ||||||
|     value           = gda_data_model_get_value_at(result, COLUMN_NAME, 0, NULL); |     value = gda_data_model_get_value_at( | ||||||
|  |             result, | ||||||
|  |             COLUMN_CHART_NAME, | ||||||
|  |             0, | ||||||
|  |             NULL | ||||||
|  |         ); | ||||||
|     save_data->name = g_strdup(g_value_get_string(value)); |     save_data->name = g_strdup(g_value_get_string(value)); | ||||||
|  |  | ||||||
|     /* country */ |     /* country */ | ||||||
|     value      = gda_data_model_get_value_at(result, COLUMN_COUNTRY, 0, NULL); |     value = gda_data_model_get_value_at(result, COLUMN_CHART_COUNTRY, 0, NULL); | ||||||
|  |  | ||||||
|     if (GDA_VALUE_HOLDS_NULL(value)) { |     if (GDA_VALUE_HOLDS_NULL(value)) { | ||||||
|         save_data->country = NULL; |         save_data->country = NULL; | ||||||
| @@ -911,7 +921,7 @@ ag_db_get_chart_data_by_id(AgDb *db, guint row_id, GError **err) | |||||||
|         save_data->country = g_strdup(g_value_get_string(value)); |         save_data->country = g_strdup(g_value_get_string(value)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     value      = gda_data_model_get_value_at(result, COLUMN_CITY, 0, NULL); |     value = gda_data_model_get_value_at(result, COLUMN_CHART_CITY, 0, NULL); | ||||||
|  |  | ||||||
|     if (GDA_VALUE_HOLDS_NULL(value)) { |     if (GDA_VALUE_HOLDS_NULL(value)) { | ||||||
|         save_data->city = NULL; |         save_data->city = NULL; | ||||||
| @@ -919,23 +929,23 @@ ag_db_get_chart_data_by_id(AgDb *db, guint row_id, GError **err) | |||||||
|         save_data->city = g_strdup(g_value_get_string(value)); |         save_data->city = g_strdup(g_value_get_string(value)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     value                = gda_data_model_get_value_at( |     value = gda_data_model_get_value_at( | ||||||
|             result, |             result, | ||||||
|             COLUMN_LONGITUDE, |             COLUMN_CHART_LONGITUDE, | ||||||
|             0, |             0, | ||||||
|             NULL |             NULL | ||||||
|         ); |         ); | ||||||
|     save_data->longitude = g_value_get_double(value); |     save_data->longitude = g_value_get_double(value); | ||||||
|  |  | ||||||
|     value               = gda_data_model_get_value_at( |     value = gda_data_model_get_value_at( | ||||||
|             result, |             result, | ||||||
|             COLUMN_LATITUDE, |             COLUMN_CHART_LATITUDE, | ||||||
|             0, |             0, | ||||||
|             NULL |             NULL | ||||||
|         ); |         ); | ||||||
|     save_data->latitude = g_value_get_double(value); |     save_data->latitude = g_value_get_double(value); | ||||||
|  |  | ||||||
|     value      = gda_data_model_get_value_at(result, COLUMN_ALTITUDE, 0, NULL); |     value = gda_data_model_get_value_at(result, COLUMN_CHART_ALTITUDE, 0, NULL); | ||||||
|  |  | ||||||
|     if (GDA_VALUE_HOLDS_NULL(value)) { |     if (GDA_VALUE_HOLDS_NULL(value)) { | ||||||
|         save_data->altitude = DEFAULT_ALTITUDE; |         save_data->altitude = DEFAULT_ALTITUDE; | ||||||
| @@ -943,56 +953,61 @@ ag_db_get_chart_data_by_id(AgDb *db, guint row_id, GError **err) | |||||||
|         save_data->altitude = g_value_get_double(value); |         save_data->altitude = g_value_get_double(value); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     value           = gda_data_model_get_value_at(result, COLUMN_YEAR, 0, NULL); |     value = gda_data_model_get_value_at( | ||||||
|  |             result, | ||||||
|  |             COLUMN_CHART_YEAR, | ||||||
|  |             0, | ||||||
|  |             NULL | ||||||
|  |         ); | ||||||
|     save_data->year = g_value_get_int(value); |     save_data->year = g_value_get_int(value); | ||||||
|  |  | ||||||
|     value            = gda_data_model_get_value_at( |     value = gda_data_model_get_value_at( | ||||||
|             result, |             result, | ||||||
|             COLUMN_MONTH, |             COLUMN_CHART_MONTH, | ||||||
|             0, |             0, | ||||||
|             NULL |             NULL | ||||||
|         ); |         ); | ||||||
|     save_data->month = g_value_get_uint(value); |     save_data->month = g_value_get_uint(value); | ||||||
|  |  | ||||||
|     value          = gda_data_model_get_value_at(result, COLUMN_DAY, 0, NULL); |     value = gda_data_model_get_value_at(result, COLUMN_CHART_DAY, 0, NULL); | ||||||
|     save_data->day = g_value_get_uint(value); |     save_data->day = g_value_get_uint(value); | ||||||
|  |  | ||||||
|     value           = gda_data_model_get_value_at(result, COLUMN_HOUR, 0, NULL); |     value = gda_data_model_get_value_at(result, COLUMN_CHART_HOUR, 0, NULL); | ||||||
|     save_data->hour = g_value_get_uint(value); |     save_data->hour = g_value_get_uint(value); | ||||||
|  |  | ||||||
|     value             = gda_data_model_get_value_at( |     value = gda_data_model_get_value_at( | ||||||
|             result, |             result, | ||||||
|             COLUMN_MINUTE, |             COLUMN_CHART_MINUTE, | ||||||
|             0, |             0, | ||||||
|             NULL |             NULL | ||||||
|         ); |         ); | ||||||
|     save_data->minute = g_value_get_uint(value); |     save_data->minute = g_value_get_uint(value); | ||||||
|  |  | ||||||
|     value             = gda_data_model_get_value_at( |     value = gda_data_model_get_value_at( | ||||||
|             result, |             result, | ||||||
|             COLUMN_SECOND, |             COLUMN_CHART_SECOND, | ||||||
|             0, |             0, | ||||||
|             NULL |             NULL | ||||||
|         ); |         ); | ||||||
|     save_data->second = g_value_get_uint(value); |     save_data->second = g_value_get_uint(value); | ||||||
|  |  | ||||||
|     value               = gda_data_model_get_value_at( |     value = gda_data_model_get_value_at( | ||||||
|             result, |             result, | ||||||
|             COLUMN_TIMEZONE, |             COLUMN_CHART_TIMEZONE, | ||||||
|             0, |             0, | ||||||
|             NULL |             NULL | ||||||
|         ); |         ); | ||||||
|     save_data->timezone = g_value_get_double(value); |     save_data->timezone = g_value_get_double(value); | ||||||
|  |  | ||||||
|     value                   = gda_data_model_get_value_at( |     value = gda_data_model_get_value_at( | ||||||
|             result, |             result, | ||||||
|             COLUMN_HOUSE_SYSTEM, |             COLUMN_CHART_HOUSE_SYSTEM, | ||||||
|             0, |             0, | ||||||
|             NULL |             NULL | ||||||
|         ); |         ); | ||||||
|     save_data->house_system = g_strdup(g_value_get_string(value)); |     save_data->house_system = g_strdup(g_value_get_string(value)); | ||||||
|  |  | ||||||
|     value      = gda_data_model_get_value_at(result, COLUMN_NOTE, 0, NULL); |     value = gda_data_model_get_value_at(result, COLUMN_CHART_NOTE, 0, NULL); | ||||||
|  |  | ||||||
|     if (GDA_VALUE_HOLDS_NULL(value)) { |     if (GDA_VALUE_HOLDS_NULL(value)) { | ||||||
|         save_data->note = NULL; |         save_data->note = NULL; | ||||||
| @@ -1038,17 +1053,19 @@ string_collate(const gchar *str1, const gchar *str2) | |||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * ag_db_save_identical: |  * ag_db_chart_save_identical: | ||||||
|  * @a: the first #AgDbSave structure |  * @a: the first #AgDbChartSave structure | ||||||
|  * @b: the second #AgDbSave structure |  * @b: the second #AgDbChartSave structure | ||||||
|  * |  * | ||||||
|  * Compares two #AgDbSave structures and their contents. |  * Compares two #AgDbChartSave structures and their contents. | ||||||
|  * |  * | ||||||
|  * Returns: TRUE if the two structs hold equal values (strings are also compared |  * Returns: TRUE if the two structs hold equal values (strings are also compared | ||||||
|  *          with string_collate()), FALSE otherwise |  *          with string_collate()), FALSE otherwise | ||||||
|  */ |  */ | ||||||
| gboolean | gboolean | ||||||
| ag_db_save_identical(const AgDbSave *a, const AgDbSave *b, gboolean chart_only) | ag_db_chart_save_identical(const AgDbChartSave *a, | ||||||
|  |                      const AgDbChartSave *b, | ||||||
|  |                      gboolean            chart_only) | ||||||
| { | { | ||||||
|     if (a == b) { |     if (a == b) { | ||||||
|         g_debug("identical: Equal"); |         g_debug("identical: Equal"); | ||||||
| @@ -1156,7 +1173,7 @@ ag_db_save_identical(const AgDbSave *a, const AgDbSave *b, gboolean chart_only) | |||||||
| } | } | ||||||
|  |  | ||||||
| gboolean | gboolean | ||||||
| ag_db_delete_chart(AgDb *db, gint row_id, GError **err) | ag_db_chart_delete(AgDb *db, gint row_id, GError **err) | ||||||
| { | { | ||||||
|     AgDbPrivate *priv = ag_db_get_instance_private(db); |     AgDbPrivate *priv = ag_db_get_instance_private(db); | ||||||
|     GValue      id    = G_VALUE_INIT; |     GValue      id    = G_VALUE_INIT; | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								src/ag-db.h
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								src/ag-db.h
									
									
									
									
									
								
							| @@ -30,7 +30,7 @@ struct _AgDbClass { | |||||||
|     GObjectClass parent_class; |     GObjectClass parent_class; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| typedef struct _AgDbSave { | typedef struct _AgDbChartSave { | ||||||
|     gint db_id; |     gint db_id; | ||||||
|     gchar *name; |     gchar *name; | ||||||
|     gchar *country; |     gchar *country; | ||||||
| @@ -47,7 +47,7 @@ typedef struct _AgDbSave { | |||||||
|     gdouble timezone; |     gdouble timezone; | ||||||
|     gchar *house_system; |     gchar *house_system; | ||||||
|     gchar *note; |     gchar *note; | ||||||
| } AgDbSave; | } AgDbChartSave; | ||||||
|  |  | ||||||
| typedef enum { | typedef enum { | ||||||
|     AG_DB_ERROR_NO_CHART, |     AG_DB_ERROR_NO_CHART, | ||||||
| @@ -58,21 +58,21 @@ GType ag_db_get_type(void) G_GNUC_CONST; | |||||||
|  |  | ||||||
| AgDb *ag_db_get(void); | AgDb *ag_db_get(void); | ||||||
|  |  | ||||||
| void ag_db_save_data_free(AgDbSave *save_data); | void ag_db_chart_save_free(AgDbChartSave *save_data); | ||||||
|  |  | ||||||
| gboolean ag_db_save_chart(AgDb      *db, | gboolean ag_db_chart_save(AgDb           *db, | ||||||
|                           AgDbSave  *save_data, |                           AgDbChartSave  *save_data, | ||||||
|                           GError    **err); |                           GError         **err); | ||||||
|  |  | ||||||
| GList *ag_db_get_chart_list(AgDb *db, GError **err); | GList *ag_db_chart_get_list(AgDb *db, GError **err); | ||||||
|  |  | ||||||
| AgDbSave *ag_db_get_chart_data_by_id(AgDb *db, guint row_id, GError **err); | AgDbChartSave *ag_db_chart_get_data_by_id(AgDb *db, guint row_id, GError **err); | ||||||
|  |  | ||||||
| gboolean ag_db_delete_chart(AgDb *db, gint row_id, GError **err); | gboolean ag_db_chart_delete(AgDb *db, gint row_id, GError **err); | ||||||
|  |  | ||||||
| gboolean ag_db_save_identical(const AgDbSave *a, | gboolean ag_db_chart_save_identical(const AgDbChartSave *a, | ||||||
|                               const AgDbSave *b, |                                     const AgDbChartSave *b, | ||||||
|                               gboolean chart_only); |                                     gboolean            chart_only); | ||||||
|  |  | ||||||
| #define AG_DB_ERROR (ag_db_error_quark()) | #define AG_DB_ERROR (ag_db_error_quark()) | ||||||
| GQuark ag_db_error_quark(void); | GQuark ag_db_error_quark(void); | ||||||
|   | |||||||
| @@ -57,7 +57,7 @@ struct _AgWindowPrivate { | |||||||
|     GtkTextBuffer *note_buffer; |     GtkTextBuffer *note_buffer; | ||||||
|     GtkListStore  *house_system_model; |     GtkListStore  *house_system_model; | ||||||
|     GtkListStore  *db_chart_data; |     GtkListStore  *db_chart_data; | ||||||
|     AgDbSave      *saved_data; |     AgDbChartSave      *saved_data; | ||||||
|     GtkEntryCompletion *country_comp; |     GtkEntryCompletion *country_comp; | ||||||
|     GtkEntryCompletion *city_comp; |     GtkEntryCompletion *city_comp; | ||||||
|     gchar              *selected_country; |     gchar              *selected_country; | ||||||
| @@ -644,7 +644,7 @@ ag_window_chart_changed(AgChart *chart, AgWindow *window) | |||||||
| static void | static void | ||||||
| ag_window_recalculate_chart(AgWindow *window, gboolean set_everything) | ag_window_recalculate_chart(AgWindow *window, gboolean set_everything) | ||||||
| { | { | ||||||
|     AgDbSave        *edit_data, |     AgDbChartSave   *edit_data, | ||||||
|                     *chart_data; |                     *chart_data; | ||||||
|     AgWindowPrivate *priv = ag_window_get_instance_private(window); |     AgWindowPrivate *priv = ag_window_get_instance_private(window); | ||||||
|     gboolean        south, |     gboolean        south, | ||||||
| @@ -674,7 +674,7 @@ ag_window_recalculate_chart(AgWindow *window, gboolean set_everything) | |||||||
|         gtk_spin_button_update(GTK_SPIN_BUTTON(current)); |         gtk_spin_button_update(GTK_SPIN_BUTTON(current)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     edit_data = g_new0(AgDbSave, 1); |     edit_data = g_new0(AgDbChartSave, 1); | ||||||
|  |  | ||||||
|     edit_data->db_id = db_id; |     edit_data->db_id = db_id; | ||||||
|  |  | ||||||
| @@ -749,16 +749,16 @@ ag_window_recalculate_chart(AgWindow *window, gboolean set_everything) | |||||||
|             : NULL |             : NULL | ||||||
|         ; |         ; | ||||||
|  |  | ||||||
|     if (ag_db_save_identical(edit_data, chart_data, !set_everything)) { |     if (ag_db_chart_save_identical(edit_data, chart_data, !set_everything)) { | ||||||
|         g_debug("No redrawing needed"); |         g_debug("No redrawing needed"); | ||||||
|  |  | ||||||
|         ag_db_save_data_free(edit_data); |         ag_db_chart_save_free(edit_data); | ||||||
|         ag_db_save_data_free(chart_data); |         ag_db_chart_save_free(chart_data); | ||||||
|  |  | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     ag_db_save_data_free(chart_data); |     ag_db_chart_save_free(chart_data); | ||||||
|  |  | ||||||
|     g_debug("Recalculating chart data"); |     g_debug("Recalculating chart data"); | ||||||
|  |  | ||||||
| @@ -800,7 +800,7 @@ ag_window_recalculate_chart(AgWindow *window, gboolean set_everything) | |||||||
|         ag_chart_set_note(priv->chart, edit_data->note); |         ag_chart_set_note(priv->chart, edit_data->note); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     ag_db_save_data_free(edit_data); |     ag_db_chart_save_free(edit_data); | ||||||
| } | } | ||||||
|  |  | ||||||
| static void | static void | ||||||
| @@ -990,7 +990,7 @@ ag_window_can_close(AgWindow *window, gboolean display_dialog) | |||||||
|     gint            db_id      = (priv->saved_data) |     gint            db_id      = (priv->saved_data) | ||||||
|             ? priv->saved_data->db_id |             ? priv->saved_data->db_id | ||||||
|             : -1; |             : -1; | ||||||
|     AgDbSave        *save_data = NULL; |     AgDbChartSave   *save_data = NULL; | ||||||
|     AgDb            *db        = ag_db_get(); |     AgDb            *db        = ag_db_get(); | ||||||
|     GError          *err       = NULL; |     GError          *err       = NULL; | ||||||
|     gboolean        ret        = TRUE; |     gboolean        ret        = TRUE; | ||||||
| @@ -1000,7 +1000,7 @@ ag_window_can_close(AgWindow *window, gboolean display_dialog) | |||||||
|         save_data = ag_chart_get_db_save(priv->chart, db_id); |         save_data = ag_chart_get_db_save(priv->chart, db_id); | ||||||
|  |  | ||||||
|         if ( |         if ( | ||||||
|                     !ag_db_save_identical(priv->saved_data, save_data, FALSE) |                     !ag_db_chart_save_identical(priv->saved_data, save_data, FALSE) | ||||||
|                     || !(priv->saved_data) |                     || !(priv->saved_data) | ||||||
|                     || (priv->saved_data->db_id == -1) |                     || (priv->saved_data->db_id == -1) | ||||||
|                 ) { |                 ) { | ||||||
| @@ -1021,7 +1021,7 @@ ag_window_can_close(AgWindow *window, gboolean display_dialog) | |||||||
|  |  | ||||||
|                 switch (response) { |                 switch (response) { | ||||||
|                     case GTK_RESPONSE_YES: |                     case GTK_RESPONSE_YES: | ||||||
|                         if (!ag_db_save_chart(db, save_data, &err)) { |                         if (!ag_db_chart_save(db, save_data, &err)) { | ||||||
|                             ag_app_message_dialog( |                             ag_app_message_dialog( | ||||||
|                                     GTK_WINDOW(window), |                                     GTK_WINDOW(window), | ||||||
|                                     GTK_MESSAGE_ERROR, |                                     GTK_MESSAGE_ERROR, | ||||||
| @@ -1052,7 +1052,7 @@ ag_window_can_close(AgWindow *window, gboolean display_dialog) | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     ag_db_save_data_free(save_data); |     ag_db_chart_save_free(save_data); | ||||||
|  |  | ||||||
|     return ret; |     return ret; | ||||||
| } | } | ||||||
| @@ -1067,7 +1067,7 @@ ag_window_save_action(GSimpleAction *action, | |||||||
|     AgDb            *db     = ag_db_get(); |     AgDb            *db     = ag_db_get(); | ||||||
|     GError          *err    = NULL; |     GError          *err    = NULL; | ||||||
|     gint            old_id; |     gint            old_id; | ||||||
|     AgDbSave        *save_data; |     AgDbChartSave   *save_data; | ||||||
|  |  | ||||||
|     ag_window_recalculate_chart(window, TRUE); |     ag_window_recalculate_chart(window, TRUE); | ||||||
|  |  | ||||||
| @@ -1075,7 +1075,7 @@ ag_window_save_action(GSimpleAction *action, | |||||||
|         old_id    = (priv->saved_data) ? priv->saved_data->db_id : -1; |         old_id    = (priv->saved_data) ? priv->saved_data->db_id : -1; | ||||||
|         save_data = ag_chart_get_db_save(priv->chart, old_id); |         save_data = ag_chart_get_db_save(priv->chart, old_id); | ||||||
|  |  | ||||||
|         if (!ag_db_save_chart(db, save_data, &err)) { |         if (!ag_db_chart_save(db, save_data, &err)) { | ||||||
|             ag_app_message_dialog( |             ag_app_message_dialog( | ||||||
|                     GTK_WINDOW(window), |                     GTK_WINDOW(window), | ||||||
|                     GTK_MESSAGE_ERROR, |                     GTK_MESSAGE_ERROR, | ||||||
| @@ -1084,7 +1084,7 @@ ag_window_save_action(GSimpleAction *action, | |||||||
|                 ); |                 ); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         ag_db_save_data_free(priv->saved_data); |         ag_db_chart_save_free(priv->saved_data); | ||||||
|         priv->saved_data = save_data; |         priv->saved_data = save_data; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @@ -1263,7 +1263,7 @@ ag_window_back_action(GSimpleAction *action, | |||||||
|  |  | ||||||
|     if (ag_window_can_close(window, TRUE)) { |     if (ag_window_can_close(window, TRUE)) { | ||||||
|         g_clear_object(&(priv->chart)); |         g_clear_object(&(priv->chart)); | ||||||
|         ag_db_save_data_free(priv->saved_data); |         ag_db_chart_save_free(priv->saved_data); | ||||||
|         priv->saved_data = NULL; |         priv->saved_data = NULL; | ||||||
|  |  | ||||||
|         ag_window_load_chart_list(window); |         ag_window_load_chart_list(window); | ||||||
| @@ -1356,7 +1356,7 @@ ag_window_delete_action(GSimpleAction *action, | |||||||
|         id = atoi(id_str); |         id = atoi(id_str); | ||||||
|         g_free(id_str); |         g_free(id_str); | ||||||
|  |  | ||||||
|         if (!ag_db_delete_chart(db, id, &err)) { |         if (!ag_db_chart_delete(db, id, &err)) { | ||||||
|             ag_app_message_dialog( |             ag_app_message_dialog( | ||||||
|                     GTK_WINDOW(window), |                     GTK_WINDOW(window), | ||||||
|                     GTK_MESSAGE_ERROR, |                     GTK_MESSAGE_ERROR, | ||||||
| @@ -1508,7 +1508,7 @@ ag_window_list_item_activated_cb(GdMainView        *view, | |||||||
|  |  | ||||||
|     g_debug("Loading chart with ID %d", row_id); |     g_debug("Loading chart with ID %d", row_id); | ||||||
|  |  | ||||||
|     if ((priv->saved_data = ag_db_get_chart_data_by_id( |     if ((priv->saved_data = ag_db_chart_get_data_by_id( | ||||||
|                  db, |                  db, | ||||||
|                  row_id, |                  row_id, | ||||||
|                  &err)) == NULL) { |                  &err)) == NULL) { | ||||||
| @@ -1535,7 +1535,7 @@ ag_window_list_item_activated_cb(GdMainView        *view, | |||||||
|                 "Error: %s", |                 "Error: %s", | ||||||
|                 err->message |                 err->message | ||||||
|             ); |             ); | ||||||
|         ag_db_save_data_free(priv->saved_data); |         ag_db_chart_save_free(priv->saved_data); | ||||||
|         priv->saved_data = NULL; |         priv->saved_data = NULL; | ||||||
|  |  | ||||||
|         return; |         return; | ||||||
| @@ -2271,7 +2271,7 @@ ag_window_set_chart(AgWindow *window, AgChart *chart) | |||||||
|         g_clear_object(&(priv->chart)); |         g_clear_object(&(priv->chart)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     ag_db_save_data_free(priv->saved_data); |     ag_db_chart_save_free(priv->saved_data); | ||||||
|  |  | ||||||
|     priv->chart = chart; |     priv->chart = chart; | ||||||
|     g_signal_connect( |     g_signal_connect( | ||||||
| @@ -2357,7 +2357,7 @@ ag_window_change_tab(AgWindow *window, const gchar *tab_name) | |||||||
| } | } | ||||||
|  |  | ||||||
| static void | static void | ||||||
| ag_window_add_chart_to_list(AgDbSave *save_data, AgWindow *window) | ag_window_add_chart_to_list(AgDbChartSave *save_data, AgWindow *window) | ||||||
| { | { | ||||||
|     GtkTreeIter     iter; |     GtkTreeIter     iter; | ||||||
|     AgWindowPrivate *priv = ag_window_get_instance_private(window); |     AgWindowPrivate *priv = ag_window_get_instance_private(window); | ||||||
| @@ -2392,7 +2392,7 @@ ag_window_load_chart_list(AgWindow *window) | |||||||
| { | { | ||||||
|     AgDb   *db         = ag_db_get(); |     AgDb   *db         = ag_db_get(); | ||||||
|     GError *err        = NULL; |     GError *err        = NULL; | ||||||
|     GList  *chart_list = ag_db_get_chart_list(db, &err); |     GList  *chart_list = ag_db_chart_get_list(db, &err); | ||||||
|  |  | ||||||
|     ag_window_clear_chart_list(window); |     ag_window_clear_chart_list(window); | ||||||
|     /* With only a few charts, this should be fine. Maybe implementing lazy |     /* With only a few charts, this should be fine. Maybe implementing lazy | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user