[kazehakase-svn] [3705] 2009-02-16 Hiroyuki Ikezoe <poinc****@ikezo*****>

Zurück zum Archiv-Index

svnno****@sourc***** svnno****@sourc*****
Mon Feb 16 08:23:55 JST 2009


Revision: 3705
          http://svn.sourceforge.jp/view?root=kazehakase&view=rev&rev=3705
Author:   ikezoe
Date:     2009-02-16 08:23:55 +0900 (Mon, 16 Feb 2009)

Log Message:
-----------
2009-02-16  Hiroyuki Ikezoe  <poinc****@ikezo*****>

	* src/bookmarks/kz-bookmark-file.[ch]: Added
	KZ_BOOKMARK_FILE_STATE_DISPOSING and set this in dispose().
	* src/bookmarks/kz-sessions.c: Cascade parent class update method.
	* src/kz-xbel.c: Fix crash when emission of "update".

Modified Paths:
--------------
    kazehakase/trunk/ChangeLog
    kazehakase/trunk/src/bookmarks/kz-bookmark-file.c
    kazehakase/trunk/src/bookmarks/kz-bookmark-file.h
    kazehakase/trunk/src/bookmarks/kz-session.c
    kazehakase/trunk/src/bookmarks/kz-xbel.c

Modified: kazehakase/trunk/ChangeLog
===================================================================
--- kazehakase/trunk/ChangeLog	2009-02-15 11:43:24 UTC (rev 3704)
+++ kazehakase/trunk/ChangeLog	2009-02-15 23:23:55 UTC (rev 3705)
@@ -1,3 +1,10 @@
+2009-02-16  Hiroyuki Ikezoe  <poinc****@ikezo*****>
+
+	* src/bookmarks/kz-bookmark-file.[ch]: Added
+	KZ_BOOKMARK_FILE_STATE_DISPOSING and set this in dispose().
+	* src/bookmarks/kz-sessions.c: Cascade parent class update method.
+	* src/kz-xbel.c: Fix crash when emission of "update".
+
 2009-02-15  Hiroyuki Ikezoe  <poinc****@ikezo*****>
 
 	* src/kz-embed.c: suppress warnings.

Modified: kazehakase/trunk/src/bookmarks/kz-bookmark-file.c
===================================================================
--- kazehakase/trunk/src/bookmarks/kz-bookmark-file.c	2009-02-15 11:43:24 UTC (rev 3704)
+++ kazehakase/trunk/src/bookmarks/kz-bookmark-file.c	2009-02-15 23:23:55 UTC (rev 3705)
@@ -325,6 +325,8 @@
 	guint timer_id, io_id;
 	KzIO *io;
 	
+	kz_bookmark_file_set_state(KZ_BOOKMARK_FILE(object), KZ_BOOKMARK_FILE_STATE_DISPOSING);
+
 	timer_id = GPOINTER_TO_UINT(g_object_get_qdata(object, timer_quark));
 	if (timer_id)
 		g_source_remove(timer_id);
@@ -352,8 +354,8 @@
 	g_object_set_qdata(object, io_signal_id_quark,
 			   GUINT_TO_POINTER(io_id));
 
-	if (G_OBJECT_CLASS (kz_bookmark_file_parent_class)->dispose)
-		G_OBJECT_CLASS (kz_bookmark_file_parent_class)->dispose(object);
+	if (G_OBJECT_CLASS(kz_bookmark_file_parent_class)->dispose)
+		G_OBJECT_CLASS(kz_bookmark_file_parent_class)->dispose(object);
 }
 
 
@@ -527,13 +529,8 @@
 static gboolean
 update (KzBookmarkFile *bookmark)
 {
-        gboolean processed = FALSE;
+	kz_bookmark_file_save(bookmark);
 
-	if (KZ_BOOKMARK_FILE_CLASS(kz_bookmark_file_parent_class)->update)
-		processed = KZ_BOOKMARK_FILE_CLASS(kz_bookmark_file_parent_class)->update(bookmark);
-	if (!processed)
-		kz_bookmark_file_save(bookmark);
-
 	return TRUE;
 }
 

Modified: kazehakase/trunk/src/bookmarks/kz-bookmark-file.h
===================================================================
--- kazehakase/trunk/src/bookmarks/kz-bookmark-file.h	2009-02-15 11:43:24 UTC (rev 3704)
+++ kazehakase/trunk/src/bookmarks/kz-bookmark-file.h	2009-02-15 23:23:55 UTC (rev 3705)
@@ -49,7 +49,8 @@
 typedef enum {
 	KZ_BOOKMARK_FILE_STATE_NORMAL,
 	KZ_BOOKMARK_FILE_STATE_LOADING,
-	KZ_BOOKMARK_FILE_STATE_SAVING
+	KZ_BOOKMARK_FILE_STATE_SAVING,
+	KZ_BOOKMARK_FILE_STATE_DISPOSING
 } KzBookmarkFileState;
 
 struct _KzBookmarkFile

