[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