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
1=== modified file 'lucioLib/gui/dialog_project_properties.py'
2--- lucioLib/gui/dialog_project_properties.py 2010-02-07 17:46:34 +0000
3+++ lucioLib/gui/dialog_project_properties.py 2010-02-14 06:30:30 +0000
4@@ -31,8 +31,12 @@
5 import pango
6
7 from .. import luciole_constants as LCONST
8+from .. import luciole_exceptions as LEXCEP
9 import webcam_detection_widget as LWDW
10
11+import logging
12+module_logger = logging.getLogger('luciole')
13+
14
15 #type of widgets for displaying webcam data
16 (LABEL,ENTRY,SCALE)=range(3)
17@@ -102,6 +106,8 @@
18
19 def __init__(self,main_window, project, cb_project_change) :
20 """ create a Dialog with project properties and display it"""
21+ # init logger
22+ self.logger = logging.getLogger('luciole')
23 self._dialog = gtk.Dialog ( _(self._title),
24 main_window,
25 gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
26@@ -111,10 +117,11 @@
27 )
28 self._project = project
29 self._cb_project_change = cb_project_change
30-
31 # keep framerate list and framerate selected those value can change
32 self._framerate_selected = None
33 self._framerate_list = None
34+ self.webcam_widget_table_position = 0
35+
36 if self._project['hardtype'] == LCONST.WEBCAM and self._project['webcam_data'] != {} :
37 self._framerate_selected = self._project['webcam_data']['framerate_selected']
38 self._framerate_list = self._project['webcam_data']['framerate_list']
39@@ -232,9 +239,20 @@
40 widget.set_alignment(xalign = 0.0, yalign = 0.5) # left justification
41 widget.set_text("%s"%self._project['webcam_data'][key])
42 elif self._WEBCAM_PREFS[key]['type'] == SCALE :
43- widget = Framerate_scale(self._project['webcam_data'][key],
44- self._project['webcam_data']['framerate_selected'],
45- self._cb_framerate_selected)
46+ # display scale bar if several framerates are available
47+ if len( self._project['webcam_data'][key]) > 1 :
48+ widget = Framerate_scale(self._project['webcam_data'][key],
49+ self._project['webcam_data']['framerate_selected'],
50+ self._cb_framerate_selected)
51+ elif len( self._project['webcam_data'][key]) == 1 :
52+ widget = gtk.Label()
53+ widget.set_alignment(xalign = 0.0, yalign = 0.5) # left justification
54+ # in that case framerate_selected = framerate_list[0]
55+ framerate = int(self._project['webcam_data']['framerate_selected'][0]/self._project['webcam_data']['framerate_selected'][1])
56+ widget.set_text("%s"%framerate)
57+ else :
58+ self.logging.debug('Something goes wrong')
59+ self.webcam_widget_table_position = row
60
61 self.webcam_widgets[key] = widget # save the widget
62
63@@ -334,9 +352,77 @@
64 for (w_key, w_widget) in self.webcam_widgets.iteritems() :
65 # Sepcific operation for framerate_list widget
66 if w_key == 'framerate_list' :
67- w_widget.refresh(project_data['webcam_data']['framerate_list'],
68- project_data['webcam_data']['framerate_selected'] )
69 self._framerate_list = project_data['webcam_data']['framerate_list']
70+ self._framerate_selected = project_data['webcam_data']['framerate_selected']
71+ # 2 cases only one framerate or several framerates :
72+ # display a Label or a Scale
73+
74+ # current widget is a label
75+ if type(w_widget) == gtk.Label :
76+ # how many framerates in framerate list
77+ if len( self._framerate_list) > 1 :
78+ # Sevaral framerates
79+ # Hide current widget
80+ w_widget.hide()
81+ # create a Framerate_scale widget
82+ widget = Framerate_scale(self._framerate_list,
83+ self._framerate_selected,
84+ self._cb_framerate_selected)
85+
86+
87+ # Parent is a table attach new widget
88+ w_widget.parent.attach( widget, 1, 2,
89+ self.webcam_widget_table_position,
90+ self.webcam_widget_table_position+1,
91+ xpadding = 10 )
92+
93+ self.webcam_widgets[w_key] = widget # replace the widget
94+
95+ elif len( self._framerate_list ) == 1 :
96+ # only one framerate update label
97+ w_text = int( self._framerate_selected[0] /
98+ self._framerate_selected[1])
99+ w_text ="%s"%w_text
100+ w_widget.set_text(w_text)
101+ else :
102+ # Not normal
103+ lerr = " 0 is an invalid number of framerates."
104+ raise LEXCEP.LucioException, lerr
105+
106+ # current widegt is a framerate scale
107+ else :
108+ # how many framerates in framerate list
109+ if len(self._framerate_list) > 1 :
110+ # Several framerates
111+ # refresh Framerate_scale widget
112+ w_widget.refresh(self._framerate_list,self._framerate_selected )
113+
114+ elif len( self._framerate_list ) == 1 :
115+ # only one framerate is available
116+ # Hide current widget
117+ w_widget.hide()
118+
119+ # create a Label widget
120+ widget = gtk.Label()
121+ widget.set_alignment(xalign = 0.0, yalign = 0.5) # left justification
122+ w_text = int( self._framerate_selected[0]/
123+ self._framerate_selected[1])
124+ w_text ="%s"%w_text
125+ widget.set_text("%s"%framerate)
126+
127+ # Parent is a table attach new widget
128+ w_widget.parent.attach( widget, 1, 2,
129+ self.webcam_widget_table_position,
130+ self.webcam_widget_table_position+1,
131+ xpadding = 10 )
132+
133+ self.webcam_widgets[w_key] = widget # replace the widget
134+ else :
135+ # Not normal
136+ lerr = " 0 is an invalid number of framerates."
137+ raise LEXCEP.LucioException, lerr
138+
139+
140 # for other webcam widgets : only text to update
141 else :
142 if project_data['webcam_data'].has_key(w_key) :

Subscribers

People subscribed via source and target branches

to all changes: