aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-10-26 00:25:51 +0200
committerGravatar Tom Willemsen2012-10-26 00:25:51 +0200
commit33b73cac14f28e91cd90e0fb98579bf7690f637f (patch)
treee71842ee188517ea9718729b2330b869988fe0db /src/data.c
parent7ffc87d99d0435146358c6ea1dd90ddaae294f51 (diff)
downloadeye-on-manga-33b73cac14f28e91cd90e0fb98579bf7690f637f.tar.gz
eye-on-manga-33b73cac14f28e91cd90e0fb98579bf7690f637f.zip
Add "Delete" button to detail window
* src/data.c (data_delete_manga): New function, deletes a manga and its associated volumes. (data_update_manga): Extra free. * src/eom-detail-window.c (add_menu): Add a "Delete" button to the menu. (on_delete): New function. Shows a confirmation dialog and if the user pressed "Ok" tries to delete the manga and close the window. * src/eom-main-window.c (on_row_activated): Connect to the `hide' signal instead of the `delete-event' signal. I couldn't find how te emit my own `delete-event' signal, then I found that hide works both when I close a window and when the window manager does it.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/data.c b/src/data.c
index f2a7996..970ae1a 100644
--- a/src/data.c
+++ b/src/data.c
@@ -57,6 +57,25 @@ data_add_volume_to_manga(gint manga_id, gint volume)
return ret;
}
+gboolean
+data_delete_manga(gint manga_id)
+{
+ char *sql = g_strdup_printf("DELETE FROM volume "
+ "WHERE manga_id = %d", manga_id);
+ gboolean ret = execute_non_query(sql);
+
+ g_free(sql);
+
+ if (ret) {
+ sql = g_strdup_printf("DELETE FROM manga "
+ "WHERE id = %d", manga_id);
+ ret = execute_non_query(sql);
+ g_free(sql);
+ }
+
+ return ret;
+}
+
GList *
data_get_incomplete_manga(void)
{
@@ -255,6 +274,7 @@ data_update_manga(gint manga_id, const gchar *name, gint total_qty)
"AND id > %d",
manga_id, total_qty);
ret = execute_non_query(sql);
+ g_free(sql);
}
return ret;