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

Enrico Troeger enrico at xfce.org
Sun Dec 14 20:55:02 CET 2008


Author: enrico
Date: 2008-12-14 19:55:02 +0000 (Sun, 14 Dec 2008)
New Revision: 6320

Modified:
   sion/trunk/ChangeLog
   sion/trunk/TODO
   sion/trunk/src/backendgvfs.c
   sion/trunk/src/backendgvfs.h
   sion/trunk/src/bookmark.c
   sion/trunk/src/bookmark.h
   sion/trunk/src/bookmarkeditdialog.c
   sion/trunk/src/passworddialog.c
   sion/trunk/src/passworddialog.h
   sion/trunk/src/settings.c
   sion/trunk/src/window.c
Log:
Fix missing clicked callback for the Connect toolbar button.
Various small fixes and cleanup.
Allow empty values for usernames.
Use default username and domain name provided by GVFS in the password dialog.
Add domain and share fields for bookmarks to improve Samba support.

Modified: sion/trunk/ChangeLog
===================================================================
--- sion/trunk/ChangeLog	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/ChangeLog	2008-12-14 19:55:02 UTC (rev 6320)
@@ -1,3 +1,18 @@
+2008-12-14  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/window.c:
+   Fix missing clicked callback for the Connect toolbar button.
+   Various small fixes and cleanup.
+ * src/bookmarkeditdialog.c, src/bookmark.c:
+   Allow empty values for usernames.
+ * src/backendgvfs.c, src/backendgvfs.h, src/bookmark.c,
+   src/bookmarkeditdialog.c, src/bookmark.h, src/passworddialog.c,
+   src/passworddialog.h, src/settings.c:
+   Use default username and domain name provided by GVFS in the password
+   dialog.
+   Add domain and share fields for bookmarks to improve Samba support.
+
+
 2008-12-13  Enrico Tröger  <enrico(at)xfce(dot)org>
 
  * configure, Makefile, src/Makefile:

Modified: sion/trunk/TODO
===================================================================
--- sion/trunk/TODO	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/TODO	2008-12-14 19:55:02 UTC (rev 6320)
@@ -2,5 +2,5 @@
 - libnotify - to notify about new mounts or disappeared mounts (ftp timeout, etc.)
 - progressdialog when mounting
 - display pseudo names instead of URI schemes
-- change default file manager command to gvfs-open
 - allow usernames which include a '@' char
+- sort bookmarks

Modified: sion/trunk/src/backendgvfs.c
===================================================================
--- sion/trunk/src/backendgvfs.c	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/src/backendgvfs.c	2008-12-14 19:55:02 UTC (rev 6320)
@@ -474,11 +474,14 @@
 
 
 static void set_password_cb(GMountOperation *op, gchar *message, gchar *default_user,
-							gchar *default_domain, GAskPasswordFlags flags, gpointer data)
+							gchar *default_domain, GAskPasswordFlags flags, const gchar *domain)
 {
-	GtkWidget *dialog = sion_password_dialog_new(flags);
 	GMountOperationResult result;
+	GtkWidget *dialog;
 
+	dialog = sion_password_dialog_new(flags, default_user,
+		(domain != NULL) ? domain : default_domain);
+
 	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)
 	{
 		result = G_MOUNT_OPERATION_HANDLED;
@@ -510,7 +513,7 @@
 }
 
 
