[Goodies-commits] r6957 - in gigolo/trunk: . src

Enrico Troeger enrico at xfce.org
Fri Mar 20 16:24:29 CET 2009


Author: enrico
Date: 2009-03-20 15:24:29 +0000 (Fri, 20 Mar 2009)
New Revision: 6957

Modified:
   gigolo/trunk/ChangeLog
   gigolo/trunk/src/browsenetworkpanel.c
   gigolo/trunk/src/preferencesdialog.c
   gigolo/trunk/src/settings.c
   gigolo/trunk/src/window.c
Log:
Add a preference to show/hide the 'Browse Network' side panel.

Modified: gigolo/trunk/ChangeLog
===================================================================
--- gigolo/trunk/ChangeLog	2009-03-20 15:24:22 UTC (rev 6956)
+++ gigolo/trunk/ChangeLog	2009-03-20 15:24:29 UTC (rev 6957)
@@ -4,6 +4,9 @@
    src/browsenetworkpanel.h, src/Makefile.am, src/window.c, wscript:
    Remove the 'Browse Network' dialog and add a side panel instead to
    show a list of Samba shares/workgroups.
+ * src/browsenetworkpanel.c, src/preferencesdialog.c, src/settings.c,
+   src/window.c:
+   Add a preference to show/hide the 'Browse Network' side panel.
 
 
 2009-03-19  Enrico Tröger  <enrico(at)xfce(dot)org>

Modified: gigolo/trunk/src/browsenetworkpanel.c
===================================================================
--- gigolo/trunk/src/browsenetworkpanel.c	2009-03-20 15:24:22 UTC (rev 6956)
+++ gigolo/trunk/src/browsenetworkpanel.c	2009-03-20 15:24:29 UTC (rev 6957)
@@ -74,12 +74,6 @@
     PROP_SETTINGS
 };
 
-enum
-{
-	HIDE_PANEL,
-	LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL];
 
 
 static void tree_selection_changed_cb(GtkTreeSelection *selection, GigoloBrowseNetworkPanel *panel);
@@ -129,15 +123,6 @@
 	gigolo_browse_network_panel_parent_class = (GtkVBoxClass*) g_type_class_peek(GTK_TYPE_VBOX);
 	g_type_class_add_private(klass, sizeof(GigoloBrowseNetworkPanelPrivate));
 
-	signals[HIDE_PANEL] = g_signal_new("hide-panel",
-										G_TYPE_FROM_CLASS(klass),
-										(GSignalFlags) 0,
-										0,
-										0,
-										NULL,
-										g_cclosure_marshal_VOID__VOID,
-										G_TYPE_NONE, 0);
-
 	g_object_class_install_property(g_object_class,
 									PROP_SETTINGS,
 									g_param_spec_object(
@@ -340,7 +325,9 @@
 
 static void button_close_click_cb(G_GNUC_UNUSED GtkToolButton *btn, GigoloBrowseNetworkPanel *panel)
 {
-	g_signal_emit(panel, signals[HIDE_PANEL], 0);
+	GigoloBrowseNetworkPanelPrivate *priv = GIGOLO_BROWSE_NETWORK_PANEL_GET_PRIVATE(panel);
+	/* hide the panel by setting the property to FALSE */
+	g_object_set(priv->settings, "show-panel", FALSE, NULL);
 }
 
 

Modified: gigolo/trunk/src/preferencesdialog.c
===================================================================
--- gigolo/trunk/src/preferencesdialog.c	2009-03-20 15:24:22 UTC (rev 6956)
+++ gigolo/trunk/src/preferencesdialog.c	2009-03-20 15:24:29 UTC (rev 6957)
@@ -27,6 +27,7 @@
 #include "common.h"
 #include "compat.h"
 #include "settings.h"
+#include "backendgvfs.h"
 #include "preferencesdialog.h"
 
 
@@ -403,6 +404,11 @@
 	checkbox = add_check_button(settings, "start-in-systray", _("Start _minimized in the Notification Area"));
 	gtk_box_pack_start(GTK_BOX(frame_vbox), checkbox, FALSE, FALSE, 0);
 
+	checkbox = add_check_button(settings, "show-panel", _("Show 'Browse Network' side panel"));
+	gtk_widget_set_tooltip_text(checkbox, _("Whether to show a side panel for browsing the local network for available Samba shares"));
+	gtk_widget_set_sensitive(checkbox, gigolo_backend_gvfs_is_scheme_supported("smb"));
+	gtk_box_pack_start(GTK_BOX(frame_vbox), checkbox, FALSE, FALSE, 0);
+
 	hbox = gtk_hbox_new(FALSE, 6);
 	gtk_box_pack_start(GTK_BOX(frame_vbox), hbox, FALSE, FALSE, 0);
 

Modified: gigolo/trunk/src/settings.c
===================================================================
--- gigolo/trunk/src/settings.c	2009-03-20 15:24:22 UTC (rev 6956)
+++ gigolo/trunk/src/settings.c	2009-03-20 15:24:29 UTC (rev 6957)
@@ -51,6 +51,7 @@
 	gint		toolbar_style;
 	gint		toolbar_orientation;
 	gint		view_mode;
+	gboolean	show_panel;
 
 	gchar		*file_manager;
 	gint		 autoconnect_interval;
@@ -84,7 +85,8 @@
 	PROP_SHOW_TOOLBAR,
 	PROP_TOOLBAR_STYLE,
 	PROP_TOOLBAR_ORIENTATION,
-	PROP_VIEW_MODE
+	PROP_VIEW_MODE,
+	PROP_SHOW_PANEL
 };
 
 
@@ -125,6 +127,9 @@
 	case PROP_AUTOCONNECT_INTERVAL:
 		priv->autoconnect_interval = g_value_get_int(value);
 		break;
+	case PROP_SHOW_PANEL:
+		priv->show_panel = g_value_get_boolean(value);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
 		break;
@@ -167,6 +172,9 @@
 			g_object_set(object, "autoconnect-interval", DEFAULT_AUTOCONNECT_INTERVAL, NULL);
 		g_value_set_int(value, priv->autoconnect_interval);
 		break;
+	case PROP_SHOW_PANEL:
+		g_value_set_boolean(value, priv->show_panel);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
 		break;
@@ -255,6 +263,14 @@
 									"Autoconnect interval",
 									0, G_MAXINT, 0,
 									G_PARAM_READWRITE));
