[pitivi: 7/65] Automatically determine if codec settings require scrolling



commit 8bc73d4cba067808f94f6e49ea234c58fb61f9d5
Author: Jean-FranÃois Fortin Tam <nekohayo gmail com>
Date:   Sat Jun 18 23:14:45 2011 -0400

    Automatically determine if codec settings require scrolling

 data/ui/elementsettingsdialog.ui |    2 --
 pitivi/ui/gstwidget.py           |   16 ++++++++++++++++
 2 files changed, 16 insertions(+), 2 deletions(-)
---
diff --git a/data/ui/elementsettingsdialog.ui b/data/ui/elementsettingsdialog.ui
index a4f2881..1abdbba 100644
--- a/data/ui/elementsettingsdialog.ui
+++ b/data/ui/elementsettingsdialog.ui
@@ -2,12 +2,10 @@
 <interface>
   <!-- interface-requires gtk+ 2.6 -->
   <object class="GtkDialog" id="dialog1">
-    <property name="visible">False</property>
     <property name="can_focus">False</property>
     <property name="border_width">12</property>
     <property name="title" translatable="yes">Properties for &lt;element&gt;</property>
     <property name="modal">True</property>
-    <property name="default_height">550</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox1">
diff --git a/pitivi/ui/gstwidget.py b/pitivi/ui/gstwidget.py
index 976ef4d..2a4aa6f 100644
--- a/pitivi/ui/gstwidget.py
+++ b/pitivi/ui/gstwidget.py
@@ -197,6 +197,22 @@ class GstElementSettingsDialog(Loggable):
             self.warning("Couldn't create element from factory %s", self.factory)
         self.properties = properties
         self._fillWindow()
+
+        # Try to avoid scrolling, whenever possible.
+        screen_height = self.window.get_screen().get_height()
+        contents_height = self.elementsettings.size_request()[1]
+        maximum_contents_height = max(500, 0.7 * screen_height)
+        if contents_height < maximum_contents_height:
+            # The height of the content is small enough, disable the scrollbars.
+            default_height = -1
+            scrolledwindow = self.builder.get_object("scrolledwindow1")
+            scrolledwindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER)
+            scrolledwindow.set_shadow_type(gtk.SHADOW_NONE)
+        else:
+            # If we need to scroll, set a reasonable height for the window.
+            default_height = 600
+        self.window.set_default_size(300, default_height)
+
         self.window.show()
 
     def _fillWindow(self):



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