~ubuntu-branches/ubuntu/trusty/pitivi/trusty

« back to all changes in this revision

Viewing changes to pitivi/ui/gstwidget.py

  • Committer: Bazaar Package Importer
  • Author(s): Loic Minier
  • Date: 2007-01-31 15:32:37 UTC
  • mto: (3.2.1 hardy) (1.2.1 upstream) (6.1.1 sid)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20070131153237-de4p8lipjv8x5x3b
Tags: upstream-0.10.2
ImportĀ upstreamĀ versionĀ 0.10.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
import gst
30
30
from glade import GladeWindow
31
31
 
 
32
from gettext import gettext as _
 
33
 
32
34
def get_widget_propvalue(property, widget):
33
35
    """ returns the value of the given propertywidget """
34
 
    type_name = gobject.type_name(property.value_type)
 
36
    # FIXME : implement the case for flags
 
37
    type_name = gobject.type_name(property.value_type.fundamental)
 
38
 
35
39
    if (type_name == 'gchararray'):
36
40
        return widget.get_text()
37
41
    if (type_name in ['guint64', 'gint64', 'gint', 'gulong']):
40
44
        return widget.get_value()
41
45
    if (type_name in ['gboolean']):
42
46
        return widget.get_active()
 
47
    if type_name in ['GEnum']:
 
48
        idx = widget.get_active()
 
49
        model = widget.get_model()
 
50
        name, val = model[idx]
 
51
        return val
43
52
    return None
44
53
 
45
 
def make_property_widget(element, property, value=None):
 
54
def make_property_widget(unused_element, property, value=None):
46
55
    """ Creates a Widget for the given element property """
47
 
    type_name = gobject.type_name(property.value_type)
 
56
    # FIXME : implement the case for flags
 
57
    type_name = gobject.type_name(property.value_type.fundamental)
 
58
 
48
59
    if value == None:
49
 
        value = element.get_property(property.name)
 
60
        value = property.default_value
50
61
    if (type_name == 'gchararray'):
51
62
        widget = gtk.Entry()
52
63
        widget.set_text(str(value))
53
 
    elif (type_name in ['guint64', 'gint64', 'gint', 'gfloat', 'gulong']):
 
64
    elif (type_name in ['guint64', 'gint64', 'guint', 'gint', 'gfloat', 'gulong']):
54
65
        widget = gtk.SpinButton()
55
66
        if type_name == 'gint':
56
67
            widget.set_range(-(2**31), 2**31 - 1)
68
79
        widget = gtk.CheckButton()
69
80
        if value:
70
81
            widget.set_active(True)
 
82
    elif (type_name == 'GEnum'):
 
83
        model = gtk.ListStore(gobject.TYPE_STRING, property.value_type)
 
84
        widget = gtk.ComboBox(model)
 
85
        cell = gtk.CellRendererText()
 
86
        widget.pack_start(cell, True)
 
87
        widget.add_attribute(cell, 'text', 0)
 
88
 
 
89
        idx = 0
 
90
        for key, val in property.enum_class.__enum_values__.iteritems():
 
91
            gst.log("adding %s / %s" % (val.value_name, val))
 
92
            model.append([val.value_name, val])
 
93
            if val == value:
 
94
                selected = idx
 
95
            idx = idx + 1
 
96
        widget.set_active(selected)
71
97
    else:
72
98
        widget = gtk.Label(type_name)
73
99
        widget.set_alignment(1.0, 0.5)
140
166
 
141
167
    def _fillWindow(self):
142
168
        # set title and frame label
143
 
        self.window.set_title("Properties for " + self.factory.get_longname())
 
169
        self.window.set_title(_("Properties for ") + self.factory.get_longname())
144
170
        self.widgets["infolabel"].set_markup("<b>" + self.factory.get_longname() + "</b>")
145
171
        self.desclabel.set_text(self.factory.get_description())
146
172
        self.authlabel.set_text(string.join(self.factory.get_author().split(","), "\n"))