From e52bbb2a3d17cc12cab75deba113d3075b62337e Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Sun, 25 Apr 2010 00:04:52 +0200 Subject: Set parent when adding tags. --- db.c | 14 ++++++++++++-- db.h | 2 +- window_tag.c | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/db.c b/db.c index 6b0bd22..e6f0368 100644 --- a/db.c +++ b/db.c @@ -515,11 +515,11 @@ int db_get_walls_by_tags(GArray *tags, GArray **array) { return 1; } -sqlite_uint64 db_add_tag(const char *name) { +sqlite_uint64 db_add_tag(const char *name, sqlite_uint64 parent) { sqlite3_stmt *stmt; int rc; - rc = sqlite3_prepare_v2(db, "INSERT INTO tag (name) VALUES (?)", -1, &stmt, NULL); + rc = sqlite3_prepare_v2(db, "INSERT INTO tag (name, parent) VALUES (?, ?)", -1, &stmt, NULL); if(rc != SQLITE_OK) { return 0; @@ -531,6 +531,16 @@ sqlite_uint64 db_add_tag(const char *name) { return 0; } + if(parent == 0) { + rc = sqlite3_bind_null(stmt, 2); + } else { + rc = sqlite3_bind_int64(stmt, 2, parent); + } + if(rc != SQLITE_OK) { + sqlite3_finalize(stmt); + return 0; + } + rc = sqlite3_step(stmt); sqlite3_finalize(stmt); diff --git a/db.h b/db.h index 771b5e3..a2c19b1 100644 --- a/db.h +++ b/db.h @@ -37,7 +37,7 @@ int db_get_wallpaper_data(sqlite_uint64, struct wallpaper_t*); int db_get_wall_tags(sqlite_uint64, GArray**); int db_get_wallpapers(sqlite_uint64, GArray**); int db_get_walls_by_tags(GArray*, GArray**); -sqlite_uint64 db_add_tag(const char*); +sqlite_uint64 db_add_tag(const char*, sqlite_uint64); int db_get_tags_all(GArray**); int db_add_wall_tag(sqlite_uint64, sqlite_uint64); void db_remove_tag(sqlite_uint64); diff --git a/window_tag.c b/window_tag.c index e6ea986..ca6d6f4 100644 --- a/window_tag.c +++ b/window_tag.c @@ -139,7 +139,7 @@ void on_tags_addbtn_clicked(GtkButton *button, gpointer user_data) { dialog = text_input_dialog_new(data->dialog, "Enter the name of the new tag:"); if(gtk_dialog_run(dialog) == GTK_RESPONSE_OK) { s = text_input_dialog_get_text(GTK_WIDGET(dialog)); - if(db_add_tag(s)) + if(db_add_tag(s, 0)) tagview_create_model(GTK_TREE_VIEW(data->tagview), user_data); else g_warning("Failed to add tag \"%s\"\n", s); -- cgit v1.2.3