vinagre r320 - in trunk: . data src



Author: jwendell
Date: Tue May  6 23:58:12 2008
New Revision: 320
URL: http://svn.gnome.org/viewvc/vinagre?rev=320&view=rev

Log:
2008-05-06  Jonh Wendell <jwendell gnome org>

	* lots of files: Make VinagrePrefs a GObject


Added:
   trunk/src/vinagre-prefs.c
   trunk/src/vinagre-prefs.h
Removed:
   trunk/src/vinagre-prefs-manager.c
   trunk/src/vinagre-prefs-manager.h
Modified:
   trunk/ChangeLog
   trunk/data/vinagre.schemas.in
   trunk/src/Makefile.am
   trunk/src/vinagre-commands.c
   trunk/src/vinagre-main.c
   trunk/src/vinagre-tab.c
   trunk/src/vinagre-window.c

Modified: trunk/data/vinagre.schemas.in
==============================================================================
--- trunk/data/vinagre.schemas.in	(original)
+++ trunk/data/vinagre.schemas.in	Tue May  6 23:58:12 2008
@@ -49,5 +49,17 @@
 			</locale>
 		</schema>
 
+		<schema>
+			<key>/schemas/apps/vinagre/always_show_tabs</key>
+			<applyto>/apps/vinagre/always_show_tabs</applyto>
+			<owner>vinagre</owner>
+			<type>bool</type>
+			<default>true</default>
+			<locale name="C">
+				<short>Whether we should show tabs even when there is only one active connection</short>
+				<long>Set to "true" to always show the tabs. Setting to "false" will only show the tabs when there are more than one active connection.</long>
+			</locale>
+		</schema>
+
 	</schemalist>
 </gconfschemafile>

Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am	(original)
+++ trunk/src/Makefile.am	Tue May  6 23:58:12 2008
@@ -21,7 +21,6 @@
 	vinagre-bookmarks.c vinagre-bookmarks.h		\
 	vinagre-main.c 			\
 	vinagre-notebook.c vinagre-notebook.h		\
-	vinagre-prefs-manager.c	vinagre-prefs-manager.h	\
 	vinagre-tab.c vinagre-tab.h			\
 	vinagre-utils.c vinagre-utils.h			\
 	vinagre-window.c vinagre-window.h		\
@@ -29,6 +28,7 @@
 	vinagre-enums.h vinagre-enums.c			\
 	gossip-cell-renderer-expander.c gossip-cell-renderer-expander.h \
 	vinagre-mdns.h vinagre-mdns.c \
+	vinagre-prefs.h vinagre-prefs.c \
 	$(NULL)
 
 vinagre_LDADD = \

Modified: trunk/src/vinagre-commands.c
==============================================================================
--- trunk/src/vinagre-commands.c	(original)
+++ trunk/src/vinagre-commands.c	Tue May  6 23:58:12 2008
@@ -36,7 +36,7 @@
 #include "vinagre-bookmarks.h"
 #include "vinagre-fav.h"
 #include "vinagre-window-private.h"
-#include "vinagre-prefs-manager.h"
+#include "vinagre-prefs.h"
 
 void
 vinagre_cmd_direct_connect (VinagreConnection *conn,
@@ -177,7 +177,9 @@
 
   vinagre_utils_toggle_widget_visible (window->priv->toolbar);
 
-  vinagre_prefs_manager_set_toolbar_visible (GTK_WIDGET_VISIBLE (window->priv->toolbar));
+  g_object_set (vinagre_prefs_get_default (),
+		"toolbar-visible", GTK_WIDGET_VISIBLE (window->priv->toolbar),
+		NULL);
 }
 
 void
@@ -188,7 +190,9 @@
 
   vinagre_utils_toggle_widget_visible (window->priv->statusbar);
 
-  vinagre_prefs_manager_set_statusbar_visible (GTK_WIDGET_VISIBLE (window->priv->statusbar));
+  g_object_set (vinagre_prefs_get_default (),
+		"statusbar-visible", GTK_WIDGET_VISIBLE (window->priv->statusbar),
+		NULL);
 }
 
 void