+	g_object_class_install_property(gobject_class,
+									PROP_SHOW_PANEL,
+									g_param_spec_boolean(
+									"show-panel",
+									"show-panel",
+									"Whether to show the side panel",
+									TRUE,
+									G_PARAM_READWRITE));
 }
 
 
@@ -379,6 +395,7 @@
 	g_key_file_set_integer(k, SECTION_UI, "toolbar_style", priv->toolbar_style);
 	g_key_file_set_integer(k, SECTION_UI, "toolbar_orientation", priv->toolbar_orientation);
 	g_key_file_set_integer(k, SECTION_UI, "view_mode", priv->view_mode);
+	g_key_file_set_boolean(k, SECTION_UI, "show_panel", priv->show_panel);
 
 	write_data(k, priv->config_filename);
 
@@ -477,6 +494,7 @@
 	priv->save_geometry = get_setting_boolean(k, SECTION_UI, "save_geometry", TRUE);
 	priv->show_in_systray = get_setting_boolean(k, SECTION_UI, "show_in_systray", TRUE);
 	priv->start_in_systray = get_setting_boolean(k, SECTION_UI, "start_in_systray", FALSE);
+	priv->show_panel = get_setting_boolean(k, SECTION_UI, "show_panel", FALSE);
 	priv->show_toolbar = get_setting_boolean(k, SECTION_UI, "show_toolbar", TRUE);
 	priv->toolbar_style = get_setting_int(k, SECTION_UI, "toolbar_style", -1);
 	priv->toolbar_orientation = get_setting_int(k, SECTION_UI, "toolbar_orientation", 0);

Modified: gigolo/trunk/src/window.c
===================================================================
--- gigolo/trunk/src/window.c	2009-03-20 15:24:22 UTC (rev 6956)
+++ gigolo/trunk/src/window.c	2009-03-20 15:24:29 UTC (rev 6957)
@@ -918,7 +918,7 @@
 {
 	GigoloWindowPrivate *priv = GIGOLO_WINDOW_GET_PRIVATE(window);
 
-	if (show)
+	if (show && gigolo_backend_gvfs_is_scheme_supported("smb"))
 		gtk_widget_show(priv->hbox_pane);
 	else
 		gtk_widget_hide(priv->hbox_pane);
@@ -1019,6 +1019,8 @@
 		gigolo_window_set_toolbar_orientation(window, g_value_get_int(value));
 	else if (name == g_intern_string("view-mode"))
 		gigolo_window_set_view_mode(window, g_value_get_int(value));
+	else if (name == g_intern_string("show-panel"))
+		gigolo_window_show_side_panel(window, g_value_get_boolean(value));
 	else if (! g_object_class_find_property(G_OBJECT_GET_CLASS(settings), name))
 		 verbose("Unexpected setting '%s'", name);
 	g_value_unset(value);
@@ -1026,12 +1028,6 @@
 }
 
 
-static void panel_hide_request_cb(G_GNUC_UNUSED GigoloBrowseNetworkPanel *pnl, GigoloWindow *window)
-{
-	gigolo_window_show_side_panel(window, FALSE);
-}
-
-
 static void create_ui_elements(GigoloWindow *window, GtkUIManager *ui_manager)
 {
 	GError *error = NULL;
@@ -1332,7 +1328,6 @@
 	gtk_paned_set_position(GTK_PANED(panel_pane), 200);
 
 	priv->browse_panel = gigolo_browse_network_panel_new(GTK_WINDOW(window));
-	g_signal_connect(priv->browse_panel, "hide-panel", G_CALLBACK(panel_hide_request_cb), window);
 	gtk_widget_show(priv->browse_panel);
 
 	/* Pack the widgets altogether */
@@ -1380,8 +1375,6 @@
 	g_object_set(priv->action_bookmarks, "settings", settings, NULL);
 	g_object_set(priv->browse_panel, "settings", settings, NULL);
 
-	gigolo_window_show_side_panel(GIGOLO_WINDOW(window), TRUE);
-
 	gigolo_window_show_systray_icon(GIGOLO_WINDOW(window),
 		gigolo_settings_get_boolean(settings, "show-in-systray"));
 	gigolo_window_show_toolbar(GIGOLO_WINDOW(window),
@@ -1392,6 +1385,8 @@
 		gigolo_settings_get_integer(settings, "toolbar-orientation"));
 	gigolo_window_set_view_mode(GIGOLO_WINDOW(window),
 		gigolo_settings_get_integer(settings, "view-mode"));
+	gigolo_window_show_side_panel(GIGOLO_WINDOW(window),
+		gigolo_settings_get_integer(settings, "show-panel"));
 
 	if (gigolo_settings_get_boolean(settings, "save-geometry"))
 	{




More information about the Goodies-commits mailing list