ag_db_save_identical can now compare based only on chart-related data
This way the chart won’t get recalculated on a name change.
This commit is contained in:
parent
881b58080a
commit
aefbb8e4fa
10
src/ag-db.c
10
src/ag-db.c
@ -1060,7 +1060,7 @@ string_collate(const gchar *str1, const gchar *str2)
|
|||||||
* with string_collate()), FALSE otherwise
|
* with string_collate()), FALSE otherwise
|
||||||
*/
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
ag_db_save_identical(const AgDbSave *a, const AgDbSave *b)
|
ag_db_save_identical(const AgDbSave *a, const AgDbSave *b, gboolean chart_only)
|
||||||
{
|
{
|
||||||
if (a == b) {
|
if (a == b) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -1070,15 +1070,15 @@ ag_db_save_identical(const AgDbSave *a, const AgDbSave *b)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string_collate(a->name, b->name) != 0) {
|
if (!chart_only && string_collate(a->name, b->name) != 0) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string_collate(a->country, b->country) != 0) {
|
if (!chart_only && string_collate(a->country, b->country) != 0) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string_collate(a->city, b->city) != 0) {
|
if (!chart_only && string_collate(a->city, b->city) != 0) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1126,7 +1126,7 @@ ag_db_save_identical(const AgDbSave *a, const AgDbSave *b)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string_collate(a->note, b->note) != 0) {
|
if (!chart_only && string_collate(a->note, b->note) != 0) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +68,9 @@ GList *ag_db_get_chart_list(AgDb *db, GError **err);
|
|||||||
|
|
||||||
AgDbSave *ag_db_get_chart_data_by_id(AgDb *db, guint row_id, GError **err);
|
AgDbSave *ag_db_get_chart_data_by_id(AgDb *db, guint row_id, GError **err);
|
||||||
|
|
||||||
gboolean ag_db_save_identical(const AgDbSave *a, const AgDbSave *b);
|
gboolean ag_db_save_identical(const AgDbSave *a,
|
||||||
|
const AgDbSave *b,
|
||||||
|
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);
|
||||||
|
@ -108,7 +108,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)
|
!ag_db_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)
|
||||||
) {
|
) {
|
||||||
|
Loading…
Reference in New Issue
Block a user