Merge lp:~nico-inattendu/luciole/bug_521371 into lp:luciole/0.8

Proposed by NicoInattendu
Status: Merged
Approved by: NicoInattendu
Approved revision: not available
Merged at revision: not available
Proposed branch: lp:~nico-inattendu/luciole/bug_521371
Merge into: lp:luciole/0.8
Diff against target: 142 lines (+92/-6)
1 file modified
lucioLib/gui/dialog_project_properties.py (+92/-6)
To merge this branch: bzr merge lp:~nico-inattendu/luciole/bug_521371
Reviewer Review Type Date Requested Status
NicoInattendu Approve
Review via email: mp+19287@code.launchpad.net

Commit message

Fix for bug #521371

To post a comment you must log in.
Revision history for this message
NicoInattendu (nico-inattendu) wrote :

Corrections after merge rejection

Revision history for this message
NicoInattendu (nico-inattendu) wrote :

A test ( unit test ?) for change to several / single framerate in projetc properties could be fine ? Find a way to do it.

Revision history for this message
NicoInattendu (nico-inattendu) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lucioLib/gui/dialog_project_properties.py'
--- lucioLib/gui/dialog_project_properties.py 2010-02-07 17:46:34 +0000
+++ lucioLib/gui/dialog_project_properties.py 2010-02-14 06:30:30 +0000
@@ -31,8 +31,12 @@
31import pango31import pango
3232
33from .. import luciole_constants as LCONST33from .. import luciole_constants as LCONST
34from .. import luciole_exceptions as LEXCEP
34import webcam_detection_widget as LWDW35import webcam_detection_widget as LWDW
3536
37import logging
38module_logger = logging.getLogger('luciole')
39
3640
37#type of widgets for displaying webcam data41#type of widgets for displaying webcam data
38(LABEL,ENTRY,SCALE)=range(3)42(LABEL,ENTRY,SCALE)=range(3)
@@ -102,6 +106,8 @@
102 106
103 def __init__(self,main_window, project, cb_project_change) :107 def __init__(self,main_window, project, cb_project_change) :
104 """ create a Dialog with project properties and display it"""108 """ create a Dialog with project properties and display it"""
109 # init logger
110 self.logger = logging.getLogger('luciole')
105 self._dialog = gtk.Dialog ( _(self._title),111 self._dialog = gtk.Dialog ( _(self._title),
106 main_window,112 main_window,
107 gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,113 gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
@@ -111,10 +117,11 @@
111 )117 )
112 self._project = project118 self._project = project
113 self._cb_project_change = cb_project_change119 self._cb_project_change = cb_project_change
114
115 # keep framerate list and framerate selected those value can change120 # keep framerate list and framerate selected those value can change
116 self._framerate_selected = None121 self._framerate_selected = None
117 self._framerate_list = None122 self._framerate_list = None
123 self.webcam_widget_table_position = 0
124
118 if self._project['hardtype'] == LCONST.WEBCAM and self._project['webcam_data'] != {} :125 if self._project['hardtype'] == LCONST.WEBCAM and self._project['webcam_data'] != {} :
119 self._framerate_selected = self._project['webcam_data']['framerate_selected']126 self._framerate_selected = self._project['webcam_data']['framerate_selected']
120 self._framerate_list = self._project['webcam_data']['framerate_list']127 self._framerate_list = self._project['webcam_data']['framerate_list']
@@ -232,9 +239,20 @@
232 widget.set_alignment(xalign = 0.0, yalign = 0.5) # left justification 239 widget.set_alignment(xalign = 0.0, yalign = 0.5) # left justification
233 widget.set_text("%s"%self._project['webcam_data'][key])240 widget.set_text("%s"%self._project['webcam_data'][key])
234 elif self._WEBCAM_PREFS[key]['type'] == SCALE :241 elif self._WEBCAM_PREFS[key]['type'] == SCALE :
235 widget = Framerate_scale(self._project['webcam_data'][key],242 # display scale bar if several framerates are available
236 self._project['webcam_data']['framerate_selected'],243 if len( self._project['webcam_data'][key]) > 1 :
237 self._cb_framerate_selected)244 widget = Framerate_scale(self._project['webcam_data'][key],
245 self._project['webcam_data']['framerate_selected'],
246 self._cb_framerate_selected)
247 elif len( self._project['webcam_data'][key]) == 1 :
248 widget = gtk.Label()
249 widget.set_alignment(xalign = 0.0, yalign = 0.5) # left justification
250 # in that case framerate_selected = framerate_list[0]
251 framerate = int(self._project['webcam_data']['framerate_selected'][0]/self._project['webcam_data']['framerate_selected'][1])
252 widget.set_text("%s"%framerate)
253 else :
254 self.logging.debug('Something goes wrong')
255 self.webcam_widget_table_position = row
238256
239 self.webcam_widgets[key] = widget # save the widget257 self.webcam_widgets[key] = widget # save the widget
240 258
@@ -334,9 +352,77 @@
334 for (w_key, w_widget) in self.webcam_widgets.iteritems() :352 for (w_key, w_widget) in self.webcam_widgets.iteritems() :
335 # Sepcific operation for framerate_list widget353 # Sepcific operation for framerate_list widget
336 if w_key == 'framerate_list' :354 if w_key == 'framerate_list' :
337 w_widget.refresh(project_data['webcam_data']['framerate_list'],
338 project_data['webcam_data']['framerate_selected'] )
339 self._framerate_list = project_data['webcam_data']['framerate_list']355 self._framerate_list = project_data['webcam_data']['framerate_list']
356 self._framerate_selected = project_data['webcam_data']['framerate_selected']
357 # 2 cases only one framerate or several framerates :
358 # display a Label or a Scale
359
360 # current widget is a label
361 if type(w_widget) == gtk.Label :
362 # how many framerates in framerate list
363 if len( self._framerate_list) > 1 :
364 # Sevaral framerates
365 # Hide current widget
366 w_widget.hide()
367 # create a Framerate_scale widget
368 widget = Framerate_scale(self._framerate_list,
369 self._framerate_selected,
370 self._cb_framerate_selected)
371
372
373 # Parent is a table attach new widget
374 w_widget.parent.attach( widget, 1, 2,
375 self.webcam_widget_table_position,
376 self.webcam_widget_table_position+1,
377 xpadding = 10 )
378
379 self.webcam_widgets[w_key] = widget # replace the widget
380
381 elif len( self._framerate_list ) == 1 :
382 # only one framerate update label
383 w_text = int( self._framerate_selected[0] /
384 self._framerate_selected[1])
385 w_text ="%s"%w_text
386 w_widget.set_text(w_text)
387 else :
388 # Not normal
389 lerr = " 0 is an invalid number of framerates."
390 raise LEXCEP.LucioException, lerr
391
392 # current widegt is a framerate scale
393 else :
394 # how many framerates in framerate list
395 if len(self._framerate_list) > 1 :
396 # Several framerates
397 # refresh Framerate_scale widget
398 w_widget.refresh(self._framerate_list,self._framerate_selected )
399
400 elif len( self._framerate_list ) == 1 :
401 # only one framerate is available
402 # Hide current widget
403 w_widget.hide()
404
405 # create a Label widget
406 widget = gtk.Label()
407 widget.set_alignment(xalign = 0.0, yalign = 0.5) # left justification
408 w_text = int( self._framerate_selected[0]/
409 self._framerate_selected[1])
410 w_text ="%s"%w_text
411 widget.set_text("%s"%framerate)
412
413 # Parent is a table attach new widget
414 w_widget.parent.attach( widget, 1, 2,
415 self.webcam_widget_table_position,
416 self.webcam_widget_table_position+1,
417 xpadding = 10 )
418
419 self.webcam_widgets[w_key] = widget # replace the widget
420 else :
421 # Not normal
422 lerr = " 0 is an invalid number of framerates."
423 raise LEXCEP.LucioException, lerr
424
425
340 # for other webcam widgets : only text to update426 # for other webcam widgets : only text to update
341 else :427 else :
342 if project_data['webcam_data'].has_key(w_key) : 428 if project_data['webcam_data'].has_key(w_key) :

Subscribers

People subscribed via source and target branches

to all changes: