From 1557c715e461d5a7deb04bb008c6497441351bbe Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Sun, 30 Jul 2006 22:56:43 +0000 Subject: some minor speedups using caches and more selective updating --- lib/python/Components/Renderer/Label.py | 9 ++++++--- lib/python/Components/Renderer/PositionGauge.py | 9 ++++++--- lib/python/Components/Renderer/Progress.py | 6 +++++- 3 files changed, 17 insertions(+), 7 deletions(-) (limited to 'lib/python/Components/Renderer') diff --git a/lib/python/Components/Renderer/Label.py b/lib/python/Components/Renderer/Label.py index 1d06a214..3813ce21 100644 --- a/lib/python/Components/Renderer/Label.py +++ b/lib/python/Components/Renderer/Label.py @@ -12,7 +12,10 @@ class Label(VariableText, Renderer): def connect(self, source): Renderer.connect(self, source) - self.changed() + self.changed((self.CHANGED_DEFAULT,)) - def changed(self): - self.text = self.source.text + def changed(self, what): + if what[0] == self.CHANGED_CLEAR: + self.text = "" + else: + self.text = self.source.text diff --git a/lib/python/Components/Renderer/PositionGauge.py b/lib/python/Components/Renderer/PositionGauge.py index abc9b7ff..4b49501f 100644 --- a/lib/python/Components/Renderer/PositionGauge.py +++ b/lib/python/Components/Renderer/PositionGauge.py @@ -11,12 +11,15 @@ class PositionGauge(Renderer): GUI_WIDGET = ePositionGauge def postWidgetCreate(self, instance): - self.changed() + self.changed((self.CHANGED_DEFAULT,)) self.cutlist_changed() instance.setInOutList(self.__cutlist) - def changed(self): - (self.length, self.position) = (self.source.length or 0, self.source.position or 0) + def changed(self, what): + if what[0] == self.CHANGED_CLEAR: + (self.length, self.position) = 0 + else: + (self.length, self.position) = (self.source.length or 0, self.source.position or 0) def cutlist_changed(self): self.cutlist = self.source.cutlist or [ ] diff --git a/lib/python/Components/Renderer/Progress.py b/lib/python/Components/Renderer/Progress.py index b6f2b1c8..f32802e4 100644 --- a/lib/python/Components/Renderer/Progress.py +++ b/lib/python/Components/Renderer/Progress.py @@ -12,7 +12,11 @@ class Progress(VariableValue, Renderer): GUI_WIDGET = eSlider - def changed(self): + def changed(self, what): + if what[0] == self.CHANGED_CLEAR: + (self.range, self.value) = ((0, 1), 0) + return + range = self.source.range or 100 value = self.source.value if value is None: -- cgit v1.2.3