[Goodies-commits] r6516 - in sion/trunk: . src

Enrico Troeger enrico at xfce.org
Tue Jan 20 00:00:01 CET 2009


Author: enrico
Date: 2009-01-19 23:00:00 +0000 (Mon, 19 Jan 2009)
New Revision: 6516

Modified:
   sion/trunk/ChangeLog
   sion/trunk/src/settings.c
   sion/trunk/src/settings.h
   sion/trunk/src/window.c
Log:
Save settings when the preferences dialog is closed.
Save bookmarks when the bookmark dialog is closed and when a new bookmark was created using the connection menu.

Modified: sion/trunk/ChangeLog
===================================================================
--- sion/trunk/ChangeLog	2009-01-19 22:59:54 UTC (rev 6515)
+++ sion/trunk/ChangeLog	2009-01-19 23:00:00 UTC (rev 6516)
@@ -4,6 +4,10 @@
    Print version information when running in verbose mode.
  * src/window.c:
    Add a 'Copy URI' menu item to the actions menu.
+ * src/settings.c, src/settings.h, src/window.c:
+   Save settings when the preferences dialog is closed.
+   Save bookmarks when the bookmark dialog is closed and when a new
+   bookmark was created using the connection menu.
 
 
 2009-01-12  Enrico Tröger  <enrico(at)xfce(dot)org>

Modified: sion/trunk/src/settings.c
===================================================================
--- sion/trunk/src/settings.c	2009-01-19 22:59:54 UTC (rev 6515)
+++ sion/trunk/src/settings.c	2009-01-19 23:00:00 UTC (rev 6516)
@@ -428,12 +428,14 @@
 }
 
 
-void sion_settings_write(SionSettings *settings)
+void sion_settings_write(SionSettings *settings, SionSettingsFlags flags)
 {
 	g_return_if_fail(settings != NULL);
 
-	write_settings_config(settings);
-	write_settings_bookmarks(settings);
+	if (flags & SION_SETTINGS_PREFERENCES)
+		write_settings_config(settings);
+	if (flags & SION_SETTINGS_BOOKMARKS)
+		write_settings_bookmarks(settings);
 }
 
 
@@ -441,7 +443,7 @@
 {
 	SionSettingsPrivate *priv = SION_SETTINGS_GET_PRIVATE(object);
 
-	sion_settings_write(SION_SETTINGS(object));
+	sion_settings_write(SION_SETTINGS(object), SION_SETTINGS_PREFERENCES | SION_SETTINGS_BOOKMARKS);
 
 	g_free(priv->vm_impl);
 	g_free(priv->geometry);

Modified: sion/trunk/src/settings.h
===================================================================
--- sion/trunk/src/settings.h	2009-01-19 22:59:54 UTC (rev 6515)
+++ sion/trunk/src/settings.h	2009-01-19 23:00:00 UTC (rev 6516)
@@ -35,6 +35,12 @@
 typedef struct _SionSettingsClass		SionSettingsClass;
 typedef 	   GPtrArray				SionBookmarkList;
 
+typedef enum
+{
+	SION_SETTINGS_PREFERENCES	= (1 << 0),
+	SION_SETTINGS_BOOKMARKS		= (1 << 1)
+} SionSettingsFlags;
+
 struct _SionSettings
 {
 	GObject parent;
@@ -48,7 +54,7 @@
 GType				sion_settings_get_type			(void);
 SionSettings*		sion_settings_new				(void);
 
-void				sion_settings_write				(SionSettings *settings);
+void				sion_settings_write				(SionSettings *settings, SionSettingsFlags flags);
 
 const gchar*		sion_settings_get_vm_impl		(SionSettings *settings);
 void				sion_settings_set_vm_impl		(SionSettings *settings, const gchar *impl);

Modified: sion/trunk/src/window.c
===================================================================
--- sion/trunk/src/window.c	2009-01-19 22:59:54 UTC (rev 6515)
+++ sion/trunk/src/window.c	2009-01-19 23:00:00 UTC (rev 6516)
@@ -374,6 +374,7 @@
 
 	gtk_dialog_run(GTK_DIALOG(dialog));
 	sion_window_do_autoconnect(window);
+	sion_settings_write(priv->settings, SION_SETTINGS_PREFERENCES);
 
 	gtk_widget_destroy(dialog);
 }
@@ -419,13 +420,15 @@
 
 static void action_bookmark_edit_cb(G_GNUC_UNUSED GtkAction *action, SionWindow *window)
 {
+	GtkWidget *dialog;
 	SionWindowPrivate *priv = SION_WINDOW_GET_PRIVATE(window);
-	GtkWidget *dialog;
 
-	dialog = sion_bookmark_dialog_new(GTK_WIDGET(window), priv->settings);
+	dialog = sion_bookmark_dialog_new(GTK_WINDOW(window), priv->settings);
 
-	g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL);
-	gtk_widget_show(dialog);
+	gtk_dialog_run(GTK_DIALOG(dialog));
+	sion_settings_write(priv->settings, SION_SETTINGS_BOOKMARKS);
+
+	gtk_widget_destroy(dialog);
 }
 
 
@@ -876,6 +879,7 @@
 						g_ptr_array_add(sion_settings_get_bookmarks(priv->settings),
 							g_object_ref(bm));
 						sion_window_update_bookmarks(window);
+						sion_settings_write(priv->settings, SION_SETTINGS_BOOKMARKS);
 					}
 					gtk_widget_destroy(edit_dialog);
 				}




More information about the Goodies-commits mailing list