1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 from flumotion.component.base.effectsnode import EffectAdminGtkNode
23
24 __version__ = "$Rev: 7162 $"
25
26
28 logCategory = 'colorbalance'
29
30 gladeFile = 'flumotion/component/effects/colorbalance/colorbalance.glade'
31
32
33
34
38
40 for k in 'Hue', 'Saturation', 'Brightness', 'Contrast':
41 lower = k.lower()
42 scale = self.wtree.get_widget('scale-%s' % lower)
43 spinbutton = self.wtree.get_widget('spinbutton-%s' % lower)
44
45 value = 0.0
46
47 scale.set_value(value)
48 spinbutton.set_value(value)
49
50 scale_change_id = scale.connect('value-changed',
51 self.cb_colorbalance_change, k)
52 spinbutton_change_id = spinbutton.connect('value-changed',
53 self.cb_colorbalance_change, k)
54
55 setattr(self, 'scale_%s' % lower, scale)
56 setattr(self, 'spinbutton_%s' % lower, spinbutton)
57 setattr(self, '%s_scale_change_id' % lower, scale_change_id)
58 setattr(self, '%s_spinbutton_change_id' % lower,
59 spinbutton_change_id)
60
62 value = widget.get_value()
63 self.debug('changing colorbalance %s to %f' % (label, value))
64
65 self.propertyChanged(label, value)
66 self.debug('informing effect of change')
67
68 def errback(failure, label):
69 self.warning("Failure %s changing colorbalance %s: %s",
70 failure.type, label, failure.getErrorMessage())
71
72 def callback(result, label):
73 self.debug("remote replied colorbalance %s changed to %f",
74 label, result)
75
76 d = self.effectCallRemote("setColorBalanceProperty", label, value)
77 d.addErrback(errback, label)
78 d.addCallback(callback, label)
79
84
86 if key.startswith('colorbalance-'):
87 key = key[len('colorbalance-'):]
88 self.propertyChanged(key, value)
89
91 self.debug('syncing colorbance property %s to %f' % (name, value))
92
93 lower = name.lower()
94 scale = getattr(self, 'scale_%s' % lower)
95 spinbutton = getattr(self, 'spinbutton_%s' % lower)
96 scale_change_id = getattr(self, '%s_scale_change_id' % lower)
97 spinbutton_change_id = getattr(self, '%s_spinbutton_change_id' % lower)
98
99 scale.handler_block(scale_change_id)
100 scale.set_value(value)
101 scale.handler_unblock(scale_change_id)
102 spinbutton.handler_block(spinbutton_change_id)
103 spinbutton.set_value(value)
104 spinbutton.handler_unblock(spinbutton_change_id)
105