-void sion_backend_gvfs_mount_uri(SionBackendGVFS *backend, const gchar *uri)
+void sion_backend_gvfs_mount_uri(SionBackendGVFS *backend, const gchar *uri, const gchar *domain)
 {
 	GMountOperation *op;
 	GFile *file;
@@ -521,7 +524,7 @@
 	op = g_mount_operation_new();
 	file = g_file_new_for_uri(uri);
 
-	g_signal_connect(op, "ask-password", G_CALLBACK(set_password_cb), NULL);
+	g_signal_connect(op, "ask-password", G_CALLBACK(set_password_cb), (gchar*) domain);
 
 	g_file_mount_enclosing_volume(file, G_MOUNT_MOUNT_NONE, op, NULL,
 		(GAsyncReadyCallback) mount_ready_cb, backend);

Modified: sion/trunk/src/backendgvfs.h
===================================================================
--- sion/trunk/src/backendgvfs.h	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/src/backendgvfs.h	2008-12-14 19:55:02 UTC (rev 6320)
@@ -56,7 +56,7 @@
 gboolean			sion_backend_gvfs_mount_volume					(SionBackendGVFS *backend, GVolume *vol);
 void				sion_backend_gvfs_unmount_mount					(SionBackendGVFS *backend, GMount *mount);
 
-void				sion_backend_gvfs_mount_uri						(SionBackendGVFS *backend, const gchar *uri);
+void				sion_backend_gvfs_mount_uri						(SionBackendGVFS *backend, const gchar *uri, const gchar *domain);
 
 gchar*				sion_backend_gvfs_get_volume_identifier			(GVolume *volume);
 

Modified: sion/trunk/src/bookmark.c
===================================================================
--- sion/trunk/src/bookmark.c	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/src/bookmark.c	2008-12-14 19:55:02 UTC (rev 6320)
@@ -38,6 +38,8 @@
 	gchar	*name;
 	gchar	*scheme;
 	gchar	*host;
+	gchar	*domain;
+	gchar	*share;
 	guint	 port;
 	gchar	*user;
 
@@ -84,12 +86,16 @@
 	g_free(priv->name);
 	g_free(priv->scheme);
 	g_free(priv->host);
+	g_free(priv->domain);
+	g_free(priv->share);
 	g_free(priv->user);
 
 	priv->name = NULL;
 	priv->scheme = NULL;
 	priv->host = NULL;
 	priv->port = 0;
+	priv->domain = NULL;
+	priv->share = NULL;
 	priv->user = NULL;
 
 	priv->is_valid = TRUE;
@@ -171,7 +177,7 @@
 		x = s;
 		while (*x != '\0' && x < end && *x != ']')
 		{
-			l++; // count the len of the username
+			l++; // count the len of the hostname
 			x++;
 		}
 		priv->host = g_strndup(s, l);
@@ -183,7 +189,7 @@
 		x = s;
 		while (*x != '\0' && x < end && *x != ':')
 		{
-			l++; // count the len of the username
+			l++; // count the len of the hostname
 			x++;
 		}
 		priv->host = g_strndup(s, l);
@@ -200,7 +206,7 @@
 		x = t;
 		while (*x != '\0' && x < end)
 		{
-			l++; // count the len of the username
+			l++; // count the len of the port
 			x++;
 		}
 		// atoi should be enough as it returns simply 0 if there are any errors and 0 marks an
@@ -209,10 +215,14 @@
 		priv->port = (guint) atoi(tmp);
 		g_free(tmp);
 	}
+	if (NZV(end))
+		priv->share = g_strdup(end + 1);
+
 	return TRUE;
 }
 
 
+
 static void sion_bookmark_init(SionBookmark *self)
 {
 	bookmark_clear(self);
@@ -257,6 +267,8 @@
 	priv_dst->name = g_strdup(priv_src->name);
 	priv_dst->host = g_strdup(priv_src->host);
 	priv_dst->scheme = g_strdup(priv_src->scheme);
+	priv_dst->domain = g_strdup(priv_src->domain);
+	priv_dst->share = g_strdup(priv_src->share);
 	priv_dst->user = g_strdup(priv_src->user);
 	priv_dst->port = priv_src->port;
 }
@@ -275,12 +287,14 @@
 		port = g_strdup_printf(":%d", priv->port);
 	}
 
-	result = g_strdup_printf("%s://%s%s%s%s/",
+	result = g_strdup_printf("%s://%s%s%s%s/%s%s",
 		priv->scheme,
 		(NZV(priv->user)) ? priv->user : "",
 		(NZV(priv->user)) ? "@" : "",
 		priv->host,
-		(port) ? port : "");
+		(port) ? port : "",
+		(NZV(priv->share)) ? priv->share : "",
+		(NZV(priv->share)) ? "/" : "");
 
 	g_free(port);
 	return result;
