Merge lp:~fboucault/camera-app/camera-app-gridlines into lp:camera-app
- camera-app-gridlines
- Merge into trunk
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Bill Filler | ||||
Approved revision: | 437 | ||||
Merged at revision: | 441 | ||||
Proposed branch: | lp:~fboucault/camera-app/camera-app-gridlines | ||||
Merge into: | lp:camera-app | ||||
Diff against target: |
452 lines (+299/-20) 7 files modified
ViewFinderOverlay.qml (+25/-0) ViewFinderOverlayLoader.qml (+1/-0) ViewFinderView.qml (+41/-1) assets/grid_lines.svg (+181/-0) po/camera-app.pot (+20/-19) tests/autopilot/camera_app/emulators/main_window.py (+4/-0) tests/autopilot/camera_app/tests/test_options.py (+27/-0) |
||||
To merge this branch: | bzr merge lp:~fboucault/camera-app/camera-app-gridlines | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Bill Filler (community) | Approve | ||
Arthur Mello (community) | Approve | ||
PS Jenkins bot | continuous-integration | Needs Fixing | |
Florian Boucault | Pending | ||
Review via email: mp+243421@code.launchpad.net |
This proposal supersedes a proposal from 2014-11-27.
Commit message
Add gridlines to the viewfinder controlled by a new settings option
Description of the change
Add gridlines to the viewfinder controlled by a new settings option
Florian Boucault (fboucault) wrote : Posted in a previous version of this proposal | # |
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:427
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
ABORTED: http://
UNSTABLE: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:428
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
- 429. By Florian Boucault
-
Proper UI for grid lines.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:428
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:429
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
Bill Filler (bfiller) wrote : | # |
need some tests
Bill Filler (bfiller) wrote : | # |
Other problems:
1) first time you launch the app you see the gridlines briefly visible until the viewfinder is initialized
2) on N4, the grid lines are not aligned properly with the viewfinder, they start at the left edge of the screen, not on the left edge of the viewfinder. And they don't expand all the way to the right edge of the viewfinder.
3) switching to front camera with gridlines on will make the gridlines disappear until you tap on the screen
4) same problem when switching back to back camera
- 430. By Florian Boucault
-
Merged from trunk
- 431. By Florian Boucault
-
Center grid lines horizontally.
- 432. By Florian Boucault
-
Do not display until we confirmed settings' value.
- 433. By Florian Boucault
-
Merged from trunk
- 434. By Florian Boucault
-
update pot
- 435. By Florian Boucault
-
Added AP test
Florian Boucault (fboucault) wrote : | # |
> Other problems:
> 1) first time you launch the app you see the gridlines briefly visible until
> the viewfinder is initialized
Fixed.
> 2) on N4, the grid lines are not aligned properly with the viewfinder, they
> start at the left edge of the screen, not on the left edge of the viewfinder.
Fixed.
> And they don't expand all the way to the right edge of the viewfinder.
> 3) switching to front camera with gridlines on will make the gridlines
> disappear until you tap on the screen
> 4) same problem when switching back to back camera
Both 3) and 4) are exactly https:/
Not a new bug unfortunately.
Florian Boucault (fboucault) wrote : | # |
> need some tests
Fixed.
- 436. By Florian Boucault
-
Listing bug
- 437. By Florian Boucault
-
Better visuals
Preview Diff
1 | === modified file 'ViewFinderOverlay.qml' |
2 | --- ViewFinderOverlay.qml 2014-12-05 18:43:54 +0000 |
3 | +++ ViewFinderOverlay.qml 2014-12-08 15:17:35 +0000 |
4 | @@ -29,6 +29,7 @@ |
5 | property bool touchAcquired: bottomEdge.pressed || zoomPinchArea.active |
6 | property real revealProgress: bottomEdge.progress |
7 | property var controls: controls |
8 | + property var settings: settings |
9 | |
10 | function showFocusRing(x, y) { |
11 | focusRing.center = Qt.point(x, y); |
12 | @@ -44,6 +45,7 @@ |
13 | property int videoFlashMode: Camera.FlashOff |
14 | property int selfTimerDelay: 0 |
15 | property int encodingQuality: 2 // QMultimedia.NormalQuality |
16 | + property bool gridEnabled: false |
17 | } |
18 | |
19 | Binding { |
20 | @@ -271,6 +273,29 @@ |
21 | label: QT_TR_NOOP("Basic Quality") |
22 | value: 1 // QMultimedia.LowQuality |
23 | } |
24 | + }, |
25 | + ListModel { |
26 | + id: gridOptionsModel |
27 | + |
28 | + property string settingsProperty: "gridEnabled" |
29 | + property string icon: "" |
30 | + property string iconSource: "assets/grid_lines.svg" |
31 | + property string label: "" |
32 | + property bool isToggle: true |
33 | + property int selectedIndex: bottomEdge.indexForValue(gridOptionsModel, settings.gridEnabled) |
34 | + property bool available: true |
35 | + property bool visible: true |
36 | + |
37 | + ListElement { |
38 | + icon: "" |
39 | + label: QT_TR_NOOP("On") |
40 | + value: true |
41 | + } |
42 | + ListElement { |
43 | + icon: "" |
44 | + label: QT_TR_NOOP("Off") |
45 | + value: false |
46 | + } |
47 | } |
48 | ] |
49 | |
50 | |
51 | === modified file 'ViewFinderOverlayLoader.qml' |
52 | --- ViewFinderOverlayLoader.qml 2014-12-03 12:56:42 +0000 |
53 | +++ ViewFinderOverlayLoader.qml 2014-12-08 15:17:35 +0000 |
54 | @@ -23,6 +23,7 @@ |
55 | property bool touchAcquired: loader.item ? loader.item.touchAcquired : false |
56 | property real revealProgress: loader.item ? loader.item.revealProgress : 0 |
57 | property var controls: loader.item ? loader.item.controls : null |
58 | + property var settings: loader.item.settings |
59 | |
60 | function showFocusRing(x, y) { |
61 | loader.item.showFocusRing(x, y); |
62 | |
63 | === modified file 'ViewFinderView.qml' |
64 | --- ViewFinderView.qml 2014-12-05 18:43:54 +0000 |
65 | +++ ViewFinderView.qml 2014-12-08 15:17:35 +0000 |
66 | @@ -133,7 +133,7 @@ |
67 | id: viewFinderSwitcher |
68 | anchors.fill: parent |
69 | visible: !viewFinderSwitcherBlurred.visible |
70 | - |
71 | + |
72 | ShaderEffectSource { |
73 | id: viewFinderGrab |
74 | live: false |
75 | @@ -250,6 +250,46 @@ |
76 | } |
77 | } |
78 | |
79 | + Item { |
80 | + id: gridlines |
81 | + objectName: "gridlines" |
82 | + anchors.horizontalCenter: parent.horizontalCenter |
83 | + width: viewFinderGeometry.width |
84 | + height: viewFinderGeometry.height |
85 | + visible: viewFinderOverlay.settings != undefined && viewFinderOverlay.settings.gridEnabled |
86 | + |
87 | + property color color: Qt.rgba(0.8, 0.8, 0.8, 0.8) |
88 | + property real thickness: units.dp(1) |
89 | + |
90 | + Rectangle { |
91 | + y: parent.height / 3 |
92 | + width: parent.width |
93 | + height: gridlines.thickness |
94 | + color: gridlines.color |
95 | + } |
96 | + |
97 | + Rectangle { |
98 | + y: 2 * parent.height / 3 |
99 | + width: parent.width |
100 | + height: gridlines.thickness |
101 | + color: gridlines.color |
102 | + } |
103 | + |
104 | + Rectangle { |
105 | + x: parent.width / 3 |
106 | + width: gridlines.thickness |
107 | + height: parent.height |
108 | + color: gridlines.color |
109 | + } |
110 | + |
111 | + Rectangle { |
112 | + x: 2 * parent.width / 3 |
113 | + width: gridlines.thickness |
114 | + height: parent.height |
115 | + color: gridlines.color |
116 | + } |
117 | + } |
118 | + |
119 | Connections { |
120 | target: viewFinderView |
121 | onInViewChanged: if (!viewFinderView.inView) viewFinderOverlay.controls.cancelTimedShoot() |
122 | |
123 | === added file 'assets/grid_lines.svg' |
124 | --- assets/grid_lines.svg 1970-01-01 00:00:00 +0000 |
125 | +++ assets/grid_lines.svg 2014-12-08 15:17:35 +0000 |
126 | @@ -0,0 +1,181 @@ |
127 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
128 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> |
129 | + |
130 | +<svg |
131 | + xmlns:dc="http://purl.org/dc/elements/1.1/" |
132 | + xmlns:cc="http://creativecommons.org/ns#" |
133 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
134 | + xmlns:svg="http://www.w3.org/2000/svg" |
135 | + xmlns="http://www.w3.org/2000/svg" |
136 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
137 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
138 | + width="90" |
139 | + height="90" |
140 | + id="svg4874" |
141 | + version="1.1" |
142 | + inkscape:version="0.91+devel r" |
143 | + viewBox="0 0 90 90.000001" |
144 | + sodipodi:docname="camera-grid01.svg"> |
145 | + <defs |
146 | + id="defs4876"> |
147 | + <clipPath |
148 | + id="clipPath2991-6" |
149 | + clipPathUnits="userSpaceOnUse"> |
150 | + <path |
151 | + sodipodi:nodetypes="cccsssssssccc" |
152 | + style="color:#000000;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
153 | + d="m 0,968.36224 0,83.99996 16.375,0 c -1.525081,-1.7576 -2.659363,-3.8737 -3.25,-6 -0.996189,-3.5863 -1.09375,-7.3341 -1.09375,-12 l 0,-35.99996 c 0,-4.66586 0.09756,-8.41372 1.09375,-12 0.996189,-3.58628 3.508218,-7.14653 6.90625,-9 C 26.827314,973.6553 34.5,974.39349 48,974.39349 l 6,0 c 10.951245,0 18.075349,-0.45164 24,1.34375 l 0,-7.375 z" |
154 | + id="path2993-6" |
155 | + inkscape:connector-curvature="0" /> |
156 | + </clipPath> |
157 | + </defs> |
158 | + <sodipodi:namedview |
159 | + id="base" |
160 | + pagecolor="#ffffff" |
161 | + bordercolor="#666666" |
162 | + borderopacity="1.0" |
163 | + inkscape:pageopacity="0.0" |
164 | + inkscape:pageshadow="2" |
165 | + inkscape:zoom="5.0931703" |
166 | + inkscape:cx="-12.526581" |
167 | + inkscape:cy="23.286085" |
168 | + inkscape:document-units="px" |
169 | + inkscape:current-layer="g4122" |
170 | + showgrid="true" |
171 | + showborder="true" |
172 | + fit-margin-top="0" |
173 | + fit-margin-left="0" |
174 | + fit-margin-right="0" |
175 | + fit-margin-bottom="0" |
176 | + inkscape:snap-bbox="true" |
177 | + inkscape:bbox-paths="true" |
178 | + inkscape:bbox-nodes="true" |
179 | + inkscape:snap-bbox-edge-midpoints="true" |
180 | + inkscape:snap-bbox-midpoints="true" |
181 | + inkscape:object-paths="true" |
182 | + inkscape:snap-intersection-paths="true" |
183 | + inkscape:object-nodes="true" |
184 | + inkscape:snap-smooth-nodes="true" |
185 | + inkscape:snap-midpoints="true" |
186 | + inkscape:snap-object-midpoints="true" |
187 | + inkscape:snap-center="true" |
188 | + showguides="true" |
189 | + inkscape:guide-bbox="true" |
190 | + inkscape:snap-global="true"> |
191 | + <inkscape:grid |
192 | + type="xygrid" |
193 | + id="grid5451" |
194 | + empspacing="6" /> |
195 | + <sodipodi:guide |
196 | + orientation="1,0" |
197 | + position="6,77" |
198 | + id="guide4063" /> |
199 | + <sodipodi:guide |
200 | + orientation="1,0" |
201 | + position="3,78" |
202 | + id="guide4065" /> |
203 | + <sodipodi:guide |
204 | + orientation="0,1" |
205 | + position="55,84" |
206 | + id="guide4067" /> |
207 | + <sodipodi:guide |
208 | + orientation="0,1" |
209 | + position="53,87" |
210 | + id="guide4069" /> |
211 | + <sodipodi:guide |
212 | + orientation="0,1" |
213 | + position="20,3" |
214 | + id="guide4071" /> |
215 | + <sodipodi:guide |
216 | + orientation="0,1" |
217 | + position="20,6" |
218 | + id="guide4073" /> |
219 | + <sodipodi:guide |
220 | + orientation="1,0" |
221 | + position="87,7" |
222 | + id="guide4075" /> |
223 | + <sodipodi:guide |
224 | + orientation="1,0" |
225 | + position="84,7" |
226 | + id="guide4077" /> |
227 | + <sodipodi:guide |
228 | + orientation="0,1" |
229 | + position="58,81" |
230 | + id="guide4074" /> |
231 | + <sodipodi:guide |
232 | + orientation="1,0" |
233 | + position="9,74" |
234 | + id="guide4076" /> |
235 | + <sodipodi:guide |
236 | + orientation="0,1" |
237 | + position="21,9" |
238 | + id="guide4078" /> |
239 | + <sodipodi:guide |
240 | + orientation="1,0" |
241 | + position="81,4" |
242 | + id="guide4080" /> |
243 | + </sodipodi:namedview> |
244 | + <metadata |
245 | + id="metadata4879"> |
246 | + <rdf:RDF> |
247 | + <cc:Work |
248 | + rdf:about=""> |
249 | + <dc:format>image/svg+xml</dc:format> |
250 | + <dc:type |
251 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
252 | + <dc:title></dc:title> |
253 | + </cc:Work> |
254 | + </rdf:RDF> |
255 | + </metadata> |
256 | + <g |
257 | + inkscape:label="Layer 1" |
258 | + inkscape:groupmode="layer" |
259 | + id="layer1" |
260 | + transform="translate(67.857146,-84.50504)"> |
261 | + <path |
262 | + sodipodi:nodetypes="cssssssccccccccccc" |
263 | + inkscape:connector-curvature="0" |
264 | + style="fill:#808080;fill-opacity:1;display:none" |
265 | + id="path5335" |
266 | + d="m -49.85715,117.50504 0,35.99992 c 0,18 3,18 30,18 l 6,0 c 27,0 30,0 30,-18 l 0,-35.99992 c 0,-18 -3,-18 -30,-18 l -6,0 c -27,0 -30,0 -30,18 z m 30,-12 6,0 c 24,0 24,0 24,12 l 0,35.99992 c 0,12 0,12 -24,12 l -6,0 c -24,0 -24,0 -24,-12 l 0,-35.99992 c 0,-12 0,-12 24,-12 z" /> |
267 | + <path |
268 | + transform="translate(-67.85715,-880.85714)" |
269 | + clip-path="url(#clipPath2991-6)" |
270 | + d="m 6,986.36218 0,35.99992 c 0,18 3,18 30,18 l 6,0 c 27,0 30,0 30,-18 l 0,-35.99992 c 0,-18 -3,-18 -30,-18 l -6,0 c -27,0 -30,0 -30,18 z m 30,-12 6,0 c 24,0 24,0 24,12 l 0,35.99992 c 0,12 0,12 -24,12 l -6,0 c -24,0 -24,0 -24,-12 l 0,-35.99992 c 0,-12 0,-12 24,-12 z" |
271 | + id="path5337" |
272 | + style="fill:#808080;fill-opacity:1;display:none" |
273 | + inkscape:connector-curvature="0" |
274 | + sodipodi:nodetypes="cssssssccccccccccc" /> |
275 | + <g |
276 | + id="g4122"> |
277 | + <rect |
278 | + y="84.505043" |
279 | + x="-67.857147" |
280 | + height="90" |
281 | + width="90" |
282 | + id="rect4120" |
283 | + style="opacity:0.02999998;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> |
284 | + <path |
285 | + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#808080;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" |
286 | + d="m -40.857146,93.505041 0,71.999999" |
287 | + id="path4345" |
288 | + inkscape:connector-curvature="0" /> |
289 | + <path |
290 | + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#808080;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" |
291 | + d="m -4.857146,93.505041 0,71.999999" |
292 | + id="path4347" |
293 | + inkscape:connector-curvature="0" /> |
294 | + <path |
295 | + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#808080;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" |
296 | + d="m -64.857146,144.50504 84,0" |
297 | + id="path4349" |
298 | + inkscape:connector-curvature="0" |
299 | + sodipodi:nodetypes="cc" /> |
300 | + <path |
301 | + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#808080;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" |
302 | + d="m -64.857146,114.50504 84,0" |
303 | + id="path4351" |
304 | + inkscape:connector-curvature="0" /> |
305 | + </g> |
306 | + </g> |
307 | +</svg> |
308 | |
309 | === modified file 'po/camera-app.pot' |
310 | --- po/camera-app.pot 2014-12-05 01:21:37 +0000 |
311 | +++ po/camera-app.pot 2014-12-08 15:17:35 +0000 |
312 | @@ -8,7 +8,7 @@ |
313 | msgstr "" |
314 | "Project-Id-Version: camera-app\n" |
315 | "Report-Msgid-Bugs-To: \n" |
316 | -"POT-Creation-Date: 2014-12-04 23:20-0200\n" |
317 | +"POT-Creation-Date: 2014-12-08 09:47-0200\n" |
318 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
319 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
320 | "Language-Team: LANGUAGE <LL@li.org>\n" |
321 | @@ -21,7 +21,7 @@ |
322 | msgid "Delete media?" |
323 | msgstr "" |
324 | |
325 | -#: ../DeleteDialog.qml:34 ../GalleryView.qml:50 ../SlideshowView.qml:41 |
326 | +#: ../DeleteDialog.qml:34 ../PhotogridView.qml:50 ../SlideshowView.qml:41 |
327 | msgid "Delete" |
328 | msgstr "" |
329 | |
330 | @@ -29,11 +29,7 @@ |
331 | msgid "Cancel" |
332 | msgstr "" |
333 | |
334 | -#: ../GalleryView.qml:41 ../SlideshowView.qml:36 |
335 | -msgid "Share" |
336 | -msgstr "" |
337 | - |
338 | -#: ../GalleryView.qml:199 |
339 | +#: ../GalleryView.qml:180 |
340 | msgid "No media available." |
341 | msgstr "" |
342 | |
343 | @@ -49,42 +45,47 @@ |
344 | msgid "Swipe left for photo roll" |
345 | msgstr "" |
346 | |
347 | -#: ../ViewFinderOverlay.qml:138 ../ViewFinderOverlay.qml:161 |
348 | -#: ../ViewFinderOverlay.qml:189 ../ViewFinderOverlay.qml:212 |
349 | +#: ../PhotogridView.qml:41 ../SlideshowView.qml:36 |
350 | +msgid "Share" |
351 | +msgstr "" |
352 | + |
353 | +#: ../ViewFinderOverlay.qml:140 ../ViewFinderOverlay.qml:163 |
354 | +#: ../ViewFinderOverlay.qml:191 ../ViewFinderOverlay.qml:214 |
355 | +#: ../ViewFinderOverlay.qml:291 |
356 | msgid "On" |
357 | msgstr "" |
358 | |
359 | -#: ../ViewFinderOverlay.qml:143 ../ViewFinderOverlay.qml:171 |
360 | -#: ../ViewFinderOverlay.qml:194 ../ViewFinderOverlay.qml:217 |
361 | -#: ../ViewFinderOverlay.qml:235 |
362 | +#: ../ViewFinderOverlay.qml:145 ../ViewFinderOverlay.qml:173 |
363 | +#: ../ViewFinderOverlay.qml:196 ../ViewFinderOverlay.qml:219 |
364 | +#: ../ViewFinderOverlay.qml:238 ../ViewFinderOverlay.qml:296 |
365 | msgid "Off" |
366 | msgstr "" |
367 | |
368 | -#: ../ViewFinderOverlay.qml:166 |
369 | +#: ../ViewFinderOverlay.qml:168 |
370 | msgid "Auto" |
371 | msgstr "" |
372 | |
373 | -#: ../ViewFinderOverlay.qml:203 |
374 | +#: ../ViewFinderOverlay.qml:205 |
375 | msgid "HDR" |
376 | msgstr "" |
377 | |
378 | -#: ../ViewFinderOverlay.qml:240 |
379 | +#: ../ViewFinderOverlay.qml:243 |
380 | msgid "5 seconds" |
381 | msgstr "" |
382 | |
383 | -#: ../ViewFinderOverlay.qml:245 |
384 | +#: ../ViewFinderOverlay.qml:248 |
385 | msgid "15 seconds" |
386 | msgstr "" |
387 | |
388 | -#: ../ViewFinderOverlay.qml:262 |
389 | +#: ../ViewFinderOverlay.qml:265 |
390 | msgid "Fine Quality" |
391 | msgstr "" |
392 | |
393 | -#: ../ViewFinderOverlay.qml:266 |
394 | +#: ../ViewFinderOverlay.qml:269 |
395 | msgid "Normal Quality" |
396 | msgstr "" |
397 | |
398 | -#: ../ViewFinderOverlay.qml:270 |
399 | +#: ../ViewFinderOverlay.qml:273 |
400 | msgid "Basic Quality" |
401 | msgstr "" |
402 | |
403 | |
404 | === modified file 'tests/autopilot/camera_app/emulators/main_window.py' |
405 | --- tests/autopilot/camera_app/emulators/main_window.py 2014-12-03 18:18:05 +0000 |
406 | +++ tests/autopilot/camera_app/emulators/main_window.py 2014-12-08 15:17:35 +0000 |
407 | @@ -73,6 +73,10 @@ |
408 | """Returns the encoding quality button of the camera""" |
409 | return self.get_option_button("encodingQuality") |
410 | |
411 | + def get_grid_lines_button(self): |
412 | + """Returns the grid lines toggle button of the camera""" |
413 | + return self.get_option_button("gridEnabled") |
414 | + |
415 | def get_stop_watch(self): |
416 | """Returns the stop watch when using the record button of the camera""" |
417 | return self.app.wait_select_single("StopWatch") |
418 | |
419 | === modified file 'tests/autopilot/camera_app/tests/test_options.py' |
420 | --- tests/autopilot/camera_app/tests/test_options.py 2014-07-29 16:40:16 +0000 |
421 | +++ tests/autopilot/camera_app/tests/test_options.py 2014-12-08 15:17:35 +0000 |
422 | @@ -40,3 +40,30 @@ |
423 | |
424 | # check overlay is closed |
425 | self.assertThat(bottom_edge.opened, Eventually(Equals(False))) |
426 | + |
427 | + """Test toggling on/off grid lines option""" |
428 | + def test_toggle_grid_lines(self): |
429 | + gridlines = self.app.wait_select_single("QQuickItem", objectName="gridlines") |
430 | + self.set_grid_lines_value("On") |
431 | + self.assertEquals(gridlines.visible, True) |
432 | + self.set_grid_lines_value("Off") |
433 | + self.assertEquals(gridlines.visible, False) |
434 | + |
435 | + def set_grid_lines_value(self, value="On"): |
436 | + # open bottom edge |
437 | + bottom_edge = self.main_window.get_bottom_edge() |
438 | + bottom_edge.open() |
439 | + |
440 | + # open grid lines option value selector showing the possible values |
441 | + grid_lines_button = self.main_window.get_grid_lines_button() |
442 | + self.pointing_device.move_to_object(grid_lines_button) |
443 | + self.pointing_device.click() |
444 | + option_value_selector = self.main_window.get_option_value_selector() |
445 | + self.assertThat(option_value_selector.visible, Eventually(Equals(True))) |
446 | + |
447 | + # tap on chosen value |
448 | + option = self.main_window.get_option_value_button(value) |
449 | + self.pointing_device.move_to_object(option) |
450 | + self.pointing_device.click() |
451 | + |
452 | + bottom_edge.close() |
- making the grid of options 4 columns does not really solve the problem of too many options long term (especially with your other MR coming in); thankfully this was solved already in another branch's commit. I think we should merge the specific commit that fixes it: commit 428 from lp:~fboucault/camera-app/jpeg_quality symbolic" is not good enough. I asked Matthieu (tiheum) from design to provide a better one. gridEnabled ? gridlines.columns * gridlines.rows : 0" will do the trick
Merge command: bzr merge -c428 lp:~fboucault/camera-app/jpeg_quality
- icon "view-grid-
- visually the grid should not have lines around the picture, only the 4 lines inside it; these lines outside are not useful and they create a boxing feel to the UI
- no need to use a Binding object (I understand the consistency reason, but it won't work out for other settings)
- better to not instantiate the Rectangles at all when the grid is disabled; "Repeater.model: settings.
- using Rectangle.border to draw is slightly more expensive than using Rectangle.color