Revise saving bookmarks to file, recursively
This commit is contained in:
parent
7ce27f542f
commit
79101c3350
1 changed files with 33 additions and 28 deletions
|
@ -832,7 +832,7 @@ midori_bookmarks_notify_item_cb (KatzeArray* folder,
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_bookmarks_add_item_cb (KatzeArray* folder,
|
midori_bookmarks_add_item_cb (KatzeArray* folder,
|
||||||
GObject* item,
|
KatzeItem* item,
|
||||||
KatzeArray* bookmarks);
|
KatzeArray* bookmarks);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -840,9 +840,31 @@ midori_bookmarks_remove_item_cb (KatzeArray* folder,
|
||||||
GObject* item,
|
GObject* item,
|
||||||
KatzeArray* bookmarks);
|
KatzeArray* bookmarks);
|
||||||
|
|
||||||
|
static void
|
||||||
|
midori_bookmarks_connect_item (KatzeArray* folder,
|
||||||
|
KatzeItem* item,
|
||||||
|
KatzeArray* bookmarks)
|
||||||
|
{
|
||||||
|
if (KATZE_IS_ARRAY (item))
|
||||||
|
{
|
||||||
|
KatzeItem* child;
|
||||||
|
guint i = 0;
|
||||||
|
while ((child = katze_array_get_nth_item ((KatzeArray*)item, i++)))
|
||||||
|
midori_bookmarks_connect_item ((KatzeArray*)item, child, bookmarks);
|
||||||
|
|
||||||
|
g_signal_connect_after (item, "add-item",
|
||||||
|
G_CALLBACK (midori_bookmarks_add_item_cb), bookmarks);
|
||||||
|
g_signal_connect_after (item, "remove-item",
|
||||||
|
G_CALLBACK (midori_bookmarks_remove_item_cb), bookmarks);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_signal_connect_after (item, "notify",
|
||||||
|
G_CALLBACK (midori_bookmarks_notify_item_cb), bookmarks);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_bookmarks_add_item_cb (KatzeArray* folder,
|
midori_bookmarks_add_item_cb (KatzeArray* folder,
|
||||||
GObject* item,
|
KatzeItem* item,
|
||||||
KatzeArray* bookmarks)
|
KatzeArray* bookmarks)
|
||||||
{
|
{
|
||||||
gchar* config_file;
|
gchar* config_file;
|
||||||
|
@ -857,16 +879,7 @@ midori_bookmarks_add_item_cb (KatzeArray* folder,
|
||||||
}
|
}
|
||||||
g_free (config_file);
|
g_free (config_file);
|
||||||
|
|
||||||
if (folder == bookmarks && KATZE_IS_ARRAY (item))
|
midori_bookmarks_connect_item (folder, item, bookmarks);
|
||||||
{
|
|
||||||
g_signal_connect_after (item, "add-item",
|
|
||||||
G_CALLBACK (midori_bookmarks_add_item_cb), bookmarks);
|
|
||||||
g_signal_connect_after (item, "remove-item",
|
|
||||||
G_CALLBACK (midori_bookmarks_remove_item_cb), bookmarks);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_signal_connect_after (item, "notify",
|
|
||||||
G_CALLBACK (midori_bookmarks_notify_item_cb), bookmarks);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -887,8 +900,15 @@ midori_bookmarks_remove_item_cb (KatzeArray* folder,
|
||||||
g_free (config_file);
|
g_free (config_file);
|
||||||
|
|
||||||
if (KATZE_IS_ARRAY (item))
|
if (KATZE_IS_ARRAY (item))
|
||||||
|
{
|
||||||
g_signal_handlers_disconnect_by_func (item,
|
g_signal_handlers_disconnect_by_func (item,
|
||||||
midori_bookmarks_add_item_cb, bookmarks);
|
midori_bookmarks_add_item_cb, bookmarks);
|
||||||
|
g_signal_handlers_disconnect_by_func (item,
|
||||||
|
midori_bookmarks_remove_item_cb, bookmarks);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_signal_handlers_disconnect_by_func (item,
|
||||||
|
midori_bookmarks_notify_item_cb, bookmarks);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2051,26 +2071,11 @@ main (int argc,
|
||||||
/* Don't save bookmarks if they are not our own */
|
/* Don't save bookmarks if they are not our own */
|
||||||
if (!g_path_is_absolute (BOOKMARK_FILE))
|
if (!g_path_is_absolute (BOOKMARK_FILE))
|
||||||
{
|
{
|
||||||
|
midori_bookmarks_connect_item (NULL, (KatzeItem*)bookmarks, bookmarks);
|
||||||
g_signal_connect_after (bookmarks, "add-item",
|
g_signal_connect_after (bookmarks, "add-item",
|
||||||
G_CALLBACK (midori_bookmarks_add_item_cb), bookmarks);
|
G_CALLBACK (midori_bookmarks_add_item_cb), bookmarks);
|
||||||
g_signal_connect_after (bookmarks, "remove-item",
|
g_signal_connect_after (bookmarks, "remove-item",
|
||||||
G_CALLBACK (midori_bookmarks_remove_item_cb), bookmarks);
|
G_CALLBACK (midori_bookmarks_remove_item_cb), bookmarks);
|
||||||
if (!katze_array_is_empty (bookmarks))
|
|
||||||
{
|
|
||||||
i = 0;
|
|
||||||
while ((item = katze_array_get_nth_item (bookmarks, i++)))
|
|
||||||
{
|
|
||||||
if (KATZE_IS_ARRAY (item))
|
|
||||||
{
|
|
||||||
g_signal_connect_after (item, "add-item",
|
|
||||||
G_CALLBACK (midori_bookmarks_add_item_cb), bookmarks);
|
|
||||||
g_signal_connect_after (item, "remove-item",
|
|
||||||
G_CALLBACK (midori_bookmarks_remove_item_cb), bookmarks);
|
|
||||||
}
|
|
||||||
g_signal_connect_after (item, "notify",
|
|
||||||
G_CALLBACK (midori_bookmarks_notify_item_cb), bookmarks);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
katze_assign (config_file, build_config_filename ("tabtrash.xbel"));
|
katze_assign (config_file, build_config_filename ("tabtrash.xbel"));
|
||||||
g_signal_connect_after (trash, "add-item",
|
g_signal_connect_after (trash, "add-item",
|
||||||
|
|
Loading…
Reference in a new issue