[cheese/gsettings-vala] Added selected-effect persistance



commit 9a513c7f2f7965f46105909a9cff5d381536e095
Author: Yuvaraj Pandian T <yuvipanda gmail com>
Date:   Sat Aug 7 01:54:39 2010 +0530

    Added selected-effect persistance

 data/org.gnome.Cheese.gschema.xml |    8 ++++++++
 libcheese/cheese-gconf.c          |   20 ++++++++++----------
 src/cheese-window.vala            |   16 ++++++++++++----
 src/vapi/cheese-common.vapi       |    4 +---
 4 files changed, 31 insertions(+), 17 deletions(-)
---
diff --git a/data/org.gnome.Cheese.gschema.xml b/data/org.gnome.Cheese.gschema.xml
index f8c5de4..9c9fbdc 100644
--- a/data/org.gnome.Cheese.gschema.xml
+++ b/data/org.gnome.Cheese.gschema.xml
@@ -16,6 +16,14 @@
       <default>''</default>
     </key>
 
+    <key name='selected-effect' type='s'>
+      <summary>Name of last selected effect</summary>
+      <description>
+        Name of installed effect that was selected last
+      </description>
+      <default>'identity'</default>
+    </key>
+
     <key name='x-resolution' type='i'>
       <summary>Width resolution</summary>
       <description>
diff --git a/libcheese/cheese-gconf.c b/libcheese/cheese-gconf.c
index 76cb9c8..ae340db 100644
--- a/libcheese/cheese-gconf.c
+++ b/libcheese/cheese-gconf.c
@@ -64,6 +64,10 @@ cheese_gconf_get_property (GObject *object, guint prop_id, GValue *value,
       g_settings_get (priv->settings, "camera", "s", &temp_str);
       g_value_set_string (value, temp_str);
       break;
+  case GCONF_PROP_SELECTED_EFFECT:
+      g_settings_get (priv->settings, "selected-effect", "s", &temp_str);
+      g_value_set_string (value, temp_str);
+      break;
     case GCONF_PROP_X_RESOLUTION:
       g_settings_get (priv->settings, "x-resolution", "i", &temp_int);
       g_value_set_int (value, temp_int);
@@ -135,6 +139,9 @@ cheese_gconf_set_property (GObject *object, guint prop_id, const GValue *value,
     case GCONF_PROP_CAMERA:
       g_settings_set (priv->settings, "camera", "s", g_value_get_string (value));
       break;
+  case GCONF_PROP_SELECTED_EFFECT:
+      g_settings_set (priv->settings, "selected-effect", "s", g_value_get_string (value));
+      break;
     case GCONF_PROP_X_RESOLUTION:
       g_settings_set (priv->settings, "x-resolution", "i", g_value_get_int (value));
       break;
@@ -208,11 +215,11 @@ cheese_gconf_class_init (CheeseGConfClass *klass)
                                                         NULL,
                                                         "",
                                                         G_PARAM_READWRITE));
-  g_object_class_install_property (object_class, GCONF_PROP_SELECTED_EFFECTS,
-                                   g_param_spec_string ("gconf_prop_selected_effects",
+  g_object_class_install_property (object_class, GCONF_PROP_SELECTED_EFFECT,
+                                   g_param_spec_string ("gconf_prop_selected_effect",
                                                         NULL,
                                                         NULL,
-                                                        "",
+                                                        "identity",
                                                         G_PARAM_READWRITE));
 
   g_object_class_install_property (object_class, GCONF_PROP_X_RESOLUTION,
@@ -283,13 +290,6 @@ cheese_gconf_class_init (CheeseGConfClass *klass)
                                                         "",
                                                         G_PARAM_READWRITE));
 
-  g_object_class_install_property (object_class, GCONF_PROP_ENABLE_DELETE,
-                                   g_param_spec_boolean ("gconf_prop_enable_delete",
-                                                         NULL,
-                                                         NULL,
-                                                         FALSE,
-                                                         G_PARAM_READWRITE));
-
   g_object_class_install_property (object_class, GCONF_PROP_WIDE_MODE,
                                    g_param_spec_boolean ("gconf_prop_wide_mode",
                                                          NULL,
diff --git a/src/cheese-window.vala b/src/cheese-window.vala
index e712f33..44ecadf 100644
--- a/src/cheese-window.vala
+++ b/src/cheese-window.vala
@@ -647,6 +647,7 @@ public class Cheese.MainWindow : Gtk.Window
   {
     selected_effect = event.source.get_data ("effect");
     camera.set_effect (selected_effect);
+	conf.gconf_prop_selected_effect = selected_effect.name;
     effects_toggle_action.set_active (false);
     return false;
   }
@@ -750,9 +751,9 @@ public class Cheese.MainWindow : Gtk.Window
   {
     if (current_effects_grid == null)
     {
-      effects_manager = new EffectsManager ();
-      effects_manager.load_effects ();
-
+		effects_manager = new EffectsManager ();
+		effects_manager.load_effects ();
+		
       effects_grids = new ArrayList<Mx.Grid>();
 
       if (effects_manager.effects.size == 0)
@@ -975,7 +976,14 @@ public class Cheese.MainWindow : Gtk.Window
         }
       }
       return;
-    }
+    }	
+
+	Cheese.Effect selected_effect = effects_manager.get_effect (conf.gconf_prop_selected_effect);
+	if (selected_effect != null)
+	{
+		camera.set_effect (selected_effect);
+	}
+	debug("%s", conf.gconf_prop_selected_effect);
 
     camera.play ();
   }
diff --git a/src/vapi/cheese-common.vapi b/src/vapi/cheese-common.vapi
index c02621c..df235a6 100644
--- a/src/vapi/cheese-common.vapi
+++ b/src/vapi/cheese-common.vapi
@@ -133,15 +133,13 @@ namespace Cheese
     [NoAccessorMethod]
     public bool gconf_prop_countdown {get; set;}
     [NoAccessorMethod]
-    public bool gconf_prop_enable_delete {get; set;}
-    [NoAccessorMethod]
     public double gconf_prop_hue {get; set;}
     [NoAccessorMethod]
     public string gconf_prop_photo_path {owned get; set;}
     [NoAccessorMethod]
     public double gconf_prop_saturation {get; set;}
     [NoAccessorMethod]
-    public string gconf_prop_selected_effects {owned get; set;}
+    public string gconf_prop_selected_effect {owned get; set;}
     [NoAccessorMethod]
     public string gconf_prop_video_path {owned get; set;}
     [NoAccessorMethod]



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