@@ -402,7 +416,7 @@
 	SionBookmarkPrivate *priv;
 
 	g_return_if_fail(bookmark != NULL);
-	g_return_if_fail(NZV(user));
+	g_return_if_fail(user != NULL);
 
 	priv = SION_BOOKMARK_GET_PRIVATE(bookmark);
 
@@ -411,6 +425,50 @@
 }
 
 
+const gchar *sion_bookmark_get_share(SionBookmark *bookmark)
+{
+	g_return_val_if_fail(bookmark != NULL, NULL);
+
+	return SION_BOOKMARK_GET_PRIVATE(bookmark)->share;
+}
+
+
+void sion_bookmark_set_share(SionBookmark *bookmark, const gchar *share)
+{
+	SionBookmarkPrivate *priv;
+
+	g_return_if_fail(bookmark != NULL);
+	g_return_if_fail(share != NULL);
+
+	priv = SION_BOOKMARK_GET_PRIVATE(bookmark);
+
+	g_free(priv->share);
+	priv->share = g_strdup(share);
+}
+
+
+const gchar *sion_bookmark_get_domain(SionBookmark *bookmark)
+{
+	g_return_val_if_fail(bookmark != NULL, NULL);
+
+	return SION_BOOKMARK_GET_PRIVATE(bookmark)->domain;
+}
+
+
+void sion_bookmark_set_domain(SionBookmark *bookmark, const gchar *domain)
+{
+	SionBookmarkPrivate *priv;
+
+	g_return_if_fail(bookmark != NULL);
+	g_return_if_fail(domain != NULL);
+
+	priv = SION_BOOKMARK_GET_PRIVATE(bookmark);
+
+	g_free(priv->domain);
+	priv->domain = g_strdup(domain);
+}
+
+
 gboolean sion_bookmark_is_valid(SionBookmark *bookmark)
 {
 	SionBookmarkPrivate *priv;

Modified: sion/trunk/src/bookmark.h
===================================================================
--- sion/trunk/src/bookmark.h	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/src/bookmark.h	2008-12-14 19:55:02 UTC (rev 6320)
@@ -70,6 +70,12 @@
 const gchar*		sion_bookmark_get_user		(SionBookmark *bookmark);
 void				sion_bookmark_set_user		(SionBookmark *bookmark, const gchar *user);
 
+const gchar*		sion_bookmark_get_share		(SionBookmark *bookmark);
+void				sion_bookmark_set_share		(SionBookmark *bookmark, const gchar *share);
+
+const gchar*		sion_bookmark_get_domain	(SionBookmark *bookmark);
+void				sion_bookmark_set_domain	(SionBookmark *bookmark, const gchar *domain);
+
 G_END_DECLS
 
 #endif /* __BOOKMARK_H__ */

Modified: sion/trunk/src/bookmarkeditdialog.c
===================================================================
--- sion/trunk/src/bookmarkeditdialog.c	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/src/bookmarkeditdialog.c	2008-12-14 19:55:02 UTC (rev 6320)
@@ -56,6 +56,12 @@
 
 	GtkWidget *user_label;
 	GtkWidget *user_entry;
+
+	GtkWidget *domain_label;
+	GtkWidget *domain_entry;
+
+	GtkWidget *share_label;
+	GtkWidget *share_entry;
 /*
 	GtkWidget *share_entry;
 	GtkWidget *domain_entry;
@@ -153,6 +159,10 @@
 	gtk_widget_destroy(priv->port_spin);
 	gtk_widget_destroy(priv->user_entry);
 	gtk_widget_destroy(priv->user_label);
+	gtk_widget_destroy(priv->domain_entry);
+	gtk_widget_destroy(priv->domain_label);
+	gtk_widget_destroy(priv->share_entry);
+	gtk_widget_destroy(priv->share_label);
 	gtk_widget_destroy(priv->information_label);
 
 	GTK_OBJECT_CLASS(parent_class)->destroy(object);
@@ -265,6 +275,12 @@
 	tmp = sion_bookmark_get_user(priv->bookmark_init);
 	if (tmp != NULL)
 		gtk_entry_set_text(GTK_ENTRY(priv->user_entry), tmp);
+	tmp = sion_bookmark_get_share(priv->bookmark_init);
+	if (tmp != NULL)
+		gtk_entry_set_text(GTK_ENTRY(priv->share_entry), tmp);
+	tmp = sion_bookmark_get_domain(priv->bookmark_init);
+	if (tmp != NULL)
+		gtk_entry_set_text(GTK_ENTRY(priv->domain_entry), tmp);
 	port = sion_bookmark_get_port(priv->bookmark_init);
 	idx = scheme_to_index(sion_bookmark_get_scheme(priv->bookmark_init));
 	if (port == 0)
@@ -312,6 +328,16 @@
 		gtk_container_remove(GTK_CONTAINER(priv->table), priv->user_label);
 		gtk_container_remove(GTK_CONTAINER(priv->table), priv->user_entry);
 	}
+	if (gtk_widget_get_parent(priv->domain_entry) != NULL)
+	{
+		gtk_container_remove(GTK_CONTAINER(priv->table), priv->domain_label);
+		gtk_container_remove(GTK_CONTAINER(priv->table), priv->domain_entry);
+	}
+	if (gtk_widget_get_parent(priv->share_entry) != NULL)
+	{
+		gtk_container_remove(GTK_CONTAINER(priv->table), priv->share_label);
+		gtk_container_remove(GTK_CONTAINER(priv->table), priv->share_entry);
+	}
 	if (gtk_widget_get_parent(priv->information_label) != NULL)
 	{
 		gtk_container_remove(GTK_CONTAINER(priv->table), priv->information_label);
@@ -347,6 +373,22 @@
 				  1, 2, i, i+1, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
 
 		i++;
+
+		if (meth->flags & SHOW_SHARE)
+		{
+			gtk_misc_set_alignment(GTK_MISC(priv->share_label), 0.0, 0.5);
+			gtk_widget_show(priv->share_label);
+			gtk_table_attach(GTK_TABLE(table), priv->share_label,
+					  0, 1, i, i+1, GTK_FILL, GTK_FILL, 0, 0);
+
+			gtk_label_set_mnemonic_widget(GTK_LABEL(priv->share_label), priv->share_entry);
+			gtk_widget_show(priv->share_entry);
+			gtk_table_attach(GTK_TABLE(table), priv->share_entry,
+					  1, 2, i, i+1, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
+
+			i++;
+		}
+
 	}
 
 	if (meth->flags)
@@ -373,6 +415,21 @@
 			i++;
 		}
 
+		if (meth->flags & SHOW_DOMAIN)
+		{
+			gtk_misc_set_alignment(GTK_MISC(priv->domain_label), 0.0, 0.5);
+			gtk_widget_show(priv->domain_label);
+			gtk_table_attach(GTK_TABLE(table), priv->domain_label,
+					  0, 1, i, i+1, GTK_FILL, GTK_FILL, 0, 0);
+
+			gtk_label_set_mnemonic_widget(GTK_LABEL(priv->domain_label), priv->domain_entry);
+			gtk_widget_show(priv->domain_entry);
+			gtk_table_attach(GTK_TABLE(table), priv->domain_entry,
+					  1, 2, i, i+1, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
+
+			i++;
+		}
+
 		if (meth->flags & SHOW_USER)
 		{
 			gtk_misc_set_alignment(GTK_MISC(priv->user_label), 0.0, 0.5);
@@ -476,8 +533,11 @@
 		if (*tmp)
 			sion_bookmark_set_host(priv->bookmark_update, tmp);
 		tmp = gtk_entry_get_text(GTK_ENTRY(priv->user_entry));
-		if (*tmp)
-			sion_bookmark_set_user(priv->bookmark_update, tmp);
+		sion_bookmark_set_user(priv->bookmark_update, tmp);
+		tmp = gtk_entry_get_text(GTK_ENTRY(priv->domain_entry));
+		sion_bookmark_set_domain(priv->bookmark_update, tmp);
+		tmp = gtk_entry_get_text(GTK_ENTRY(priv->share_entry));
+		sion_bookmark_set_share(priv->bookmark_update, tmp);
 		sion_bookmark_set_port(priv->bookmark_update,
 			gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(priv->port_spin)));
 	}
@@ -611,14 +671,17 @@
 	gtk_spin_button_set_value(GTK_SPIN_BUTTON(priv->port_spin), 0);
 	gtk_widget_set_tooltip_text(priv->port_spin, _("Set the port to 0 to use the default port."));
 	priv->user_entry = gtk_entry_new();
+	priv->domain_entry = gtk_entry_new();
+	priv->share_entry = gtk_entry_new();
 
 	priv->uri_label = gtk_label_new_with_mnemonic(_("_Location (URI):"));
 	priv->server_label = gtk_label_new_with_mnemonic(_("_Server:"));
 	priv->user_label = gtk_label_new_with_mnemonic(_("_User Name:"));
 	priv->information_label = gtk_label_new(_("Optional information:"));
 	priv->port_label = gtk_label_new_with_mnemonic(_("_Port:"));
+	priv->domain_label = gtk_label_new_with_mnemonic(_("_Domain:"));
+	priv->share_label = gtk_label_new_with_mnemonic(_("_Share:"));
 
-
 	gtk_entry_set_activates_default(GTK_ENTRY(priv->uri_entry), TRUE);
 	gtk_entry_set_activates_default(GTK_ENTRY(priv->server_entry), TRUE);
 	gtk_entry_set_activates_default(GTK_ENTRY(priv->port_spin), TRUE);
@@ -633,6 +696,10 @@
 	g_object_ref(priv->port_spin);
 	g_object_ref(priv->user_entry);
 	g_object_ref(priv->user_label);
+	g_object_ref(priv->domain_entry);
+	g_object_ref(priv->domain_label);
+	g_object_ref(priv->share_entry);
+	g_object_ref(priv->share_label);
 	g_object_ref(priv->information_label);
 
 	gtk_widget_show_all(vbox);

Modified: sion/trunk/src/passworddialog.c
===================================================================
--- sion/trunk/src/passworddialog.c	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/src/passworddialog.c	2008-12-14 19:55:02 UTC (rev 6320)
@@ -25,6 +25,7 @@
 #include <gtk/gtk.h>
 
 #include "main.h"
+#include "common.h"
 #include "compat.h"
 #include "passworddialog.h"
 
@@ -100,6 +101,7 @@
 	dialog_vbox = sion_dialog_get_content_area(GTK_DIALOG(dialog));
 
 	gtk_window_set_title(GTK_WINDOW(dialog), _("Authentication information needed"));
+	gtk_window_set_icon_name(GTK_WINDOW(dialog), GTK_STOCK_DIALOG_AUTHENTICATION);
 	//~ gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
 	gtk_container_set_border_width(GTK_CONTAINER(dialog), 5);
 	gtk_box_set_spacing(GTK_BOX(dialog_vbox), 2);
@@ -124,6 +126,7 @@
 	priv->entry_domain = gtk_entry_new();
 	g_signal_connect(priv->entry_domain, "activate", G_CALLBACK(entry_activate_cb), dialog);
 	label = gtk_label_new_with_mnemonic(_("_Domain:"));
+	gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
 	gtk_label_set_mnemonic_widget(GTK_LABEL(label), priv->entry_domain);
 	priv->box_domain = gtk_hbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(priv->box_domain), label, FALSE, FALSE, 0);
@@ -136,6 +139,7 @@
 	priv->entry_username = gtk_entry_new();
 	g_signal_connect(priv->entry_username, "activate", G_CALLBACK(entry_activate_cb), dialog);
 	label = gtk_label_new_with_mnemonic(_("_Username:"));
+	gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
 	gtk_label_set_mnemonic_widget(GTK_LABEL(label), priv->entry_username);
 	priv->box_username = gtk_hbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(priv->box_username), label, FALSE, FALSE, 0);
@@ -149,6 +153,7 @@
 	gtk_entry_set_visibility(GTK_ENTRY(priv->entry_password), FALSE);
 	g_signal_connect(priv->entry_password, "activate", G_CALLBACK(entry_activate_cb), dialog);
 	label = gtk_label_new_with_mnemonic(_("_Password:"));
+	gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
 	gtk_label_set_mnemonic_widget(GTK_LABEL(label), priv->entry_password);
 	priv->box_password = gtk_hbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(priv->box_password), label, FALSE, FALSE, 0);
@@ -165,12 +170,12 @@
 }
 
 
-GtkWidget *sion_password_dialog_new(GAskPasswordFlags flags)
+GtkWidget *sion_password_dialog_new(GAskPasswordFlags flags, const gchar *user, const gchar *domain)
 {
 	GtkWidget *dialog = g_object_new(SION_PASSWORD_DIALOG_TYPE, NULL);
 	SionPasswordDialogPrivate *priv = SION_PASSWORD_DIALOG_GET_PRIVATE(dialog);
 
-	/** Implement G_ASK_PASSWORD_SAVING_SUPPORTED */
+	/** TODO Implement G_ASK_PASSWORD_SAVING_SUPPORTED */
 	if (flags & G_ASK_PASSWORD_NEED_PASSWORD)
 	{
 		gtk_widget_show(priv->box_password);
@@ -179,11 +184,15 @@
 	if (flags & G_ASK_PASSWORD_NEED_USERNAME)
 	{
 		gtk_widget_show(priv->box_username);
+		if (NZV(user))
+			gtk_entry_set_text(GTK_ENTRY(priv->entry_username), user);
 		gtk_widget_grab_focus(priv->entry_username);
 	}
 	if (flags & G_ASK_PASSWORD_NEED_DOMAIN)
 	{
 		gtk_widget_show(priv->box_domain);
+		if (NZV(domain))
+			gtk_entry_set_text(GTK_ENTRY(priv->entry_domain), domain);
 		gtk_widget_grab_focus(priv->entry_domain);
 	}
 

Modified: sion/trunk/src/passworddialog.h
===================================================================
--- sion/trunk/src/passworddialog.h	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/src/passworddialog.h	2008-12-14 19:55:02 UTC (rev 6320)
@@ -47,7 +47,7 @@
 };
 
 GType			sion_password_dialog_get_type		(void);
-GtkWidget*		sion_password_dialog_new			(GAskPasswordFlags flags);
+GtkWidget*		sion_password_dialog_new			(GAskPasswordFlags flags, const gchar *user, const gchar *domain);
 
 const gchar*	sion_password_dialog_get_domain		(SionPasswordDialog *dialog);
 const gchar*	sion_password_dialog_get_username	(SionPasswordDialog *dialog);

Modified: sion/trunk/src/settings.c
===================================================================
--- sion/trunk/src/settings.c	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/src/settings.c	2008-12-14 19:55:02 UTC (rev 6320)
@@ -391,6 +391,8 @@
 			set_setting_string(k, name, "host", sion_bookmark_get_host(bm));
 			set_setting_string(k, name, "user", sion_bookmark_get_user(bm));
 			set_setting_string(k, name, "scheme", sion_bookmark_get_scheme(bm));
+			set_setting_string(k, name, "share", sion_bookmark_get_share(bm));
+			set_setting_string(k, name, "domain", sion_bookmark_get_domain(bm));
 			set_setting_int(k, name, "port", sion_bookmark_get_port(bm));
 		}
 	}