Modified: kazehakase/trunk/src/bookmarks/kz-session.c
===================================================================
--- kazehakase/trunk/src/bookmarks/kz-session.c	2009-02-15 11:43:24 UTC (rev 3704)
+++ kazehakase/trunk/src/bookmarks/kz-session.c	2009-02-15 23:23:55 UTC (rev 3705)
@@ -155,9 +155,9 @@
 {
 	KzSessionPrivate *priv = KZ_SESSION_GET_PRIVATE(bookmark);
 
-	if (priv->frozen)
+	if (priv->frozen || !priv->auto_save)
 		return TRUE;
 
-	return !priv->auto_save;
+        return KZ_BOOKMARK_FILE_CLASS(kz_session_parent_class)->update(bookmark);
 }
 

Modified: kazehakase/trunk/src/bookmarks/kz-xbel.c
===================================================================
--- kazehakase/trunk/src/bookmarks/kz-xbel.c	2009-02-15 11:43:24 UTC (rev 3704)
+++ kazehakase/trunk/src/bookmarks/kz-xbel.c	2009-02-15 23:23:55 UTC (rev 3705)
@@ -232,14 +232,16 @@
 	KzBookmark *bookmark;
 	KzXMLNode *node;
 	const gchar *prop;
-        GValue value = { 0 };
+	GValue value = { 0 };
+	gboolean updated;
 
 	g_return_if_fail(KZ_IS_BOOKMARK(object));
 	g_return_if_fail(KZ_IS_XML(xml));
 
 	bookmark = KZ_BOOKMARK(object);
 
-	if (BOOKMARK_IS_BUILDING(bookmark)) return;
+	if (BOOKMARK_IS_BUILDING(bookmark))
+		return;
 
 	node = kz_xml_get_root_element(xml);
 	if (!node) return;
@@ -264,7 +266,7 @@
 	g_value_unset(&value);
 
 	/* emit update signal */
-	g_signal_emit_by_name(object, "update", 0);
+	g_signal_emit_by_name(object, "update", &updated);
 }
 
 
@@ -1216,20 +1218,30 @@
 			  KzBookmark *child, KzBookmark *sibling,
 			  gpointer data)
 {
+	gboolean updated;
+
 	kz_xbel_insert_xml_node(child, bookmark, sibling);
 	kz_xbel_connect_signals(child, data);
 
-	g_signal_emit_by_name(data, "update", 0);
+	if (kz_bookmark_file_get_state(KZ_BOOKMARK_FILE(data)) !=
+	    KZ_BOOKMARK_FILE_STATE_NORMAL)
+		return;
+	g_signal_emit_by_name(data, "update", &updated);
 }
 
 
 static void
 cb_bookmark_remove_child (KzBookmark *bookmark, KzBookmark *child, gpointer data)
 {
+	gboolean updated;
+
 	kz_xbel_disconnect_signals(child, data);
 	kz_xbel_remove_xml_node(child);
 
-	g_signal_emit_by_name(data, "update", 0);
+	if (kz_bookmark_file_get_state(KZ_BOOKMARK_FILE(data)) !=
+	    KZ_BOOKMARK_FILE_STATE_NORMAL)
+		return;
+	g_signal_emit_by_name(data, "update", &updated);
 }
 
 
@@ -1326,12 +1338,14 @@
 	KzBookmark *bookmark;
 	KzXMLNode *node;
 	const gchar *prop;
-        GValue value = { 0 };
+	GValue value = { 0 };
+	gboolean updated;
 
 	g_return_if_fail(KZ_IS_BOOKMARK(object));
 	bookmark = KZ_BOOKMARK(object);
 
-	if (BOOKMARK_IS_BUILDING(bookmark)) return;
+	if (BOOKMARK_IS_BUILDING(bookmark))
+		return;
 
 	node = g_object_get_qdata(G_OBJECT(bookmark), node_quark);
 	g_return_if_fail(node);
@@ -1513,7 +1527,7 @@
 		kz_xml_node_set_attr(metanode, "kz:javascript", str);
 	}
 	g_value_unset(&value);
-	g_signal_emit_by_name(data, "update", 0);
+	g_signal_emit_by_name(data, "update", &updated);
 }
 
 




More information about the Kazehakase-cvs mailing list
Zurück zum Archiv-Index