@@ -199,7 +203,9 @@
 
   vinagre_utils_toggle_widget_visible (window->priv->fav_panel);
 
-  vinagre_prefs_manager_set_side_pane_visible (GTK_WIDGET_VISIBLE (window->priv->fav_panel));
+  g_object_set (vinagre_prefs_get_default (),
+		"side-panel-visible", GTK_WIDGET_VISIBLE (window->priv->fav_panel),
+		NULL);
 }
 
 void

Modified: trunk/src/vinagre-main.c
==============================================================================
--- trunk/src/vinagre-main.c	(original)
+++ trunk/src/vinagre-main.c	Tue May  6 23:58:12 2008
@@ -24,12 +24,13 @@
 #include <glib/goption.h>
 
 #include <config.h>
-#include "vinagre-prefs-manager.h"
 #include "vinagre-connection.h"
 #include "vinagre-commands.h"
 #include "vinagre-bookmarks.h"
 #include "vinagre-window.h"
 #include "vinagre-utils.h"
+#include "vinagre-prefs.h"
+#include "vinagre-mdns.h"
 #include <vncdisplay.h>
 
 /* command line */
@@ -138,8 +139,6 @@
   if (!g_thread_supported ())
     g_thread_init (NULL);
 
-  vinagre_prefs_manager_init ();
-
   main_window = vinagre_window_new ();
   gtk_widget_show (GTK_WIDGET(main_window));
 
@@ -157,7 +156,9 @@
 
   gtk_main ();
 
-  vinagre_prefs_manager_shutdown ();
+  g_object_unref (vinagre_bookmarks_get_default ());
+  g_object_unref (vinagre_mdns_get_default ());
+  g_object_unref (vinagre_prefs_get_default ());
 
   return 0;
 }

