[pitivi] gstwidget: Use the numerical representation of enums.



commit 364ef0d77c2583b24f4402f9283712f3ecc56a3e
Author: Edward Hervey <bilboed bilboed com>
Date:   Thu May 14 17:03:41 2009 +0200

    gstwidget: Use the numerical representation of enums.
    
    Moving around strongly-typed enum values is pointless since:
    * we need that GType to be loaded to be usefule (not great when loading
    a project...)
    * we've got the name of the property so we can get the enum back later on.
---
 pitivi/ui/gstwidget.py |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/pitivi/ui/gstwidget.py b/pitivi/ui/gstwidget.py
index fbbdec0..1483b7a 100644
--- a/pitivi/ui/gstwidget.py
+++ b/pitivi/ui/gstwidget.py
@@ -45,7 +45,9 @@ def get_widget_propvalue(prop, widget):
     if (type_name in ['gboolean']):
         return widget.get_active()
     if type_name in ['GEnum']:
-        return widget.get_model()[widget.get_active()][1]
+        # we don't want to have typed enums wondering around,
+        # we therefore convert it to it's numerical equivalent
+        return int(widget.get_model()[widget.get_active()][1])
     return None
 
 def make_property_widget(unused_element, prop, value=None):
@@ -100,7 +102,7 @@ def make_property_widget(unused_element, prop, value=None):
         for key, val in prop.enum_class.__enum_values__.iteritems():
             log.log("gstwidget", "adding %s / %s", val.value_name, val)
             model.append([val.value_name, val])
-            if val == value:
+            if val == value or key == value:
                 selected = idx
             idx = idx + 1
         widget.set_active(selected)



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