@@ -485,7 +487,7 @@
 	GError *error = NULL;
 	gsize len, i;
 	gchar **groups;
-	gchar *scheme, *host, *user;
+	gchar *scheme, *host, *user, *domain, *share;
 	gint port;
 	SionBookmark *bm;
 
@@ -504,6 +506,8 @@
 		scheme = get_setting_string(k, groups[i], "scheme", "");
 		host = get_setting_string(k, groups[i], "host", "");
 		user = get_setting_string(k, groups[i], "user", "");
+		domain = get_setting_string(k, groups[i], "domain", "");
+		share = get_setting_string(k, groups[i], "share", "");
 		port = get_setting_int(k, groups[i], "port", 0);
 
 		bm = sion_bookmark_new();
@@ -513,6 +517,10 @@
 			sion_bookmark_set_host(bm, host);
 		if (NZV(user))
 			sion_bookmark_set_user(bm, user);
+		if (NZV(domain))
+			sion_bookmark_set_domain(bm, domain);
+		if (NZV(share))
+			sion_bookmark_set_share(bm, share);
 		sion_bookmark_set_port(bm, port);
 
 		g_ptr_array_add(priv->bookmarks, bm);
@@ -520,6 +528,8 @@
 		g_free(scheme);
 		g_free(host);
 		g_free(user);