Added: trunk/src/vinagre-prefs.c
==============================================================================
--- (empty file)
+++ trunk/src/vinagre-prefs.c	Tue May  6 23:58:12 2008
@@ -0,0 +1,339 @@
+/*
+ * vinagre-prefs.c
+ * This file is part of vinagre
+ *
+ * Copyright (C) Jonh Wendell 2008 <wendell bani com br>
+ * 
+ * vinagre-prefs.c is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * vinagre-prefs.c is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gconf/gconf-client.h>
+#include <glib/gi18n.h>
+#include "vinagre-prefs.h"
+
+#define VINAGRE_BASE_KEY		"/apps/vinagre"
+#define VM_ALWAYS_SHOW_TABS		VINAGRE_BASE_KEY "/always_show_tabs"
+#define VM_SHARED_FLAG			VINAGRE_BASE_KEY "/shared_flag"
+#define VM_TOOLBAR_VISIBLE	 	VINAGRE_BASE_KEY "/toolbar_visible"
+#define VM_STATUSBAR_VISIBLE		VINAGRE_BASE_KEY "/statusbar_visible"
+#define VM_SIDE_PANEL_VISIBLE		VINAGRE_BASE_KEY "/side_pane_visible"
+
+#define VM_WINDOW_STATE			VINAGRE_BASE_KEY "/window_state"
+#define VM_WINDOW_WIDTH			VINAGRE_BASE_KEY "/window_width"
+#define VM_WINDOW_HEIGHT		VINAGRE_BASE_KEY "/window_height"
+#define VM_SIDE_PANEL_SIZE		VINAGRE_BASE_KEY "/side_panel_size"
+
+struct _VinagrePrefsPrivate
+{
+  GConfClient *gconf_client;
+};
+
+/* Properties */
+enum
+{
+  PROP_0,
+  PROP_SHARED_FLAG,
+  PROP_ALWAYS_SHOW_TABS,
+  PROP_TOOLBAR_VISIBLE,
+  PROP_STATUSBAR_VISIBLE,
+  PROP_SIDE_PANEL_VISIBLE,
+  PROP_WINDOW_STATE,
+  PROP_WINDOW_WIDTH,
+  PROP_WINDOW_HEIGHT,
+  PROP_SIDE_PANEL_SIZE
+};
+
+G_DEFINE_TYPE (VinagrePrefs, vinagre_prefs, G_TYPE_OBJECT);
+
+static VinagrePrefs *prefs_singleton = NULL;
+
+VinagrePrefs *
+vinagre_prefs_get_default (void)
+{
+  if (G_UNLIKELY (!prefs_singleton))
+    prefs_singleton = VINAGRE_PREFS (g_object_new (VINAGRE_TYPE_PREFS,
+                                                   NULL));
+  return prefs_singleton;
+}
+
+static gboolean
+vinagre_prefs_get_bool (VinagrePrefs *prefs, const gchar* key, gboolean def)
+{
+  GError* error = NULL;
+  GConfValue* val;
+
+  val = gconf_client_get (prefs->priv->gconf_client, key, &error);
+
+  if (val != NULL)
+    {
+      gboolean retval = def;
+
+      g_return_val_if_fail (error == NULL, retval);
+      
+      if (val->type == GCONF_VALUE_BOOL)
+        retval = gconf_value_get_bool (val);
+
+      gconf_value_free (val);
+
+      return retval;
+    }
+  else
+      return def;
+}
+
+static gboolean
+vinagre_prefs_get_int (VinagrePrefs *prefs, const gchar* key, gint def)
+{
+  GError* error = NULL;
+  GConfValue* val;
+
+  val = gconf_client_get (prefs->priv->gconf_client, key, &error);
+
+  if (val != NULL)
+    {
+      gint retval = def;
+
+      g_return_val_if_fail (error == NULL, retval);
+      
+      if (val->type == GCONF_VALUE_INT)
+        retval = gconf_value_get_int (val);
+
+      gconf_value_free (val);
+
+      return retval;
+    }
+  else
+      return def;
+}
+
+static void		 
+vinagre_prefs_set_bool (VinagrePrefs *prefs, const gchar* key, gboolean value)
+{
+  g_return_if_fail (gconf_client_key_is_writable (
+		    prefs->priv->gconf_client, key, NULL));
+			
+  gconf_client_set_bool (prefs->priv->gconf_client, key, value, NULL);
+}
+
+static void		 
+vinagre_prefs_set_int (VinagrePrefs *prefs, const gchar* key, gint value)
+{
+  g_return_if_fail (gconf_client_key_is_writable (
+		    prefs->priv->gconf_client, key, NULL));
+			
+  gconf_client_set_int (prefs->priv->gconf_client, key, value, NULL);
+}
+
+static void
+vinagre_prefs_always_show_tabs_notify (GConfClient           *client,
+				       guint                  cnx_id,
+				       GConfEntry            *entry,
+				       VinagrePrefs          *prefs)
+{
+  g_object_notify (G_OBJECT (prefs), "always-show-tabs");
+}
+
+static void
+vinagre_prefs_init (VinagrePrefs *prefs)
+{
+  prefs->priv = G_TYPE_INSTANCE_GET_PRIVATE (prefs, VINAGRE_TYPE_PREFS, VinagrePrefsPrivate);
+
+  prefs->priv->gconf_client = gconf_client_get_default ();
+  if (prefs->priv->gconf_client == NULL)
+    g_critical (_("Cannot initialize preferences manager."));
+
+  gconf_client_add_dir (prefs->priv->gconf_client,
+			VINAGRE_BASE_KEY,
+			GCONF_CLIENT_PRELOAD_ONELEVEL,
+			NULL);
+
+  gconf_client_notify_add (prefs->priv->gconf_client,
+			   VM_ALWAYS_SHOW_TABS,
+                           (GConfClientNotifyFunc) vinagre_prefs_always_show_tabs_notify,
+                           prefs, NULL, NULL);
+
+}
+
+static void
+vinagre_prefs_finalize (GObject *object)
+{
+  VinagrePrefs *prefs = VINAGRE_PREFS (object);
+
+  gconf_client_remove_dir (prefs->priv->gconf_client,
+			   VINAGRE_BASE_KEY,
+			   NULL);
+  g_object_unref (prefs->priv->gconf_client);
+  prefs->priv->gconf_client = NULL;
+
+  G_OBJECT_CLASS (vinagre_prefs_parent_class)->finalize (object);
+}
+
+static void
+vinagre_prefs_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+  VinagrePrefs *prefs = VINAGRE_PREFS (object);
+
+  switch (prop_id)
+    {
+      case PROP_SHARED_FLAG:
+	vinagre_prefs_set_bool (prefs, VM_SHARED_FLAG, g_value_get_boolean (value));
+	break;
+      case PROP_ALWAYS_SHOW_TABS:
+	vinagre_prefs_set_bool (prefs, VM_ALWAYS_SHOW_TABS, g_value_get_boolean (value));
+	break;
+      case PROP_TOOLBAR_VISIBLE:
+	vinagre_prefs_set_bool (prefs, VM_TOOLBAR_VISIBLE, g_value_get_boolean (value));
+	break;
+      case PROP_STATUSBAR_VISIBLE:
+	vinagre_prefs_set_bool (prefs, VM_STATUSBAR_VISIBLE, g_value_get_boolean (value));
+	break;
+      case PROP_SIDE_PANEL_VISIBLE:
+	vinagre_prefs_set_bool (prefs, VM_SIDE_PANEL_VISIBLE, g_value_get_boolean (value));
+	break;
+      case PROP_WINDOW_STATE:
+	vinagre_prefs_set_int (prefs, VM_WINDOW_STATE, g_value_get_int (value));
+	break;
+      case PROP_WINDOW_WIDTH:
+	vinagre_prefs_set_int (prefs, VM_WINDOW_WIDTH, g_value_get_int (value));
+	break;
+      case PROP_WINDOW_HEIGHT:
+	vinagre_prefs_set_int (prefs, VM_WINDOW_HEIGHT, g_value_get_int (value));
+	break;
+      case PROP_SIDE_PANEL_SIZE:
+	vinagre_prefs_set_int (prefs, VM_SIDE_PANEL_SIZE, g_value_get_int (value));
+	break;
+      default:
+	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+	break;
+    }
+}
+
+static void
+vinagre_prefs_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+  VinagrePrefs *prefs = VINAGRE_PREFS (object);
+
+  switch (prop_id)
+    {
+      case PROP_SHARED_FLAG:
+	g_value_set_boolean (value, vinagre_prefs_get_bool (prefs, VM_SHARED_FLAG, TRUE));
+	break;
+      case PROP_ALWAYS_SHOW_TABS:
+	g_value_set_boolean (value, vinagre_prefs_get_bool (prefs, VM_ALWAYS_SHOW_TABS, TRUE));
+	break;
+      case PROP_TOOLBAR_VISIBLE:
+	g_value_set_boolean (value, vinagre_prefs_get_bool (prefs, VM_TOOLBAR_VISIBLE, TRUE));
+	break;
+      case PROP_STATUSBAR_VISIBLE:
+	g_value_set_boolean (value, vinagre_prefs_get_bool (prefs, VM_STATUSBAR_VISIBLE, TRUE));
+	break;
+      case PROP_SIDE_PANEL_VISIBLE:
+	g_value_set_boolean (value, vinagre_prefs_get_bool (prefs, VM_SIDE_PANEL_VISIBLE, TRUE));
+	break;
+      case PROP_WINDOW_STATE:
+	g_value_set_int (value, vinagre_prefs_get_int (prefs, VM_WINDOW_STATE, 0));
+	break;
+      case PROP_WINDOW_WIDTH:
+	g_value_set_int (value, vinagre_prefs_get_int (prefs, VM_WINDOW_WIDTH, 650));
+	break;
+      case PROP_WINDOW_HEIGHT:
+	g_value_set_int (value, vinagre_prefs_get_int (prefs, VM_WINDOW_HEIGHT, 500));
+	break;
+      case PROP_SIDE_PANEL_SIZE:
+	g_value_set_int (value, vinagre_prefs_get_int (prefs, VM_SIDE_PANEL_SIZE, 200));
+	break;
+      default:
+	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+	break;
+    }
+}
+
+static void
+vinagre_prefs_class_init (VinagrePrefsClass *klass)
+{
+  GObjectClass* object_class = G_OBJECT_CLASS (klass);
+  GObjectClass* parent_class = G_OBJECT_CLASS (klass);
+
+  g_type_class_add_private (klass, sizeof (VinagrePrefsPrivate));
+
+  object_class->finalize = vinagre_prefs_finalize;
+  object_class->set_property = vinagre_prefs_set_property;
+  object_class->get_property = vinagre_prefs_get_property;
+
+  g_object_class_install_property (object_class,
+				   PROP_SHARED_FLAG,
+				   g_param_spec_boolean ("shared-flag",
+							 "Shared Flag",
+							 "Whether we should share the remote connection",
+							 TRUE,
+							 G_PARAM_READWRITE));
+  g_object_class_install_property (object_class,
+				   PROP_ALWAYS_SHOW_TABS,
+				   g_param_spec_boolean ("always-show-tabs",
+							 "Always show tabs",
+							 "Whether we should show the tabs even when there is ony one active connection",
+							 TRUE,
+							 G_PARAM_READWRITE));
+  g_object_class_install_property (object_class,
+				   PROP_TOOLBAR_VISIBLE,
+				   g_param_spec_boolean ("toolbar-visible",
+							 "Toolbar Visibility",
+							 "Whether the toolbar is visible",
+							 TRUE,
+							 G_PARAM_READWRITE));
+  g_object_class_install_property (object_class,
+				   PROP_STATUSBAR_VISIBLE,
+				   g_param_spec_boolean ("statusbar-visible",
+							 "Statusbar Visibility",
+							 "Whether the statusbar is visible",
+							 TRUE,
+							 G_PARAM_READWRITE));
+  g_object_class_install_property (object_class,
+				   PROP_SIDE_PANEL_VISIBLE,
+				   g_param_spec_boolean ("side-panel-visible",
+							 "Side Panel Visibility",
+							 "Whether the side panel is visible",
+							 TRUE,
+							 G_PARAM_READWRITE));
+  g_object_class_install_property (object_class,
+				   PROP_WINDOW_STATE,
+				   g_param_spec_int ("window-state",
+						     "Window State",
+						     "Whether the window is maximised",
+						     G_MININT, G_MAXINT, 0,
+						     G_PARAM_READWRITE));
+  g_object_class_install_property (object_class,
+				   PROP_WINDOW_WIDTH,
+				   g_param_spec_int ("window-width",
+						     "Window Width",
+						     "The width of window",
+						     100, G_MAXINT, 650,
+						     G_PARAM_READWRITE));
+  g_object_class_install_property (object_class,
+				   PROP_WINDOW_HEIGHT,
+				   g_param_spec_int ("window-height",
+						     "Window Height",
+						     "The height of window",
+						     100, G_MAXINT, 500,
+						     G_PARAM_READWRITE));
+  g_object_class_install_property (object_class,
+				   PROP_SIDE_PANEL_SIZE,
+				   g_param_spec_int ("side-panel-size",
+						     "Side Panel Width",
+						     "The width of side panel",
+						     100, G_MAXINT, 200,
+						     G_PARAM_READWRITE));
+
+}
+/* vim: ts=8 */

