[Xfce4-commits] <midori:master> Revise saving bookmarks to file, recursively
Christian Dywan
noreply at xfce.org
Sat Dec 12 01:26:04 CET 2009
Updating branch refs/heads/master
to 79101c33504b2a04c38a41d88d882d773acbbec9 (commit)
from 7ce27f542ff09ae100d851a08b7053602801b4c2 (commit)
commit 79101c33504b2a04c38a41d88d882d773acbbec9
Author: Christian Dywan <christian at twotoasts.de>
Date: Fri Dec 11 23:59:08 2009 +0100
Revise saving bookmarks to file, recursively
midori/main.c | 61 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 33 insertions(+), 28 deletions(-)
diff --git a/midori/main.c b/midori/main.c
index df5a16d..77c0cd5 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -832,7 +832,7 @@ midori_bookmarks_notify_item_cb (KatzeArray* folder,
static void
midori_bookmarks_add_item_cb (KatzeArray* folder,
- GObject* item,
+ KatzeItem* item,
KatzeArray* bookmarks);
static void
@@ -841,8 +841,30 @@ midori_bookmarks_remove_item_cb (KatzeArray* folder,
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
midori_bookmarks_add_item_cb (KatzeArray* folder,
- GObject* item,
+ KatzeItem* item,
KatzeArray* bookmarks)
{
gchar* config_file;
@@ -857,16 +879,7 @@ midori_bookmarks_add_item_cb (KatzeArray* folder,
}
g_free (config_file);
- if (folder == bookmarks && 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);
+ midori_bookmarks_connect_item (folder, item, bookmarks);
}
static void
@@ -887,8 +900,15 @@ midori_bookmarks_remove_item_cb (KatzeArray* folder,
g_free (config_file);
if (KATZE_IS_ARRAY (item))
+ {
g_signal_handlers_disconnect_by_func (item,
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
@@ -2051,26 +2071,11 @@ main (int argc,
/* Don't save bookmarks if they are not our own */
if (!g_path_is_absolute (BOOKMARK_FILE))
{
+ midori_bookmarks_connect_item (NULL, (KatzeItem*)bookmarks, bookmarks);
g_signal_connect_after (bookmarks, "add-item",
G_CALLBACK (midori_bookmarks_add_item_cb), bookmarks);
g_signal_connect_after (bookmarks, "remove-item",
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"));
g_signal_connect_after (trash, "add-item",
More information about the Xfce4-commits
mailing list