[pitivi] RenderDialog: keep framerate widgets in sync using RippleUpdateGroup



commit 163e4b27892ef73916d5417286fe69c4c326f162
Author: Brandon Lewis <brandon_lewis alum berkeley edu>
Date:   Fri Nov 19 18:15:05 2010 +0000

    RenderDialog: keep framerate widgets in sync using RippleUpdateGroup

 pitivi/ui/projectsettings.py |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/pitivi/ui/projectsettings.py b/pitivi/ui/projectsettings.py
index 4f210fa..0e7c136 100644
--- a/pitivi/ui/projectsettings.py
+++ b/pitivi/ui/projectsettings.py
@@ -28,6 +28,7 @@ import gst
 from gettext import gettext as _
 from pitivi.ui.glade import GladeWindow
 from pitivi.ui.dynamic import FractionWidget
+from pitivi.ui.ripple_update_group import RippleUpdateGroup
 from pitivi.ui.common import\
     model,\
     frame_rates,\
@@ -99,8 +100,26 @@ class ProjectSettingsDialog(GladeWindow):
         self.sample_rate_combo.set_model(audio_rates)
         self.sample_depth_combo.set_model(audio_depths)
 
+        # behavior
+
+        self.wg = RippleUpdateGroup(
+            (self.frame_rate_combo, self._updateCombo, "changed",
+                self.frame_rate_fraction_widget),
+            (self.frame_rate_fraction_widget, self._updateFraction, 
+                "value-changed", self.frame_rate_combo),
+        )
+        # keep framereate text field and combo in sync
+        self.wg.add_bi_edge(self.frame_rate_combo,
+            self.frame_rate_fraction_widget)
+
         self.updateUI()
 
+    def _updateFraction(self, unused, fraction, combo):
+        fraction.setWidgetValue(get_combo_value(combo))
+
+    def _updateCombo(self, unused, combo, fraction):
+        set_combo_value(combo, fraction.getWidgetValue())
+
     def updateUI(self):
 
         self.width_spinbutton.set_value(self.settings.videowidth)



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