Added: trunk/src/vinagre-prefs.h
==============================================================================
--- (empty file)
+++ trunk/src/vinagre-prefs.h	Tue May  6 23:58:12 2008
@@ -0,0 +1,57 @@
+/*
+ * vinagre-prefs.c
+ * This file is part of vinagre
+ *
+ * Copyright (C) Jonh Wendell 2008 <wendell bani com br>
+ * 
+ * vinagre-prefs.c is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * vinagre-prefs.c is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _VINAGRE_PREFS_H_
+#define _VINAGRE_PREFS_H_
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define VINAGRE_TYPE_PREFS             (vinagre_prefs_get_type ())
+#define VINAGRE_PREFS(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), VINAGRE_TYPE_PREFS, VinagrePrefs))
+#define VINAGRE_PREFS_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), VINAGRE_TYPE_PREFS, VinagrePrefsClass))
+#define VINAGRE_IS_PREFS(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VINAGRE_TYPE_PREFS))
+#define VINAGRE_IS_PREFS_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), VINAGRE_TYPE_PREFS))
+#define VINAGRE_PREFS_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), VINAGRE_TYPE_PREFS, VinagrePrefsClass))
+
+typedef struct _VinagrePrefsClass VinagrePrefsClass;
+typedef struct _VinagrePrefs VinagrePrefs;
+typedef struct _VinagrePrefsPrivate VinagrePrefsPrivate;
+
+struct _VinagrePrefsClass
+{
+  GObjectClass parent_class;
+};
+
+struct _VinagrePrefs
+{
+  GObject parent_instance;
+  VinagrePrefsPrivate *priv;
+};
+
+GType vinagre_prefs_get_type (void) G_GNUC_CONST;
+
+VinagrePrefs	*vinagre_prefs_get_default (void);
+
+G_END_DECLS
+
+#endif /* _VINAGRE_PREFS_H_ */
+/* vim: ts=8 */