+		g_free(domain);
+		g_free(share);
 	}
 	g_strfreev(groups);
 

Modified: sion/trunk/src/window.c
===================================================================
--- sion/trunk/src/window.c	2008-12-14 19:51:12 UTC (rev 6319)
+++ sion/trunk/src/window.c	2008-12-14 19:55:02 UTC (rev 6320)
@@ -169,6 +169,7 @@
                                   GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", text);
 	gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s", secondary);
 	gtk_window_set_title(GTK_WINDOW(dialog), _("Error"));
+	gtk_window_set_icon_name(GTK_WINDOW(dialog), sion_window_get_icon_name());
 	gtk_dialog_run(GTK_DIALOG(dialog));
 	gtk_widget_destroy(dialog);
 }
@@ -247,7 +248,7 @@
 
 	priv = SION_WINDOW_GET_PRIVATE(window);
 	uri = sion_bookmark_get_uri(bookmark);
-	sion_backend_gvfs_mount_uri(priv->backend_gvfs, uri);
+	sion_backend_gvfs_mount_uri(priv->backend_gvfs, uri, sion_bookmark_get_domain(bookmark));
 
 	g_free(uri);
 }
@@ -324,8 +325,6 @@
 			sion_backend_gvfs_unmount_mount(priv->backend_gvfs, mnt);
 		}
 	}
