[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