Modified: trunk/src/vinagre-tab.c
==============================================================================
--- trunk/src/vinagre-tab.c	(original)
+++ trunk/src/vinagre-tab.c	Tue May  6 23:58:12 2008
@@ -31,7 +31,7 @@
 #include "vinagre-notebook.h"
 #include "vinagre-tab.h"
 #include "vinagre-utils.h"
-#include "vinagre-prefs-manager.h"
+#include "vinagre-prefs.h"
 
 #define VINAGRE_TAB_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), VINAGRE_TYPE_TAB, VinagreTabPrivate))
 
@@ -623,6 +623,7 @@
 vinagre_tab_init (VinagreTab *tab)
 {
   GtkWidget *viewport;
+  gboolean shared;
 
   tab->priv = VINAGRE_TAB_GET_PRIVATE (tab);
   tab->priv->save_password = FALSE;
@@ -648,8 +649,11 @@
   viewport = gtk_bin_get_child (GTK_BIN (tab->priv->scroll));
   gtk_viewport_set_shadow_type(GTK_VIEWPORT (viewport), GTK_SHADOW_NONE);
 
+  g_object_get (vinagre_prefs_get_default (),
+		"shared-flag", &shared,
+		NULL);
   vnc_display_set_shared_flag (VNC_DISPLAY (tab->priv->vnc),
-			       vinagre_prefs_manager_get_shared_flag ());
+			       shared);
 
   g_signal_connect (tab->priv->vnc,
 		    "vnc-connected",

Modified: trunk/src/vinagre-window.c
==============================================================================
--- trunk/src/vinagre-window.c	(original)
+++ trunk/src/vinagre-window.c	Tue May  6 23:58:12 2008
@@ -32,7 +32,7 @@
 #include "vinagre-window.h"
 #include "vinagre-notebook.h"
 #include "vinagre-fav.h"
-#include "vinagre-prefs-manager.h"
+#include "vinagre-prefs.h"
 #include "vinagre-utils.h"
 #include "vinagre-bookmarks.h"
 #include "vinagre-ui.h"
@@ -133,21 +133,21 @@
 vinagre_window_state_event_cb (GtkWidget *widget,
 			       GdkEventWindowState *event)
 {
-  VinagreWindow *window;
+  VinagreWindow *window = VINAGRE_WINDOW (widget);
+
+  window->priv->window_state = event->new_window_state;
+  g_object_set (vinagre_prefs_get_default (),
+		"window-state", window->priv->window_state,
+		NULL);
 
   if ((event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) == 0)
     return FALSE;
 
-  window = VINAGRE_WINDOW (widget);
-
   if (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
     window->priv->fullscreen = TRUE;
   else
     window->priv->fullscreen = FALSE;
 
-  window->priv->window_state = event->new_window_state;
-  vinagre_prefs_manager_set_window_state (window->priv->window_state);
-
   vinagre_window_show_hide_controls (window);
 
   if (GTK_WIDGET_CLASS (vinagre_window_parent_class)->window_state_event)
@@ -165,8 +165,10 @@
   window->priv->width  = event->width;
   window->priv->height = event->height;
 
-  vinagre_prefs_manager_set_window_size (window->priv->width,
-					 window->priv->height);
+  g_object_set (vinagre_prefs_get_default (),
+		"window-width", window->priv->width,
+		"window-height", window->priv->height,
+		NULL);
 
   return GTK_WIDGET_CLASS (vinagre_window_parent_class)->configure_event (widget, event);
 }
@@ -492,7 +494,9 @@
 {
   window->priv->side_panel_size = allocation->width;
   if (window->priv->side_panel_size > 0)
-    vinagre_prefs_manager_set_side_panel_size (window->priv->side_panel_size);
+    g_object_set (vinagre_prefs_get_default (),
+		  "side-panel-size", window->priv->side_panel_size,
+		  NULL);
 }
 
 static void
@@ -683,7 +687,9 @@
 		   FALSE, 
 		   FALSE);
 
-  window->priv->side_panel_size = vinagre_prefs_manager_get_side_panel_size ();
+  g_object_get (vinagre_prefs_get_default (),
+		"side-panel-size", &(window->priv->side_panel_size),
+		NULL);
   gtk_paned_set_position (GTK_PANED (window->priv->hpaned), window->priv->side_panel_size);
 
   g_signal_connect (window->priv->fav_panel,
@@ -707,6 +713,7 @@
   gint w, h;
   GtkAction *action;
   gboolean visible;
+  VinagrePrefs *prefs = vinagre_prefs_get_default ();
 
   /* Remove and Edit bookmarks starts disabled */
   action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
@@ -717,64 +724,32 @@
 					"BookmarksEdit");
   gtk_action_set_sensitive (action, FALSE);
 
-  /* fav panel visibility */
+  /* side panel visibility */
   action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
 					"ViewSidePanel");
