Merge lp:~pafosdfkapos/eidete/translations into lp:eidete

Proposed by pafosdfkapos
Status: Merged
Approved by: Cody Garver
Approved revision: 151
Merged at revision: 145
Proposed branch: lp:~pafosdfkapos/eidete/translations
Merge into: lp:eidete
Diff against target: 1776 lines (+562/-417)
6 files modified
po/eidete.pot (+133/-87)
po/et.po (+145/-98)
src/Widgets/countdown.vala (+20/-18)
src/Widgets/end_dialog.vala (+24/-27)
src/Widgets/keyview.vala (+55/-55)
src/eidete.vala (+185/-132)
To merge this branch: bzr merge lp:~pafosdfkapos/eidete/translations
Reviewer Review Type Date Requested Status
elementary Apps team Pending
Review via email: mp+164573@code.launchpad.net

Commit message

Translation fixes and UI improvements.

Description of the change

Fixes to translations, layout and buttons.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'po/cs.po' (properties changed: -x to +x)
2=== modified file 'po/eidete.pot'
3--- po/eidete.pot 2012-08-05 00:55:04 +0000
4+++ po/eidete.pot 2013-05-18 07:55:30 +0000
5@@ -8,7 +8,7 @@
6 msgstr ""
7 "Project-Id-Version: PACKAGE VERSION\n"
8 "Report-Msgid-Bugs-To: \n"
9-"POT-Creation-Date: 2012-08-04 19:54-0500\n"
10+"POT-Creation-Date: 2013-05-17 23:02+0300\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14@@ -17,137 +17,183 @@
15 "Content-Type: text/plain; charset=CHARSET\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18-#: /home/codygarver/eidete/po/../src/savedialog.vala:8
19-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:66
20-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:103
21+#: /home/kristjan/translations/po/../src/desktop_launcher.vala:5
22+msgid "Record screencasts"
23+msgstr ""
24+
25+#: /home/kristjan/translations/po/../src/desktop_launcher.vala:6
26+msgid "Screencaster"
27+msgstr ""
28+
29+#: /home/kristjan/translations/po/../src/videobin_uploader.vala:45
30+msgid "Upload"
31+msgstr ""
32+
33+#: /home/kristjan/translations/po/../src/savedialog.vala:8
34+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:28
35+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:64
36+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:100
37 msgid "Save"
38 msgstr ""
39
40-#: /home/codygarver/eidete/po/../src/Widgets/countdown.vala:27
41-msgid "Recording starts in"
42-msgstr ""
43-
44-#: /home/codygarver/eidete/po/../src/Widgets/countdown.vala:33
45-msgid "Focus Eidete to stop recording"
46-msgstr ""
47-
48-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:24
49-msgid "Recording done"
50-msgstr ""
51-
52-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:27
53-msgid "And now?"
54-msgstr ""
55-
56-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:31
57-msgid "Go"
58-msgstr ""
59-
60-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:64
61-msgid "Could not contact Contractor. Click Save to save the file"
62-msgstr ""
63-
64-#: /home/codygarver/eidete/po/../src/videobin_uploader.vala:45
65-msgid "Upload"
66-msgstr ""
67-
68-#: /home/codygarver/eidete/po/../src/eidete.vala:139
69+#: /home/kristjan/translations/po/../src/eidete.vala:138
70 msgid "Monitor"
71 msgstr ""
72
73-#: /home/codygarver/eidete/po/../src/eidete.vala:154
74+#: /home/kristjan/translations/po/../src/eidete.vala:158
75 msgid "Fullscreen"
76 msgstr ""
77
78-#: /home/codygarver/eidete/po/../src/eidete.vala:155
79+#: /home/kristjan/translations/po/../src/eidete.vala:159
80 msgid "Custom"
81 msgstr ""
82
83-#: /home/codygarver/eidete/po/../src/eidete.vala:175
84-msgid "Record"
85+#: /home/kristjan/translations/po/../src/eidete.vala:170
86+msgid "Default"
87 msgstr ""
88
89-#: /home/codygarver/eidete/po/../src/eidete.vala:187
90+#: /home/kristjan/translations/po/../src/eidete.vala:179
91 msgid "Sound"
92 msgstr ""
93
94-#: /home/codygarver/eidete/po/../src/eidete.vala:188
95+#: /home/kristjan/translations/po/../src/eidete.vala:182
96+msgid "Video"
97+msgstr ""
98+
99+#: /home/kristjan/translations/po/../src/eidete.vala:185
100+msgid "Keyboard"
101+msgstr ""
102+
103+#: /home/kristjan/translations/po/../src/eidete.vala:188
104+msgid "Mouse"
105+msgstr ""
106+
107+#: /home/kristjan/translations/po/../src/eidete.vala:191
108+msgid "Start Recording"
109+msgstr ""
110+
111+#: /home/kristjan/translations/po/../src/eidete.vala:197
112+msgid "About"
113+msgstr ""
114+
115+#: /home/kristjan/translations/po/../src/eidete.vala:210
116 msgid "Record Computer Sounds"
117 msgstr ""
118
119-#: /home/codygarver/eidete/po/../src/eidete.vala:190
120+#: /home/kristjan/translations/po/../src/eidete.vala:212
121 msgid "Record from Microphone"
122 msgstr ""
123
124-#: /home/codygarver/eidete/po/../src/eidete.vala:192
125-msgid "Video"
126-msgstr ""
127-
128-#: /home/codygarver/eidete/po/../src/eidete.vala:193
129+#: /home/kristjan/translations/po/../src/eidete.vala:215
130 msgid "Record from Monitor"
131 msgstr ""
132
133-#: /home/codygarver/eidete/po/../src/eidete.vala:195
134+#: /home/kristjan/translations/po/../src/eidete.vala:217
135 msgid "Recording Area"
136 msgstr ""
137
138-#: /home/codygarver/eidete/po/../src/eidete.vala:197
139+#: /home/kristjan/translations/po/../src/eidete.vala:219
140 msgid "Width"
141 msgstr ""
142
143-#: /home/codygarver/eidete/po/../src/eidete.vala:199
144+#: /home/kristjan/translations/po/../src/eidete.vala:221
145 msgid "Height"
146 msgstr ""
147
148-#: /home/codygarver/eidete/po/../src/eidete.vala:218
149-msgid "Show pressed keys on screen"
150-msgstr ""
151-
152-#: /home/codygarver/eidete/po/../src/eidete.vala:220
153-msgid "Show clicks on screen"
154-msgstr ""
155-
156-#: /home/codygarver/eidete/po/../src/eidete.vala:222
157-msgid "Show circle behind mouse"
158-msgstr ""
159-
160-#: /home/codygarver/eidete/po/../src/eidete.vala:228
161+#: /home/kristjan/translations/po/../src/eidete.vala:245
162+msgid "Pressed keys on screen"
163+msgstr ""
164+
165+#: /home/kristjan/translations/po/../src/eidete.vala:248
166+msgid "Mouse clicks on screen"
167+msgstr ""
168+
169+#: /home/kristjan/translations/po/../src/eidete.vala:250
170+msgid "Circle around the cursor"
171+msgstr ""
172+
173+#: /home/kristjan/translations/po/../src/eidete.vala:256
174 msgid "Behavior"
175 msgstr ""
176
177-#: /home/codygarver/eidete/po/../src/eidete.vala:229
178+#: /home/kristjan/translations/po/../src/eidete.vala:257
179 msgid "Appearance"
180 msgstr ""
181
182-#: /home/codygarver/eidete/po/../src/eidete.vala:424
183+#: /home/kristjan/translations/po/../src/eidete.vala:449
184+#: /home/kristjan/translations/po/../src/eidete.vala:456
185+#: /home/kristjan/translations/po/../src/eidete.vala:641
186+msgid "Recording paused"
187+msgstr ""
188+
189+#: /home/kristjan/translations/po/../src/eidete.vala:459
190+msgid "You can continue or finish the recording now"
191+msgstr ""
192+
193+#: /home/kristjan/translations/po/../src/eidete.vala:468
194+msgid "Continue"
195+msgstr ""
196+
197+#: /home/kristjan/translations/po/../src/eidete.vala:469
198+msgid "Continue recording"
199+msgstr ""
200+
201+#: /home/kristjan/translations/po/../src/eidete.vala:472
202 msgid "Finish"
203 msgstr ""
204
205-#: /home/codygarver/eidete/po/../src/eidete.vala:425
206-msgid "Finish recording"
207-msgstr ""
208-
209-#: /home/codygarver/eidete/po/../src/eidete.vala:427
210-msgid "Record more"
211-msgstr ""
212-
213-#: /home/codygarver/eidete/po/../src/eidete.vala:441
214-#: /home/codygarver/eidete/po/../src/eidete.vala:588
215-msgid "Recording paused"
216-msgstr ""
217-
218-#: /home/codygarver/eidete/po/../src/eidete.vala:442
219-msgid "You can continue or finish the recording now."
220-msgstr ""
221-
222-#: /home/codygarver/eidete/po/../src/eidete.vala:598
223+#: /home/kristjan/translations/po/../src/eidete.vala:473
224+msgid "Stop the recording and save the file"
225+msgstr ""
226+
227+#: /home/kristjan/translations/po/../src/eidete.vala:476
228+msgid "Cancel"
229+msgstr ""
230+
231+#: /home/kristjan/translations/po/../src/eidete.vala:477
232+msgid "Cancel the recording without saving the file"
233+msgstr ""
234+
235+#: /home/kristjan/translations/po/../src/eidete.vala:651
236 msgid "Pause recording"
237 msgstr ""
238
239-#: /home/codygarver/eidete/po/../src/desktop_launcher.vala:5
240-msgid "Record screencasts"
241-msgstr ""
242-
243-#: /home/codygarver/eidete/po/../src/desktop_launcher.vala:6
244-msgid "Screencaster"
245+#: /home/kristjan/translations/po/../src/eidete.vala:671
246+msgid "Pause Recording"
247+msgstr ""
248+
249+#: /home/kristjan/translations/po/../src/eidete.vala:672
250+msgid "Finish Recording"
251+msgstr ""
252+
253+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:24
254+msgid "Recording complete"
255+msgstr ""
256+
257+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:33
258+msgid "Don't save"
259+msgstr ""
260+
261+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:62
262+msgid "Could not contact Contractor. Click the Save button to save the file."
263+msgstr ""
264+
265+#: /home/kristjan/translations/po/../src/Widgets/keyview.vala:48
266+msgid "Left"
267+msgstr ""
268+
269+#: /home/kristjan/translations/po/../src/Widgets/keyview.vala:51
270+msgid "Middle"
271+msgstr ""
272+
273+#: /home/kristjan/translations/po/../src/Widgets/keyview.vala:54
274+msgid "Right"
275+msgstr ""
276+
277+#: /home/kristjan/translations/po/../src/Widgets/countdown.vala:27
278+msgid "Recording starts in"
279+msgstr ""
280+
281+#: /home/kristjan/translations/po/../src/Widgets/countdown.vala:34
282+msgid "Focus Eidete to stop recording"
283 msgstr ""
284
285=== modified file 'po/et.po'
286--- po/et.po 2013-03-17 05:13:08 +0000
287+++ po/et.po 2013-05-18 07:55:30 +0000
288@@ -6,149 +6,196 @@
289 msgid ""
290 msgstr ""
291 "Project-Id-Version: eidete\n"
292-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
293-"POT-Creation-Date: 2012-08-04 19:54-0500\n"
294-"PO-Revision-Date: 2012-09-21 23:01+0000\n"
295-"Last-Translator: Kristjan Vool <Unknown>\n"
296+"Report-Msgid-Bugs-To: \n"
297+"POT-Creation-Date: 2013-05-17 03:41+0300\n"
298+"PO-Revision-Date: 2013-05-17 03:42+0300\n"
299+"Last-Translator: Kristjan Vool <vool.kristjan@gmail.com>\n"
300 "Language-Team: Estonian <et@li.org>\n"
301+"Language: et\n"
302 "MIME-Version: 1.0\n"
303 "Content-Type: text/plain; charset=UTF-8\n"
304 "Content-Transfer-Encoding: 8bit\n"
305 "X-Launchpad-Export-Date: 2013-03-17 05:13+0000\n"
306 "X-Generator: Launchpad (build 16532)\n"
307
308-#: /home/codygarver/eidete/po/../src/savedialog.vala:8
309-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:66
310-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:103
311+#: /home/kristjan/translations/po/../src/desktop_launcher.vala:5
312+msgid "Record screencasts"
313+msgstr "Screencast'ide filmimine"
314+
315+#: /home/kristjan/translations/po/../src/desktop_launcher.vala:6
316+msgid "Screencaster"
317+msgstr "Screencaster"
318+
319+#: /home/kristjan/translations/po/../src/videobin_uploader.vala:45
320+msgid "Upload"
321+msgstr "Laadi üles"
322+
323+#: /home/kristjan/translations/po/../src/savedialog.vala:8
324+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:28
325+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:64
326+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:100
327 msgid "Save"
328 msgstr "Salvesta"
329
330-#: /home/codygarver/eidete/po/../src/Widgets/countdown.vala:27
331-msgid "Recording starts in"
332-msgstr "Lindistamine algab"
333-
334-#: /home/codygarver/eidete/po/../src/Widgets/countdown.vala:33
335-msgid "Focus Eidete to stop recording"
336-msgstr "Lindistamise lõpetamiseks fokuseeri Eidete"
337-
338-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:24
339-msgid "Recording done"
340-msgstr "Lindistamine valmis"
341-
342-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:27
343-msgid "And now?"
344-msgstr "Ja nüüd?"
345-
346-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:31
347-msgid "Go"
348-msgstr "Mine"
349-
350-#: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:64
351-msgid "Could not contact Contractor. Click Save to save the file"
352-msgstr ""
353-"Ühenduse loomine Contractoriga nurjus. Faili salvestamiseks vali Salvesta."
354-
355-#: /home/codygarver/eidete/po/../src/videobin_uploader.vala:45
356-msgid "Upload"
357-msgstr "Laadi üles"
358-
359-#: /home/codygarver/eidete/po/../src/eidete.vala:139
360+#: /home/kristjan/translations/po/../src/eidete.vala:138
361 msgid "Monitor"
362 msgstr "Kuvar"
363
364-#: /home/codygarver/eidete/po/../src/eidete.vala:154
365+#: /home/kristjan/translations/po/../src/eidete.vala:158
366 msgid "Fullscreen"
367 msgstr "Täisekraan"
368
369-#: /home/codygarver/eidete/po/../src/eidete.vala:155
370+#: /home/kristjan/translations/po/../src/eidete.vala:159
371 msgid "Custom"
372 msgstr "Kohandatud"
373
374-#: /home/codygarver/eidete/po/../src/eidete.vala:175
375-msgid "Record"
376-msgstr "Lindista"
377+#: /home/kristjan/translations/po/../src/eidete.vala:171
378+msgid "Default"
379+msgstr "Vaikimisi"
380
381-#: /home/codygarver/eidete/po/../src/eidete.vala:187
382+#: /home/kristjan/translations/po/../src/eidete.vala:180
383 msgid "Sound"
384 msgstr "Heli"
385
386-#: /home/codygarver/eidete/po/../src/eidete.vala:188
387+#: /home/kristjan/translations/po/../src/eidete.vala:183
388+msgid "Video"
389+msgstr "Video"
390+
391+#: /home/kristjan/translations/po/../src/eidete.vala:186
392+msgid "Keyboard"
393+msgstr "Klaviatuur"
394+
395+#: /home/kristjan/translations/po/../src/eidete.vala:189
396+msgid "Mouse"
397+msgstr "Hiir"
398+
399+#: /home/kristjan/translations/po/../src/eidete.vala:192
400+msgid "Start Recording"
401+msgstr "Alusta filmimist"
402+
403+#: /home/kristjan/translations/po/../src/eidete.vala:198
404+msgid "About"
405+msgstr "Programmist…"
406+
407+#: /home/kristjan/translations/po/../src/eidete.vala:211
408 msgid "Record Computer Sounds"
409-msgstr "Arvuti helide lindistamine"
410+msgstr "Arvuti helide salvestamine"
411
412-#: /home/codygarver/eidete/po/../src/eidete.vala:190
413+#: /home/kristjan/translations/po/../src/eidete.vala:213
414 msgid "Record from Microphone"
415-msgstr "Mikrofoni lindistamine"
416-
417-#: /home/codygarver/eidete/po/../src/eidete.vala:192
418-msgid "Video"
419-msgstr "Video"
420-
421-#: /home/codygarver/eidete/po/../src/eidete.vala:193
422+msgstr "Mikrofoni salvestamine"
423+
424+#: /home/kristjan/translations/po/../src/eidete.vala:216
425 msgid "Record from Monitor"
426-msgstr "Kuvari lindistamine"
427+msgstr "Kuvari filmimine"
428
429-#: /home/codygarver/eidete/po/../src/eidete.vala:195
430+#: /home/kristjan/translations/po/../src/eidete.vala:218
431 msgid "Recording Area"
432-msgstr "Lindistamise ala"
433+msgstr "Filmimise ala"
434
435-#: /home/codygarver/eidete/po/../src/eidete.vala:197
436+#: /home/kristjan/translations/po/../src/eidete.vala:220
437 msgid "Width"
438 msgstr "Laius"
439
440-#: /home/codygarver/eidete/po/../src/eidete.vala:199
441+#: /home/kristjan/translations/po/../src/eidete.vala:222
442 msgid "Height"
443 msgstr "Kõrgus"
444
445-#: /home/codygarver/eidete/po/../src/eidete.vala:218
446-msgid "Show pressed keys on screen"
447-msgstr "Vajutatud klahvide näitamine eknraanil"
448-
449-#: /home/codygarver/eidete/po/../src/eidete.vala:220
450-msgid "Show clicks on screen"
451-msgstr "Klõpsude näitamine ekraanil"
452-
453-#: /home/codygarver/eidete/po/../src/eidete.vala:222
454-msgid "Show circle behind mouse"
455-msgstr "Ringi näitamine kursori taga"
456-
457-#: /home/codygarver/eidete/po/../src/eidete.vala:228
458+#: /home/kristjan/translations/po/../src/eidete.vala:246
459+msgid "Pressed keys on screen"
460+msgstr "Vajutatud klahvid ekraanil"
461+
462+#: /home/kristjan/translations/po/../src/eidete.vala:249
463+msgid "Mouse clicks on screen"
464+msgstr "Hiire klõpsud ekraanil"
465+
466+#: /home/kristjan/translations/po/../src/eidete.vala:251
467+msgid "Circle around the cursor"
468+msgstr "Ring ümber kursori"
469+
470+#: /home/kristjan/translations/po/../src/eidete.vala:257
471 msgid "Behavior"
472 msgstr "Käitumine"
473
474-#: /home/codygarver/eidete/po/../src/eidete.vala:229
475+#: /home/kristjan/translations/po/../src/eidete.vala:258
476 msgid "Appearance"
477 msgstr "Välimus"
478
479-#: /home/codygarver/eidete/po/../src/eidete.vala:424
480+#: /home/kristjan/translations/po/../src/eidete.vala:451
481+msgid "Recording paused"
482+msgstr "Filmimine peatatud"
483+
484+#: /home/kristjan/translations/po/../src/eidete.vala:459
485+msgid "Continue"
486+msgstr "Jätka"
487+
488+#: /home/kristjan/translations/po/../src/eidete.vala:460
489+msgid "Continue recording"
490+msgstr "Jätka filmimist"
491+
492+#: /home/kristjan/translations/po/../src/eidete.vala:463
493 msgid "Finish"
494 msgstr "Lõpeta"
495
496-#: /home/codygarver/eidete/po/../src/eidete.vala:425
497-msgid "Finish recording"
498-msgstr "Lõpeta lindistamine"
499-
500-#: /home/codygarver/eidete/po/../src/eidete.vala:427
501-msgid "Record more"
502-msgstr "Lindista veel"
503-
504-#: /home/codygarver/eidete/po/../src/eidete.vala:441
505-#: /home/codygarver/eidete/po/../src/eidete.vala:588
506-msgid "Recording paused"
507-msgstr "Videolindistamine pausil"
508-
509-#: /home/codygarver/eidete/po/../src/eidete.vala:442
510+#: /home/kristjan/translations/po/../src/eidete.vala:464
511+msgid "Stop the recording and save the file"
512+msgstr "Peata filmimine ning salvesta video"
513+
514+#: /home/kristjan/translations/po/../src/eidete.vala:467
515+msgid "Cancel"
516+msgstr "Katkesta"
517+
518+#: /home/kristjan/translations/po/../src/eidete.vala:468
519+msgid "Cancel the recording without saving the file"
520+msgstr "Katkesta filmimine ilma videot salvestamata"
521+
522+#: /home/kristjan/translations/po/../src/eidete.vala:481
523 msgid "You can continue or finish the recording now."
524-msgstr "Sa saad jätkata või lõpetada lindistamise kohe."
525+msgstr "Sul on võimalus filmimine peatada ning salvestada või jätkata filmimise jätkamist."
526
527-#: /home/codygarver/eidete/po/../src/eidete.vala:598
528+#: /home/kristjan/translations/po/../src/eidete.vala:636
529 msgid "Pause recording"
530-msgstr "Peata lindistamine"
531-
532-#: /home/codygarver/eidete/po/../src/desktop_launcher.vala:5
533-msgid "Record screencasts"
534-msgstr "Kaardrite lindistamine"
535-
536-#: /home/codygarver/eidete/po/../src/desktop_launcher.vala:6
537-msgid "Screencaster"
538-msgstr "Kaadristaja"
539+msgstr "Peata filmimine"
540+
541+#: /home/kristjan/translations/po/../src/eidete.vala:656
542+msgid "Pause Recording"
543+msgstr "Peata filmimine"
544+
545+#: /home/kristjan/translations/po/../src/eidete.vala:657
546+msgid "Finish Recording"
547+msgstr "Lõpeta filmimine"
548+
549+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:24
550+msgid "Recording complete"
551+msgstr "Filmimine lõpetatud"
552+
553+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:33
554+msgid "Don't save"
555+msgstr "Ära salvesta"
556+
557+#: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:62
558+msgid "Could not contact Contractor. Click the Save button to save the file."
559+msgstr "Contractor'iga polnud võimalik ühendust saada. Faili salvestamiseks vajuta salvestamise nupule."
560+
561+#: /home/kristjan/translations/po/../src/Widgets/keyview.vala:48
562+msgid "Left"
563+msgstr "Vasak"
564+
565+#: /home/kristjan/translations/po/../src/Widgets/keyview.vala:51
566+msgid "Middle"
567+msgstr "Keskmine"
568+
569+#: /home/kristjan/translations/po/../src/Widgets/keyview.vala:54
570+msgid "Right"
571+msgstr "Parem"
572+
573+#: /home/kristjan/translations/po/../src/Widgets/countdown.vala:27
574+msgid "Recording starts in"
575+msgstr "Filmimine algab"
576+
577+#: /home/kristjan/translations/po/../src/Widgets/countdown.vala:33
578+msgid "Focus Eidete to stop recording"
579+msgstr "Filmimise lõpetamiseks fokuseeri Eidete"
580+
581+#~ msgid "Close without saving"
582+#~ msgstr "Sulge salvestamata"
583
584=== modified file 'src/Widgets/countdown.vala'
585--- src/Widgets/countdown.vala 2012-05-22 17:19:03 +0000
586+++ src/Widgets/countdown.vala 2013-05-18 07:55:30 +0000
587@@ -3,15 +3,15 @@
588
589
590 namespace Eidete.Widgets{
591-
592+
593 public class Countdown : Granite.Widgets.CompositedWindow {
594-
595+
596 public Label count;
597 public int time;
598-
599+
600 public Countdown (){
601 this.time = 5;
602-
603+
604 this.set_default_size (300, 200);
605 this.window_position = WindowPosition.CENTER;
606 this.set_keep_above (true);
607@@ -19,27 +19,29 @@
608 this.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN;
609 this.skip_pager_hint = true;
610 this.skip_taskbar_hint = true;
611-
612+
613 var box = new Box (Orientation.VERTICAL, 0);
614 box.margin = 40;
615 box.margin_left = box.margin_right = 60;
616-
617- var title = new Label ("<span size='20000' color='#fbfbfb'>"+_("Recording starts in")+"</span>");
618+
619+ var title = new Label ("<span size='20000' color='#fbfbfb'>"+_("Recording starts in")+"…"+"</span>");
620 title.use_markup = true;
621-
622+ title.margin_bottom = 20;
623+
624 this.count = new Label ("<span size='40000' color='#fbfbfb'>"+time.to_string ()+"</span>");
625 this.count.use_markup = true;
626-
627- var tipp = new Label("<span size='10000' color='#fbfbfb'>"+_("Focus Eidete to stop recording")+"</span>");
628+
629+ var tipp = new Label("<span size='10000' color='#fbfbfb' font-style='italic'>"+_("Focus Eidete to stop recording")+"</span>");
630 tipp.use_markup = true;
631-
632+ tipp.margin_top = 20;
633+
634 box.pack_start (title);
635 box.pack_start (count);
636 box.pack_start (tipp);
637-
638+
639 this.add (box);
640 }
641-
642+
643 public override bool draw (Cairo.Context ctx){
644 int w = this.get_allocated_width ();
645 int h = this.get_allocated_height ();
646@@ -48,9 +50,9 @@
647 ctx.fill ();
648 return base.draw (ctx);
649 }
650-
651+
652 public void start (EideteApp app){
653-
654+
655 this.show_all ();
656 Timeout.add (1000, () => {
657 this.time --;
658@@ -68,10 +70,10 @@
659 return true;
660 });
661 }
662-
663+
664 }
665-
666-
667+
668+
669 }
670
671
672
673=== modified file 'src/Widgets/end_dialog.vala'
674--- src/Widgets/end_dialog.vala 2012-08-05 00:55:04 +0000
675+++ src/Widgets/end_dialog.vala 2013-05-18 07:55:30 +0000
676@@ -2,66 +2,64 @@
677
678
679 namespace Eidete.Widgets {
680-
681+
682 private bool contractor;
683-
684+
685 public class EndDialog : Window {
686 public EndDialog (EideteApp app){
687 this.set_default_size (400, 200);
688-
689+
690 this.set_application (app);
691-
692+
693 if (app.selectionarea != null)
694 app.selectionarea.destroy ();
695 if (app.keyview != null)
696 app.keyview.destroy ();
697 this.window_position = WindowPosition.CENTER;
698 this.icon_name = "eidete";
699-
700+
701 var grid = new Grid ();
702 grid.margin = 12;
703-
704- var title = new Label ("<span size='30000'>"+_("Recording done")+"</span>");
705+
706+ var title = new Label ("<span size='30000'>"+_("Recording complete")+"</span>");
707 title.use_markup = true;
708 title.halign = Align.START;
709- var sub_title = new Label ("<span size='15000'>"+_("And now?")+"</span>");
710- sub_title.use_markup = true;
711- sub_title.halign = Align.START;
712-
713- var export = new Button.with_label (_("Go"));
714- export.image = new Image.from_stock (Stock.YES, IconSize.BUTTON);
715+
716+ var export = new Button.with_label (_("Save"));
717+ export.image = new Image.from_stock (Stock.SAVE, IconSize.BUTTON);
718 export.can_default = true;
719 this.set_default (export);
720-
721- var cancel = new Button.from_stock (Stock.CANCEL);
722+
723+ var cancel = new Button.with_label (_("Don't save"));
724+ cancel.image = new Image.from_stock (Stock.DELETE, IconSize.BUTTON);
725 cancel.halign = Align.END;
726-
727+
728 var bbox = new ButtonBox (Orientation.HORIZONTAL);
729 bbox.pack_end (cancel, false, true, 0);
730 bbox.pack_end (export, false, true, 0);
731 bbox.layout_style = ButtonBoxStyle.END;
732-
733+
734 //contractor
735 var list = new ListStore (2, typeof (Gdk.Pixbuf), typeof (string));
736 var t = new TreeView.with_model (list);
737 t.headers_visible = false;
738 t.hexpand = true;
739-
740+
741 var cell1 = new CellRendererPixbuf ();
742 cell1.set_padding (5, 15);
743 t.insert_column_with_attributes (-1, "", cell1, "pixbuf", 0);
744 var cell2 = new CellRendererText ();
745 cell2.set_padding (2, 15);
746 t.insert_column_with_attributes (-1, "", cell2, "markup", 1);
747-
748-
749+
750+
751 var c = Granite.Services.Contractor.get_contract (app.settings.destination, "video");
752 if (c == null || c.length <= 1){
753 warning ("You should install and/or run contractor");
754 contractor = false;
755 var info = new InfoBar ();
756 info.message_type = MessageType.WARNING;
757- info.pack_start (new Label (_("Could not contact Contractor. Click Save to save the file")));
758+ info.pack_start (new Label (_("Could not contact Contractor. Click the Save button to save the file.")));
759 grid.attach (info, 0, 3, 2, 1);
760 export.label = _("Save");
761 }else{
762@@ -73,19 +71,18 @@
763 try{
764 icon = IconTheme.get_default ().load_icon (c[i].lookup ("IconName"), 32, 0);
765 }catch (Error e){warning (e.message);}
766- list.set (it, 0, icon, 1,
767+ list.set (it, 0, icon, 1,
768 "<b>"+c[i].lookup ("Name")+"</b>\n"+c[i].lookup ("Description"));
769 }
770 t.set_cursor (new TreePath.from_string ("0"), null, false);
771 }
772-
773+
774 grid.attach (title, 0, 0, 2, 1);
775- grid.attach (sub_title, 0, 1, 2, 1);
776 grid.attach (new Label (""), 0, 2, 1, 1);
777 grid.attach (t, 0, 4, 1, 1);
778 grid.attach (new Label (""), 0, 5, 1, 1);
779 grid.attach (bbox, 0, 6, 1, 1);
780-
781+
782 if (contractor){
783 export.clicked.connect ( () => {
784 TreePath path;
785@@ -109,7 +106,7 @@
786 try{
787 source.copy (destination, FileCopyFlags.OVERWRITE);
788 }catch (GLib.Error e){stderr.printf ("Error: %s\n", e.message);}
789-
790+
791 file.destroy ();
792 this.destroy ();
793 }else{
794@@ -118,7 +115,7 @@
795 });
796 }
797 cancel.clicked.connect ( () => {this.destroy ();});
798-
799+
800 this.add (grid);
801 }
802 }
803
804=== modified file 'src/Widgets/keyview.vala'
805--- src/Widgets/keyview.vala 2012-04-18 15:35:01 +0000
806+++ src/Widgets/keyview.vala 2013-05-18 07:55:30 +0000
807@@ -3,9 +3,9 @@
808
809
810 namespace Eidete.Widgets {
811-
812+
813 public class YellowCircle : Granite.Widgets.CompositedWindow {
814-
815+
816 public YellowCircle (Gdk.RGBA color) {
817 this.skip_pager_hint = true;
818 this.skip_taskbar_hint = true;
819@@ -13,26 +13,26 @@
820 this.stick ();
821 this.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN;
822 this.accept_focus = false;
823-
824+
825 this.draw.connect ( (ctx) => {
826- ctx.arc (this.get_allocated_width () / 2, this.get_allocated_height () / 2,
827+ ctx.arc (this.get_allocated_width () / 2, this.get_allocated_height () / 2,
828 this.get_allocated_width () / 2, 0, 6.28318);
829 ctx.set_source_rgba (color.red, color.green, color.blue, color.alpha);
830 ctx.fill ();
831 return false;
832 });
833-
834+
835 this.set_size_request (70, 70);
836 this.realize ();
837 this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle ({0, 0, 1, 1}), 0, 0);
838 this.show_all ();
839 }
840-
841+
842 public new void move (int x, int y) {
843 base.move (x - (int)(this.get_allocated_width ()/2), y - (int)(this.get_allocated_height ()/2));
844 }
845 }
846-
847+
848 public class ClickWindow : Granite.Widgets.CompositedWindow {
849 public ClickWindow (int x, int y, int button) {
850 this.skip_pager_hint = true;
851@@ -41,17 +41,17 @@
852 this.stick ();
853 this.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN;
854 this.accept_focus = false;
855-
856+
857 string label = "";
858 switch (button) {
859 case 1:
860- label = "Left";
861+ label = _("Left");
862 break;
863 case 2:
864- label = "Middle";
865+ label = _("Middle");
866 break;
867 case 3:
868- label = "Right";
869+ label = _("Right");
870 break;
871 default:
872 break;
873@@ -65,12 +65,12 @@
874 css.load_from_data ("*{color:#fff; text-shadow:1 1 #000;}", -1);
875 } catch (Error e) { warning (e.message); }
876 lbl.get_style_context ().add_provider (css, 20000);
877-
878+
879 this.realize ();
880 this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle ({0, 0, 1, 1}), 0, 0);
881 this.show_all ();
882 this.move (x + 5, y + 5);
883-
884+
885 Timeout.add (10, () => {
886 this.opacity -= 0.007;
887 if (this.opacity < 0.1) //prevent flickering
888@@ -83,10 +83,10 @@
889 });
890 }
891 }
892-
893-
894+
895+
896 public class Key : Label {
897-
898+
899 public string key;
900 public bool ctrl;
901 public bool shift;
902@@ -94,7 +94,7 @@
903 public bool super;
904 public bool iso_level3_shift;
905 public int count;
906-
907+
908 public Key (string key, bool ctrl, bool shift, bool alt, bool super, bool iso_level3_shift){
909 this.key = key;
910 this.ctrl = ctrl;
911@@ -105,45 +105,45 @@
912 this.count = 1;
913 }
914 }
915-
916-
917+
918+
919 public class KeyView : Granite.Widgets.CompositedWindow {
920-
921+
922 public int key_size;
923 public int fade_duration;
924-
925-
926-
927+
928+
929+
930 private bool ctrl;
931 private bool shift;
932 private bool alt;
933 private bool super;
934 private bool iso_level3_shift;
935-
936+
937 private int screen_h;
938-
939+
940 public Queue<Key> keys;
941-
942+
943 public YellowCircle circle;
944-
945+
946 public Cairo.ImageSurface key_bg;
947-
948+
949 [CCode (cname = "intercept_key_thread")]
950 public extern void *intercept_key_thread ();
951-
952+
953 public signal void captured (string keyvalue, bool released);
954 public signal void captured_mouse (int x, int y, int button);
955 public signal void captured_move (int x, int y);
956-
957+
958 public override bool draw (Cairo.Context ctx){
959-
960+
961 //key
962 for (var i=0;i<keys.length;i++){
963 ctx.set_source_surface (key_bg, 0, screen_h - (i+2)*key_size);
964 ctx.paint ();
965-
966+
967 ctx.set_source_rgba (1.0, 1.0, 1.0, 1.0);
968-
969+
970 int [] sizes = {0, 30, 45, 55, 60};
971 print ("%i\n", keys.peek_nth (i).key.length);
972
973@@ -155,7 +155,7 @@
974
975 ctx.move_to (key_size - 40, screen_h - (i+1)*key_size-20);
976 ctx.show_text (keys.peek_nth (i).key);
977-
978+
979 ctx.set_font_size (18);
980 if (keys.peek_nth (i).count > 1){
981 ctx.move_to (3, screen_h - (i+1)*key_size - (key_size-12));
982@@ -183,21 +183,21 @@
983 ctx.show_text ("AltGr");
984 }
985 }
986-
987+
988 return base.draw (ctx);
989 }
990-
991+
992 public void place (int x, int y, int h){
993 this.set_size_request (key_size, h);
994 this.resize (key_size, h);
995 this.move (x - key_size, y);
996 this.screen_h = h;
997 }
998-
999+
1000 public KeyView (bool keyboard, bool mouse, bool mouse_circle, Gdk.RGBA mouse_circle_color){
1001 this.key_size = 75;
1002 this.fade_duration = 2000;
1003-
1004+
1005 this.stick ();
1006 this.set_keep_above (true);
1007 this.deletable = false;
1008@@ -206,32 +206,32 @@
1009 this.skip_pager_hint = true;
1010 this.skip_taskbar_hint = true;
1011 this.accept_focus = false;
1012-
1013+
1014 this.type_hint = Gdk.WindowTypeHint.NOTIFICATION;
1015- this.events = Gdk.EventMask.BUTTON_MOTION_MASK | Gdk.EventMask.BUTTON1_MOTION_MASK |
1016+ this.events = Gdk.EventMask.BUTTON_MOTION_MASK | Gdk.EventMask.BUTTON1_MOTION_MASK |
1017 Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK ;
1018-
1019+
1020 this.realize ();
1021-
1022+
1023 Cairo.RectangleInt rect = {0, 0, 1, 1};
1024 this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle (rect), 0, 0);
1025-
1026+
1027 this.enter_notify_event.connect ( () => {
1028 this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle (rect), 0, 0);
1029 return true;
1030 });
1031-
1032+
1033 this.keys = new Queue<Key> ();
1034-
1035+
1036 //setup the key background
1037 key_bg = new Cairo.ImageSurface (Cairo.Format.ARGB32, key_size, key_size);
1038 var ctx = new Cairo.Context (key_bg);
1039 Granite.Drawing.Utilities.cairo_rounded_rectangle (ctx, 5, 5, key_size-10, key_size-10, 5);
1040 ctx.set_source_rgba (0.2, 0.2, 0.2, 0.7);
1041 ctx.fill_preserve ();
1042-
1043+
1044 capture ();
1045-
1046+
1047 Timeout.add (fade_duration, () => {
1048 if (!keys.is_empty ()){
1049 keys.pop_tail ();
1050@@ -239,7 +239,7 @@
1051 }
1052 return true;
1053 });
1054-
1055+
1056 if (mouse_circle) {
1057 this.circle = new YellowCircle (mouse_circle_color);
1058 this.captured_move.connect ( (x, y) => {
1059@@ -247,14 +247,14 @@
1060 //debug ("Moved to %i, %i\n", x, y);
1061 });
1062 }
1063-
1064+
1065 if (mouse)
1066 this.captured_mouse.connect ( (x, y, button) => {
1067 debug ("Button %i pressed at %i, %i ", button, x, y);
1068 if (button <= 3)
1069 Timeout.add (10, () => { new ClickWindow (x, y, button); return false; });
1070 });
1071-
1072+
1073 if (keyboard)
1074 this.captured.connect ( (keyvalue, released) => {
1075 if (released){
1076@@ -289,7 +289,7 @@
1077 switch (res){
1078 case "Control_L":
1079 case "Control_R":
1080- this.ctrl = true;
1081+ this.ctrl = true;
1082 this.queue_draw ();
1083 return;
1084 case "Shift_L":
1085@@ -404,10 +404,10 @@
1086 res = keyvalue.substring (0, 9);
1087 break;
1088 }
1089-
1090+
1091 if ((!keys.is_empty ()) &&
1092- (keys.peek_head ().key == res) &&
1093- (keys.peek_head ().ctrl == ctrl) &&
1094+ (keys.peek_head ().key == res) &&
1095+ (keys.peek_head ().ctrl == ctrl) &&
1096 (keys.peek_head ().shift == shift) &&
1097 (keys.peek_head ().alt == alt) &&
1098 (keys.peek_head ().iso_level3_shift == iso_level3_shift)){
1099@@ -425,7 +425,7 @@
1100 }
1101 });
1102 }
1103-
1104+
1105 public void capture (){
1106 try{
1107 Thread.create<void*> (this.intercept_key_thread, true);
1108
1109=== modified file 'src/eidete.vala'
1110--- src/eidete.vala 2012-08-05 00:39:41 +0000
1111+++ src/eidete.vala 2013-05-18 07:55:30 +0000
1112@@ -6,7 +6,7 @@
1113
1114
1115 namespace Eidete{
1116-
1117+
1118 class LLabel : Label{
1119 public LLabel (string label){
1120 this.set_halign (Align.START);
1121@@ -30,8 +30,8 @@
1122 this.label = label;
1123 }
1124 }
1125-
1126-
1127+
1128+
1129 public struct Settings{
1130 public int sx;
1131 public int sy;
1132@@ -45,39 +45,39 @@
1133 public Gdk.RGBA mouse_circle_color;
1134 public string destination;
1135 }
1136-
1137+
1138 public class EideteApp : Granite.Application{
1139-
1140+
1141 construct{
1142 program_name = "Eidete";
1143 exec_name = "eidete";
1144-
1145+
1146 build_data_dir = Constants.DATADIR;
1147 build_pkg_data_dir = Constants.PKGDATADIR;
1148 build_release_name = Constants.RELEASE_NAME;
1149 build_version = Constants.VERSION;
1150 build_version_info = Constants.VERSION_INFO;
1151-
1152+
1153 app_years = "2011-2012";
1154 app_icon = "eidete";
1155 app_launcher = "eidete.desktop";
1156 application_id = "net.launchpad.eidete";
1157-
1158+
1159 main_url = "https://code.launchpad.net/eidete";
1160 bug_url = "https://bugs.launchpad.net/eidete";
1161 help_url = "https://code.launchpad.net/eidete";
1162 translate_url = "https://translations.launchpad.net/eidete";
1163-
1164+
1165 about_authors = {"Tom Beckmann <tombeckmann@online.de>"};
1166 about_documenters = {"Tom Beckmann <tombeckmann@online.de>"};
1167 about_artists = {"Harvey Cabaguio", "Sergey 'shnatsel' Davidoff"};
1168- about_comments = "Development release, not all features implemented";
1169+ about_comments = "Development release (all features not implemented)";
1170 about_translators = "";
1171 about_license_type = License.GPL_3_0;
1172 }
1173-
1174+
1175 public dynamic Pipeline pipeline;
1176-
1177+
1178 public Window main_window;
1179 public Eidete.Widgets.KeyView keyview;
1180 public Eidete.Widgets.SelectionArea selectionarea;
1181@@ -87,9 +87,9 @@
1182 public Wnck.Window win;
1183 public Gdk.Screen screen;
1184 public Gdk.Rectangle monitor_rec;
1185-
1186+
1187 public Settings settings;
1188-
1189+
1190 public bool recording;
1191 public bool typing_size;
1192
1193@@ -98,99 +98,121 @@
1194
1195 public EideteApp (){
1196 }
1197-
1198+
1199 public void start_and_build () {
1200-
1201+
1202 Gtk.Settings.get_default ().gtk_application_prefer_dark_theme = true;
1203-
1204+
1205 this.main_window = new Window ();
1206 this.main_window.title = program_name;
1207 this.main_window.icon_name = exec_name;
1208 this.main_window.set_application (this);
1209 this.main_window.window_position = WindowPosition.CENTER;
1210 this.main_window.set_resizable (false);
1211-
1212-
1213+
1214+
1215 if (!this.main_window.is_composited ()){
1216 warning ("Compositing is not supported. No transparency available.");
1217 }
1218-
1219-
1220+
1221+
1222 /*
1223 UI
1224 */
1225-
1226+
1227 tabs = new Granite.Widgets.StaticNotebook (false);
1228 tabs.margin = 12;
1229-
1230+
1231 pause_icon = new Image.from_icon_name ("media-playback-pause", IconSize.DIALOG);
1232 pause_icon.pixel_size = 64;
1233-
1234-
1235+
1236+
1237 var grid = new Grid ();
1238 grid.column_spacing = 12;
1239 grid.row_spacing = 6;
1240- grid.hexpand = true;
1241-
1242+ grid.hexpand = false;
1243+
1244 var monitors_combo = new ComboBoxText ();
1245 monitors_combo.hexpand = true;
1246- monitors_combo.margin_left = 6;
1247 for (var i=0;i<Gdk.Screen.get_default ().get_n_monitors (); i++)
1248 monitors_combo.append (i.to_string (), _("Monitor")+" "+(i+1).to_string ());
1249 monitors_combo.active = 0;
1250 if (Gdk.Screen.get_default ().get_n_monitors () == 1)
1251 monitors_combo.set_sensitive (false);
1252-
1253+
1254 var width = new SpinButton.with_range (50, Gdk.Screen.get_default ().get_width (), 1);
1255 width.max_length = 4;
1256+ width.margin_left = 1;
1257+ width.margin_right = -4;
1258+
1259 var height = new SpinButton.with_range (50, Gdk.Screen.get_default ().get_height (), 1);
1260 height.max_length = 4;
1261+ height.margin_left = 1;
1262+ height.margin_right = -4;
1263 width.set_sensitive (false);
1264 height.set_sensitive (false);
1265 width.halign = Align.START;
1266 height.halign = Align.START;
1267-
1268+
1269 var recordingarea_combo = new ComboBoxText ();
1270 recordingarea_combo.append ("full", _("Fullscreen"));
1271 recordingarea_combo.append ("custom", _("Custom"));
1272 recordingarea_combo.active = 0;
1273-
1274+
1275 var use_comp_sounds = new CheckButton ();
1276 use_comp_sounds.halign = Align.START;
1277 use_comp_sounds.set_sensitive (false);
1278+
1279 var use_audio = new CheckButton ();
1280- use_audio.halign = Align.END;
1281-
1282+ use_audio.halign = Align.START;
1283+
1284 var audio_source = new ComboBoxText ();
1285- audio_source.margin_left = 6;
1286- audio_source.append ("0", "Default");
1287+ audio_source.append ("0", _("Default"));
1288 audio_source.active = 0;
1289 audio_source.hexpand = true;
1290 audio_source.set_sensitive (false);
1291-
1292+
1293 var audio_box = new Box (Orientation.HORIZONTAL, 0);
1294 audio_box.pack_start (use_audio, false, true, 0);
1295 audio_box.pack_start (audio_source, true, true, 0);
1296-
1297- var start_bt = new Button.with_label (_("Record"));
1298+
1299+ var sound = new LLabel.markup ("<b>"+_("Sound")+":"+"</b>");
1300+ sound.margin_top = 18;
1301+
1302+ var video = new LLabel.markup ("<b>"+_("Video")+":"+"</b>");
1303+ video.margin_top = 12;
1304+
1305+ var keyboard = new LLabel.markup ("<b>"+_("Keyboard")+":"+"</b>");
1306+ keyboard.margin_top = 18;
1307+
1308+ var mouse = new LLabel.markup ("<b>"+_("Mouse")+":"+"</b>");
1309+ mouse.margin_top = 12;
1310+
1311+ var start_bt = new Button.with_label (_("Start Recording"));
1312+ start_bt.can_default = true;
1313+ start_bt.get_style_context ().add_class ("noundo");
1314+
1315 var cancel_bt = new Button.from_stock (Stock.CANCEL);
1316- var about_bt = new Button.from_stock (Stock.ABOUT);
1317+
1318+ var about_bt = new Button.with_label (_("About"));
1319+ about_bt.image = new Image.from_stock (Stock.ABOUT, IconSize.BUTTON);
1320+
1321 var buttons = new Box (Orientation.HORIZONTAL, 5);
1322- buttons.homogeneous = false;
1323+ buttons.homogeneous = true;
1324+ buttons.pack_start (about_bt, false, true, 0);
1325+ buttons.pack_start (cancel_bt, false, true, 0);
1326 buttons.pack_end (start_bt, false, true, 0);
1327- buttons.pack_end (cancel_bt, false, true, 0);
1328- buttons.pack_start (about_bt, false, true, 0);
1329- start_bt.can_default = true;
1330- start_bt.get_style_context ().add_class ("noundo");
1331+ buttons.margin_top = 24;
1332+
1333 this.main_window.set_default (start_bt);
1334-
1335- grid.attach (new LLabel.markup ("<b>"+_("Sound")+"</b>"), 0, 0, 2, 1);
1336- grid.attach (new LLabel.right (" "+_("Record Computer Sounds")+":"), 0, 1, 1, 1);
1337+
1338+ grid.attach ((sound), 0, 0, 1, 1);
1339+ grid.attach (new LLabel.right (_("Record Computer Sounds")), 0, 1, 1, 1);
1340 grid.attach (use_comp_sounds, 1, 1, 1, 1);
1341 grid.attach (new LLabel.right (_("Record from Microphone")+":"), 0, 2, 1, 1);
1342 grid.attach (audio_box, 1, 2, 1, 1);
1343- grid.attach (new LLabel.markup ("<b>"+_("Video")+"</b>"), 0, 3, 2, 1);
1344- grid.attach (new LLabel.right (_("Record from Monitor")+":"), 0, 4, 1, 1);
1345+ grid.attach ((video), 0, 3, 2, 1);
1346+ grid.attach (new LLabel.right (" "+_("Record from Monitor")+":"), 0, 4, 1, 1);
1347 grid.attach (monitors_combo, 1, 4, 1, 1);
1348 grid.attach (new LLabel.right (_("Recording Area")+":"), 0, 5, 1, 1);
1349 grid.attach (recordingarea_combo, 1, 5, 1, 1);
1350@@ -199,56 +221,62 @@
1351 grid.attach (new LLabel.right (_("Height")+":"), 0, 7, 1, 1);
1352 grid.attach (height, 1, 7, 1, 1);
1353 grid.attach (buttons, 0, 8, 2, 1);
1354-
1355+
1356 //grid2
1357 var grid2 = new Grid ();
1358-
1359+
1360 var use_keyview = new Gtk.CheckButton ();
1361 use_keyview.halign = Gtk.Align.START;
1362+
1363 var use_clickview = new Gtk.CheckButton ();
1364 use_clickview.halign = Gtk.Align.START;
1365+
1366 var use_circle = new Gtk.CheckButton ();
1367 use_circle.halign = Gtk.Align.START;
1368+
1369 var circle_color = new Gtk.ColorButton ();
1370+
1371 var circle_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0);
1372-
1373 circle_box.pack_start (use_circle, false);
1374 circle_box.pack_start (circle_color);
1375-
1376- grid2.attach (new LLabel.right (_("Show pressed keys on screen")+":"), 0, 0, 1, 1);
1377- grid2.attach (use_keyview, 1, 0, 1, 1);
1378- grid2.attach (new LLabel.right (_("Show clicks on screen")+":"), 0, 1, 1, 1);
1379- grid2.attach (use_clickview, 1, 1, 1, 1);
1380- grid2.attach (new LLabel.right (_("Show circle behind mouse")+":"), 0, 2, 1, 1);
1381- grid2.attach (circle_box, 1, 2, 1, 1);
1382+
1383+ //grid2.attach (new LLabel
1384+ grid2.attach ((keyboard), 0, 0, 1, 1);
1385+ grid2.attach (new LLabel.right (_("Pressed keys on screen")+":"), 0, 1, 1, 1);
1386+ grid2.attach (use_keyview, 1, 1, 1, 1);
1387+ grid2.attach ((mouse), 0, 2, 1, 1);
1388+ grid2.attach (new LLabel.right (_("Mouse clicks on screen")+":"), 0, 3, 1, 1);
1389+ grid2.attach (use_clickview, 1, 3, 1, 1);
1390+ grid2.attach (new LLabel.right (_("Circle around the cursor")+":"), 0, 4, 1, 1);
1391+ grid2.attach (circle_box, 1, 4, 1, 1);
1392 grid2.column_spacing = 12;
1393 grid2.row_spacing = 6;
1394 grid2.hexpand = true;
1395-
1396+
1397 tabs.append_page (grid, new Label (_("Behavior")));
1398 tabs.append_page (grid2, new Label (_("Appearance")));
1399-
1400+
1401 this.main_window.add (tabs);
1402 this.main_window.show_all ();
1403 this.main_window.present ();
1404-
1405+
1406 /*
1407 Events
1408 */
1409-
1410+
1411+ about_bt.clicked.connect ( () => {
1412+ this.show_about (this.main_window);
1413+ });
1414+
1415 cancel_bt.clicked.connect ( () => {
1416 this.main_window.destroy ();
1417 });
1418-
1419+
1420 start_bt.clicked.connect ( () => {
1421 var count = new Eidete.Widgets.Countdown ();
1422 this.main_window.iconify ();
1423 count.start (this);
1424 });
1425-
1426- about_bt.clicked.connect ( () => {
1427- this.show_about (this.main_window);
1428- });
1429
1430 this.screen = Gdk.Screen.get_default();
1431 settings.monitor = 0;
1432@@ -260,14 +288,14 @@
1433 settings.ex = settings.sx + this.monitor_rec.width - 1;
1434 settings.ey = settings.sy + this.monitor_rec.height - 1;
1435 });
1436-
1437+
1438 settings.monitor = int.parse (monitors_combo.active_id);
1439 this.screen.get_monitor_geometry(settings.monitor, out this.monitor_rec);
1440 settings.sx = this.monitor_rec.x;
1441 settings.sy = this.monitor_rec.y;
1442 settings.ex = settings.sx + this.monitor_rec.width - 1;
1443 settings.ey = settings.sy + this.monitor_rec.height - 1;
1444-
1445+
1446 recordingarea_combo.changed.connect ( () => {
1447 if (recordingarea_combo.active_id != "full"){
1448 selectionarea = new Eidete.Widgets.SelectionArea ();
1449@@ -303,7 +331,7 @@
1450 height.set_sensitive (false);
1451 }
1452 });
1453-
1454+
1455 width.key_release_event.connect ( (e) => {
1456 selectionarea.resize ((int)width.value, (int)height.value);
1457 typing_size = true;
1458@@ -316,7 +344,7 @@
1459 return false;
1460 });
1461 height.focus_out_event.connect ( (e) => {typing_size = false;return false;});
1462-
1463+
1464 settings.audio = false;
1465 use_audio.toggled.connect ( () => {
1466 settings.audio = use_audio.active;
1467@@ -326,40 +354,40 @@
1468 audio_source.set_sensitive (false);
1469 }
1470 });
1471-
1472-
1473+
1474+
1475 Gdk.Screen.get_default ().monitors_changed.connect ( () => {
1476 if (Gdk.Screen.get_default ().get_n_monitors () > 1)
1477 monitors_combo.set_sensitive (true);
1478 else
1479 monitors_combo.set_sensitive (false);
1480 });
1481-
1482+
1483 settings.keyview = false;
1484 use_keyview.toggled.connect ( () => {
1485 settings.keyview = use_keyview.active;
1486 });
1487-
1488+
1489 settings.clickview = false;
1490 use_clickview.toggled.connect ( () => {
1491 settings.clickview = use_clickview.active;
1492 });
1493-
1494+
1495 settings.mouse_circle = false;
1496 use_circle.toggled.connect ( () => {
1497 settings.mouse_circle = use_circle.active;
1498 });
1499-
1500+
1501 settings.mouse_circle_color = {1, 1, 0, 0.3};
1502 circle_color.use_alpha = true;
1503 circle_color.rgba = settings.mouse_circle_color;
1504 circle_color.color_set.connect ( () => {
1505 settings.mouse_circle_color = circle_color.rgba;
1506 });
1507-
1508+
1509 settings.destination = GLib.Environment.get_tmp_dir ()+
1510 "/screencast"+new GLib.DateTime.now_local ().to_unix ().to_string ()+".webm";
1511-
1512+
1513 ulong handle = 0;
1514 handle = Wnck.Screen.get_default().active_window_changed.connect ( () => {
1515 this.win = Wnck.Screen.get_default().get_active_window ();
1516@@ -372,7 +400,7 @@
1517 });
1518 Wnck.Screen.get_default ().disconnect (handle);
1519 });
1520-
1521+
1522 this.main_window.focus_in_event.connect ( (ev) => {
1523 if (this.selectionarea != null && !this.selectionarea.not_visible){
1524 this.selectionarea.present ();
1525@@ -397,11 +425,11 @@
1526 finish_recording ();
1527 }
1528 });
1529-
1530+
1531 Granite.Services.Logger.initialize ("Eidete");
1532 Granite.Services.Logger.DisplayLevel = Granite.Services.LogLevel.DEBUG;
1533 }
1534-
1535+
1536 public override void activate (){
1537 if (this.get_windows ().length () == 0){
1538 this.start_and_build ();
1539@@ -413,50 +441,74 @@
1540 }
1541 }
1542 }
1543-
1544+
1545 private void build_pause_ui (){
1546+
1547 pause_grid = new Grid ();
1548 pause_grid.margin = 12;
1549-
1550+ this.main_window.title = _("Recording paused");
1551+
1552+
1553+ var img_text_grid = new Grid ();
1554+
1555+ var text_grid = new Grid ();
1556+
1557+ var title = new LLabel.markup ("<span weight='bold' size='larger'>"+_("Recording paused")+"</span>");
1558+ title.valign = Align.START;
1559+
1560+ var info = new LLabel (_("You can continue or finish the recording now"));
1561+ info.valign = Align.START;
1562+ info.margin_top = 6;
1563+
1564 var buttons = new Box (Orientation.HORIZONTAL, 0);
1565- var stop_bt = new Button ();
1566- stop_bt.image = new Image.from_stock (Stock.MEDIA_STOP, IconSize.BUTTON);
1567- stop_bt.label = _("Finish");
1568- stop_bt.set_tooltip_text (_("Finish recording"));
1569- var cancel_bt = new Button.from_stock (Stock.CANCEL);
1570- var continue_bt = new Button.with_label (_("Record more"));
1571+ buttons.homogeneous = true;
1572+ buttons.spacing = 6;
1573+ buttons.margin_top = 24;
1574+
1575+ var continue_bt = new Button.with_label (_("Continue"));
1576+ continue_bt.set_tooltip_text (_("Continue recording"));
1577 continue_bt.image = new Image.from_stock (Stock.MEDIA_RECORD, IconSize.BUTTON);
1578+
1579+ var stop_bt = new Button.with_label (_("Finish"));
1580+ stop_bt.set_tooltip_text (_("Stop the recording and save the file"));
1581+ stop_bt.image = new Image.from_stock (Stock.APPLY, IconSize.BUTTON);
1582+
1583+ var cancel_bt = new Button.with_label (_("Cancel"));
1584+ cancel_bt.set_tooltip_text (_("Cancel the recording without saving the file"));
1585+ cancel_bt.image = new Image.from_stock (Stock.DELETE, IconSize.BUTTON);
1586+
1587 buttons.pack_end (stop_bt, false, true, 0);
1588- buttons.pack_end (cancel_bt, false, true, 0);
1589 buttons.pack_end (continue_bt, false, true, 0);
1590-
1591+ buttons.pack_end (cancel_bt, false, true, 0);
1592+
1593 var img = new Image.from_stock (Stock.MEDIA_PAUSE, IconSize.DIALOG);
1594 img.valign = Align.START;
1595 img.margin_right = 12;
1596-
1597- var space = new Label ("");
1598- space.height_request = 24;
1599-
1600- pause_grid.attach (img, 0, 0, 1, 1);
1601- pause_grid.attach (new LLabel.markup ("<span weight='bold' size='20000'>"+_("Recording paused")+"</span>"), 1, 0, 1, 1);
1602- pause_grid.attach (new LLabel (_("You can continue or finish the recording now.")), 1, 1, 1, 1);
1603- pause_grid.attach (space, 0, 2, 1, 1);
1604- pause_grid.attach (buttons, 0, 3, 2, 1);
1605-
1606+
1607+ text_grid.attach (title, 0, 0, 1, 1);
1608+ text_grid.attach (info, 0, 1, 1, 1);
1609+
1610+ img_text_grid.attach (img, 0, 0, 1, 1);
1611+ img_text_grid.attach (text_grid, 1, 0, 1, 1);
1612+
1613+ pause_grid.attach (img_text_grid, 0, 0, 1, 1);
1614+ pause_grid.attach (buttons, 0, 2, 1, 1);
1615+
1616+
1617 stop_bt.can_default = true;
1618 this.main_window.set_default (stop_bt);
1619-
1620+
1621 /*
1622 Events
1623 */
1624 cancel_bt.clicked.connect ( () => {
1625 this.main_window.destroy ();
1626 });
1627-
1628+
1629 stop_bt.clicked.connect ( () => {
1630 finish_recording ();
1631 });
1632-
1633+
1634 continue_bt.clicked.connect ( () => {
1635 this.main_window.iconify ();
1636 this.pipeline.set_state (State.PLAYING);
1637@@ -464,7 +516,7 @@
1638 switch_to_paused (false);
1639 });
1640 }
1641-
1642+
1643 public void record () {
1644 if (settings.keyview || settings.clickview || settings.mouse_circle) {
1645 keyview = new Eidete.Widgets.KeyView (settings.keyview, settings.clickview, settings.mouse_circle, settings.mouse_circle_color);
1646@@ -476,36 +528,36 @@
1647 return false;
1648 });
1649 keyview.place (settings.ex,
1650- settings.sy,
1651+ settings.sy,
1652 settings.ey - settings.sy);
1653 keyview.show_all ();
1654 }
1655-
1656+
1657 pipeline = new Pipeline ("screencast-pipe");
1658 dynamic Element muxer = ElementFactory.make ("webmmux", "mux");
1659 dynamic Element sink = ElementFactory.make ("filesink", "sink");
1660-
1661+
1662 //video bin
1663 this.videobin = new Gst.Bin ("video");
1664 try {
1665 videobin = (Gst.Bin)parse_bin_from_description (
1666- "ximagesrc name=\"videosrc\" ! video/x-raw-rgb, framerate=15/1 !
1667+ "ximagesrc name=\"videosrc\" ! video/x-raw-rgb, framerate=15/1 !
1668 ffmpegcolorspace ! vp8enc name=\"encoder\" ! queue", true);
1669 }catch (Error e){ stderr.printf ("Error: %s\n", e.message);}
1670-
1671+
1672 //audio bin
1673 this.audiobin = new Gst.Bin ("audio");
1674 try{
1675- audiobin = (Gst.Bin)parse_bin_from_description ("pulsesrc name=\"audiosrc\" !
1676+ audiobin = (Gst.Bin)parse_bin_from_description ("pulsesrc name=\"audiosrc\" !
1677 audioconvert ! audioresample ! audiorate ! vorbisenc ! queue", true);
1678 }catch (Error e){ stderr.printf ("Error: %s\n", e.message);}
1679-
1680-
1681+
1682+
1683 string cores;
1684 try{
1685 Process.spawn_command_line_sync ("cat /sys/devices/system/cpu/online", out cores);
1686 }catch (Error e){warning (e.message);}
1687-
1688+
1689 //configure
1690 sink.set ("location", settings.destination);
1691 videobin.get_by_name ("videosrc").set ("startx", this.settings.sx);
1692@@ -514,37 +566,37 @@
1693 videobin.get_by_name ("videosrc").set ("endy", this.settings.ey);
1694 videobin.get_by_name ("videosrc").set ("use-damage", false);
1695 videobin.get_by_name ("videosrc").set ("screen-num", this.settings.monitor);
1696-
1697+
1698 //videobin.get_by_name ("encoder").set ("mode", 1);
1699 videobin.get_by_name ("encoder").set ("quality", 8.0);
1700 videobin.get_by_name ("encoder").set ("speed", 6);
1701 videobin.get_by_name ("encoder").set ("max-keyframe-distance", 150);
1702 videobin.get_by_name ("encoder").set ("threads", int.parse (cores.substring (2)));
1703-
1704-
1705+
1706+
1707 if (pipeline==null||muxer==null||sink==null||videobin==null||audiobin==null){
1708 stderr.printf ("Error: Elements weren't made correctly!\n");
1709 }
1710-
1711+
1712 if (settings.audio)
1713 pipeline.add_many (audiobin, videobin, muxer, sink);
1714 else
1715 pipeline.add_many (videobin, muxer, sink);
1716-
1717-
1718+
1719+
1720 videobin.get_static_pad ("src").link(muxer.get_request_pad ("video_%d"));
1721 if (settings.audio)
1722 audiobin.get_static_pad ("src").link(muxer.get_request_pad ("audio_%d"));
1723-
1724+
1725 muxer.link (sink);
1726-
1727+
1728 pipeline.get_bus ().add_watch (bus_message_cb);
1729
1730 pipeline.set_state (State.READY);
1731-
1732+
1733 if (selectionarea != null)
1734 selectionarea.to_discrete ();
1735-
1736+
1737 pipeline.set_state (State.PLAYING);
1738 this.recording = true;
1739 }
1740@@ -581,9 +633,10 @@
1741 }
1742 return true;
1743 }
1744-
1745+
1746 //only visuals
1747 public void switch_to_paused (bool to_normal){
1748+
1749 if (to_normal){
1750 this.main_window.title = _("Recording paused");
1751 this.main_window.remove (pause_icon);
1752@@ -615,8 +668,8 @@
1753 bool finish_rec;
1754
1755 static const OptionEntry[] entries = {
1756- {"pause", 'n', 0, OptionArg.NONE, ref pause_rec, "Pause Recording", ""},
1757- {"finish", 'n', 0, OptionArg.NONE, ref finish_rec, "Finish Recording", ""},
1758+ {"pause", 'n', 0, OptionArg.NONE, ref pause_rec, N_("Pause Recording"), ""},
1759+ {"finish", 'n', 0, OptionArg.NONE, ref finish_rec, N_("Finish Recording"), ""},
1760 { null }
1761 };
1762
1763@@ -628,11 +681,11 @@
1764 try{
1765 context.parse (ref args);
1766 }catch (Error e){ error ("Error: "+e.message);}
1767-
1768+
1769 Gst.init (ref args);
1770-
1771+
1772 eidete = new Eidete.EideteApp ();
1773-
1774+
1775 return eidete.run (args);
1776 }
1777

Subscribers

People subscribed via source and target branches

to all changes: