Separate bookmark insertion from array callback
This commit is contained in:
parent
9a806a8ca2
commit
535053a3e6
2 changed files with 49 additions and 40 deletions
|
@ -494,44 +494,8 @@ midori_bookmarks_add_item_cb (KatzeArray* array,
|
||||||
KatzeItem* item,
|
KatzeItem* item,
|
||||||
sqlite3* db)
|
sqlite3* db)
|
||||||
{
|
{
|
||||||
gchar* sqlcmd;
|
midori_bookmarks_insert_item_db (db, item,
|
||||||
char* errmsg = NULL;
|
katze_item_get_meta_string (item, "folder"));
|
||||||
KatzeItem* old_parent;
|
|
||||||
const gchar* uri;
|
|
||||||
const gchar* folder = katze_item_get_meta_string (item, "folder");
|
|
||||||
const gchar* parent;
|
|
||||||
|
|
||||||
if (KATZE_ITEM_IS_BOOKMARK (item))
|
|
||||||
uri = katze_item_get_uri (item);
|
|
||||||
else
|
|
||||||
uri = "";
|
|
||||||
|
|
||||||
/* Use folder, otherwise fallback to parent folder */
|
|
||||||
old_parent = katze_item_get_parent (item);
|
|
||||||
if (folder && *folder)
|
|
||||||
parent = folder;
|
|
||||||
else if (old_parent && katze_item_get_name (old_parent))
|
|
||||||
parent = katze_item_get_name (old_parent);
|
|
||||||
else
|
|
||||||
parent = "";
|
|
||||||
|
|
||||||
sqlcmd = sqlite3_mprintf (
|
|
||||||
"INSERT into bookmarks (uri, title, desc, folder, toolbar, app) values"
|
|
||||||
" ('%q', '%q', '%q', '%q', %d, %d)",
|
|
||||||
uri,
|
|
||||||
katze_item_get_name (item),
|
|
||||||
katze_item_get_text (item),
|
|
||||||
parent,
|
|
||||||
katze_item_get_meta_boolean (item, "toolbar"),
|
|
||||||
katze_item_get_meta_boolean (item, "app"));
|
|
||||||
|
|
||||||
if (sqlite3_exec (db, sqlcmd, NULL, NULL, &errmsg) != SQLITE_OK)
|
|
||||||
{
|
|
||||||
g_printerr (_("Failed to add bookmark item: %s\n"), errmsg);
|
|
||||||
sqlite3_free (errmsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlite3_free (sqlcmd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -162,8 +162,7 @@ midori_bookmarks_import_array_db (sqlite3* db,
|
||||||
{
|
{
|
||||||
if (KATZE_IS_ARRAY (item))
|
if (KATZE_IS_ARRAY (item))
|
||||||
midori_bookmarks_import_array_db (db, KATZE_ARRAY (item), folder);
|
midori_bookmarks_import_array_db (db, KATZE_ARRAY (item), folder);
|
||||||
katze_item_set_meta_string (item, "folder", folder);
|
midori_bookmarks_insert_item_db (db, item, folder);
|
||||||
katze_array_add_item (array, item);
|
|
||||||
}
|
}
|
||||||
g_list_free (list);
|
g_list_free (list);
|
||||||
}
|
}
|
||||||
|
@ -232,6 +231,52 @@ midori_bookmarks_read_from_db_to_model (MidoriBookmarks* bookmarks,
|
||||||
g_object_unref (item);
|
g_object_unref (item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
midori_bookmarks_insert_item_db (sqlite3* db,
|
||||||
|
KatzeItem* item,
|
||||||
|
const gchar* folder)
|
||||||
|
{
|
||||||
|
gchar* sqlcmd;
|
||||||
|
char* errmsg = NULL;
|
||||||
|
KatzeItem* old_parent;
|
||||||
|
gchar* parent;
|
||||||
|
gchar* uri;
|
||||||
|
|
||||||
|
if (KATZE_ITEM_IS_BOOKMARK (item))
|
||||||
|
uri = g_strdup (katze_item_get_uri (item));
|
||||||
|
else
|
||||||
|
uri = g_strdup ("");
|
||||||
|
|
||||||
|
/* Use folder, otherwise fallback to parent folder */
|
||||||
|
old_parent = katze_item_get_parent (item);
|
||||||
|
if (folder && *folder)
|
||||||
|
parent = g_strdup (folder);
|
||||||
|
else if (old_parent && katze_item_get_name (old_parent))
|
||||||
|
parent = g_strdup (katze_item_get_name (old_parent));
|
||||||
|
else
|
||||||
|
parent = g_strdup ("");
|
||||||
|
|
||||||
|
sqlcmd = sqlite3_mprintf (
|
||||||
|
"INSERT into bookmarks (uri, title, desc, folder, toolbar, app) values"
|
||||||
|
" ('%q', '%q', '%q', '%q', %d, %d)",
|
||||||
|
uri,
|
||||||
|
katze_item_get_name (item),
|
||||||
|
katze_item_get_text (item),
|
||||||
|
parent,
|
||||||
|
katze_item_get_meta_boolean (item, "toolbar"),
|
||||||
|
katze_item_get_meta_boolean (item, "app"));
|
||||||
|
|
||||||
|
if (sqlite3_exec (db, sqlcmd, NULL, NULL, &errmsg) != SQLITE_OK)
|
||||||
|
{
|
||||||
|
g_printerr (_("Failed to add bookmark item: %s\n"), errmsg);
|
||||||
|
sqlite3_free (errmsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free (uri);
|
||||||
|
g_free (parent);
|
||||||
|
sqlite3_free (sqlcmd);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_bookmarks_add_item_cb (KatzeArray* array,
|
midori_bookmarks_add_item_cb (KatzeArray* array,
|
||||||
KatzeItem* item,
|
KatzeItem* item,
|
||||||
|
|
Loading…
Reference in a new issue