[pitivi] widgets: Get rid of the use_element_props params



commit 483dcffe9f26e6b98b5bf5fa052fc8b261f92c26
Author: Alexandru Băluț <alexandru balut gmail com>
Date:   Thu Oct 29 09:42:24 2015 +0100

    widgets: Get rid of the use_element_props params
    
    It is not needed because we can already see whether there are any
    "props" to use and if there are none we use the element's props.
    
    Reviewed-by: Thibault Saunier <tsaunier gnome org>
    Differential Revision: https://phabricator.freedesktop.org/D526

 pitivi/effects.py       |    2 +-
 pitivi/utils/widgets.py |   56 ++++++++++++++++++++++++----------------------
 2 files changed, 30 insertions(+), 28 deletions(-)
---
diff --git a/pitivi/effects.py b/pitivi/effects.py
index 3cbd78f..39c918d 100644
--- a/pitivi/effects.py
+++ b/pitivi/effects.py
@@ -562,7 +562,7 @@ class EffectsPropertiesManager:
             # Here we should handle special effects configuration UI
             effect_settings_widget = GstElementSettingsWidget()
             effect_settings_widget.setElement(effect, ignore=PROPS_TO_IGNORE,
-                                              default_btn=True, use_element_props=True)
+                                              default_btn=True)
             scrolled_window = Gtk.ScrolledWindow()
             scrolled_window.add_with_viewport(effect_settings_widget)
             scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC,
diff --git a/pitivi/utils/widgets.py b/pitivi/utils/widgets.py
index 14da275..58f9ec6 100644
--- a/pitivi/utils/widgets.py
+++ b/pitivi/utils/widgets.py
@@ -587,8 +587,8 @@ class GstElementSettingsWidget(Gtk.Box, Loggable):
         Gtk.Box.__init__(self)
         Loggable.__init__(self)
         self.element = None
-        self.ignore = None
-        self.properties = None
+        self.ignore = []
+        self.properties = {}
         self.buttons = {}
         self.isControllable = isControllable
         self.set_orientation(Gtk.Orientation.VERTICAL)
@@ -621,18 +621,20 @@ class GstElementSettingsWidget(Gtk.Box, Loggable):
             self.log("Effect has no parent (it has been removed?)")
             return
 
-    def setElement(self, element, properties={}, ignore=['name'],
-                   default_btn=False, use_element_props=False):
+    def setElement(self, element, values={}, ignore=['name'],
+                   default_btn=False):
         """
-        Set given element on Widget, with optional properties
+        Set the element to be edited.
+
+        @param values: The values of the element properties.
+                       If empty, the default values will be used.
         """
-        self.info("element: %s, use properties: %s", element, properties)
+        self.info("element: %s, use values: %s", element, values)
         self.element = element
         self.ignore = ignore
-        self.properties = {}
-        self._addWidgets(properties, default_btn, use_element_props)
+        self._addWidgets(values, default_btn)
 
-    def _addWidgets(self, properties, default_btn, use_element_props):
+    def _addWidgets(self, values, default_btn):
         """
         Prepare a gtk table containing the property widgets of an element.
         Each property is on a separate row of the table.
@@ -641,6 +643,7 @@ class GstElementSettingsWidget(Gtk.Box, Loggable):
         If there are no properties, returns a table containing the label
         "No properties."
         """
+        self.properties.clear()
         self.bindings = {}
         self.keyframeToggleButtons = {}
         is_effect = False
@@ -674,20 +677,21 @@ class GstElementSettingsWidget(Gtk.Box, Loggable):
             # We do not know how to work with GObjects, so blacklist
             # them to avoid noise in the UI
             if (not prop.flags & GObject.PARAM_WRITABLE or
-               not prop.flags & GObject.PARAM_READABLE or
-               GObject.type_is_a(prop.value_type, GObject.Object)):
+                    not prop.flags & GObject.PARAM_READABLE or
+                    GObject.type_is_a(prop.value_type, GObject.Object)):
                 continue
 
             if is_effect:
                 result, prop_value = self.element.get_child_property(prop.name)
-                if result is False:
+                if not result:
                     self.debug(
                         "Could not get value for property: %s", prop.name)
             else:
-                if use_element_props:
+                if not values:
+                    # Use the default value.
                     prop_value = self.element.get_property(prop.name)
                 else:
-                    prop_value = properties.get(prop.name)
+                    prop_value = values.get(prop.name)
 
             widget = self._makePropertyWidget(prop, prop_value)
             if isinstance(widget, ToggleWidget):
@@ -871,6 +875,13 @@ class GstElementSettingsDialog(Loggable):
         Loggable.__init__(self)
         self.debug("factory: %s, properties: %s", elementfactory, properties)
 
+        self.factory = elementfactory
+        self.element = self.factory.create("elementsettings")
+        if not self.element:
+            self.warning(
+                "Couldn't create element from factory %s", self.factory)
+        self.properties = properties
+
         self.builder = Gtk.Builder()
         self.builder.add_from_file(
             os.path.join(get_ui_dir(), "elementsettingsdialog.ui"))
@@ -881,13 +892,10 @@ class GstElementSettingsDialog(Loggable):
         self.elementsettings = GstElementSettingsWidget(isControllable)
         self.builder.get_object("viewport1").add(self.elementsettings)
 
-        self.factory = elementfactory
-        self.element = self.factory.create("elementsettings")
-        if not self.element:
-            self.warning(
-                "Couldn't create element from factory %s", self.factory)
-        self.properties = properties
-        self._fillWindow()
+        # set title and frame label
+        self.window.set_title(
+            _("Properties for %s") % self.factory.get_longname())
+        self.elementsettings.setElement(self.element, self.properties)
 
         # Try to avoid scrolling, whenever possible.
         screen_height = self.window.get_screen().get_height()
@@ -910,12 +918,6 @@ class GstElementSettingsDialog(Loggable):
             self.window.set_transient_for(parent_window)
         self.window.show()
 
-    def _fillWindow(self):
-        # set title and frame label
-        self.window.set_title(
-            _("Properties for %s") % self.factory.get_longname())
-        self.elementsettings.setElement(self.element, self.properties)
-
     def getSettings(self):
         """ returns the property/value dictionnary of the selected settings """
         return self.elementsettings.getSettings()


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