-  visible = vinagre_prefs_manager_get_side_pane_visible ();
+  g_object_get (prefs, "side-panel-visible", &visible, NULL);
   if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)) != visible)
     gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible);
 
   /* toolbar visibility */
   action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
 					"ViewToolbar");
-  visible = vinagre_prefs_manager_get_toolbar_visible ();
+  g_object_get (prefs, "toolbar-visible", &visible, NULL);
   if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)) != visible)
     gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible);
 
   /* statusbar visibility */
   action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
 					"ViewStatusbar");
-  visible = vinagre_prefs_manager_get_side_pane_visible ();
+  g_object_get (prefs, "statusbar-visible", &visible, NULL);
   if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)) != visible)
     gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible);
 
-  gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
-				vinagre_prefs_manager_get_statusbar_visible ());
-
-//  if (vinagre_prefs_manager_get_side_pane_visible ())
-//    gtk_widget_show_all (window->priv->fav_panel);
-//  else
-//    {
-//      gtk_widget_hide (window->priv->fav_panel);
-//printf ("hiding... was visible: %d\n", GTK_WIDGET_VISIBLE(window->priv->fav_panel));
-
-//      gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), FALSE);
-//    }
-
-  /* toolbar visibility */
-//  action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
-//					"ViewToolbar");
-//  if (vinagre_prefs_manager_get_toolbar_visible ())
-//    gtk_widget_show_all (window->priv->toolbar);
-//  else
-//    {
-//      gtk_widget_hide (window->priv->toolbar);
-//      gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), FALSE);
-//   }
-
-  /* toolbar visibility */
-//  action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
-//					"ViewStatusbar");
-//  if (vinagre_prefs_manager_get_statusbar_visible ())
-//    gtk_widget_show_all (window->priv->statusbar);
-//  else
-//    {
- //     gtk_widget_hide (window->priv->statusbar);
-//      gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), FALSE);
- //   }
-
-  state = vinagre_prefs_manager_get_window_state ();
-  vinagre_prefs_manager_get_window_size (&w, &h);
+  g_object_get (prefs,
+		"window-state", &state,
+		"window-width", &w,
+		"window-height", &h,
+		NULL);
 
   gtk_window_set_default_size (GTK_WINDOW (window), w, h);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]