-	else
-		debug("Invalid iter");
 }
 
 
@@ -687,7 +686,7 @@
 	SionWindowPrivate *priv = SION_WINDOW_GET_PRIVATE(window);
 	GtkTreeIter iter;
 	GtkTreeModel *model = GTK_TREE_MODEL(priv->store);
-debug(__func__);
+
 	get_selected_iter(window, &iter);
 	if (gtk_list_store_iter_is_valid(priv->store, &iter))
 	{
@@ -715,11 +714,7 @@
 			g_free(uri);
 			g_free(name);
 		}
-		else
-			debug("%s: no mount", __func__);
 	}
-	else
-		debug("%s: invalid iter", __func__);
 }
 
 
@@ -904,6 +899,7 @@
 		"Bookmarks", _("_Bookmarks"), _("Choose a bookmark to connect to"),
 		sion_find_icon_name("bookmark-new", GTK_STOCK_EDIT));
 	g_signal_connect(priv->action_bookmarks, "item-clicked", G_CALLBACK(action_bookmark_activate_cb), window);
+	g_signal_connect(priv->action_bookmarks, "button-clicked", G_CALLBACK(action_mount_cb), window);
 
 	priv->action_group = gtk_action_group_new("UI");
 	gtk_action_group_set_translation_domain(priv->action_group, GETTEXT_PACKAGE);
@@ -1124,6 +1120,7 @@
 
 	g_object_set(priv->action_bookmarks, "settings", settings, NULL);
 
+	sion_window_show_trayicon(SION_WINDOW(window), sion_settings_get_boolean(settings, "show-trayicon"));
 	sion_window_show_toolbar(SION_WINDOW(window), sion_settings_get_boolean(settings, "show-toolbar"));
 	sion_window_set_toolbar_style(SION_WINDOW(window), sion_settings_get_integer(settings, "toolbar-style"));
 	sion_window_set_toolbar_orientation(SION_WINDOW(window),




More information about the Goodies-commits mailing list