diff options
-rw-r--r-- | activity/screencast-icon.svg | 107 | ||||
-rw-r--r-- | pippy_app.py | 48 |
2 files changed, 61 insertions, 94 deletions
diff --git a/activity/screencast-icon.svg b/activity/screencast-icon.svg index 8cc8ca4..43ddba7 100644 --- a/activity/screencast-icon.svg +++ b/activity/screencast-icon.svg @@ -1,4 +1,8 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [ +<!ENTITY stroke_color "#666666"> +<!ENTITY fill_color "#FFFFFF"> +]> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg @@ -7,15 +11,14 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg2" version="1.1" - inkscape:version="0.48.1 r9760" + inkscape:version="0.48.0 r9654" width="67" height="55" - sodipodi:docname="LCD_SCREEN.svg"> + sodipodi:docname="screencast-icon.svg"> <metadata id="metadata8"> <rdf:RDF> @@ -24,7 +27,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -39,87 +42,25 @@ guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:window-width="733" - inkscape:window-height="480" + inkscape:window-width="1024" + inkscape:window-height="575" id="namedview4" showgrid="false" - inkscape:zoom="5.6909091" - inkscape:cx="33.5" - inkscape:cy="27.5" + inkscape:zoom="2.8454546" + inkscape:cx="-11.144058" + inkscape:cy="39.866968" inkscape:window-x="0" - inkscape:window-y="39" - inkscape:window-maximized="0" + inkscape:window-y="0" + inkscape:window-maximized="1" inkscape:current-layer="svg2" /> - <image - width="67" - height="55" - xlink:href="data:image/png;base64,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 -" - id="image10" - x="0" - y="0" /> + <path + inkscape:connector-curvature="0" + id="path2994" + d="m 17.201706,52.56196 c -6.411192,-1.062413 -7.9429284,-2.170074 -6.411759,-4.636608 0.990308,-1.59527 5.095772,-3.246317 11.525471,-4.635065 2.651519,-0.5727 4.352999,-2.981193 3.304528,-4.677653 -0.309243,-0.500367 -4.949695,-0.909758 -10.312114,-0.909758 -13.9737644,0 -13.3862404,0.902255 -12.0467024,-18.5 0.607555,-8.8 1.260005,-16.1606228 1.449888,-16.3569378 0.189883,-0.196315 13.3096204,0.02869 29.1549714,0.5 l 28.80973,0.856937 -0.243132,14.0000008 c -0.133722,7.7 -0.615113,15.35 -1.069757,17 l -0.826625,3 -9.74644,0.28701 c -8.321471,0.245049 -9.70021,0.521786 -9.430243,1.892817 0.394819,2.005088 2.304948,3.052402 6.892464,3.779103 8.516589,1.349099 8.989778,6.043057 0.827694,8.210593 -5.178589,1.375235 -24.045915,1.487428 -31.877974,0.189561 z" + style="fill:&fill_color;" /> + <path + inkscape:connector-curvature="0" + id="path2986" + d="m 27.202874,51.121599 c -1.1,-0.169903 -4.613139,-0.594204 -7.806975,-0.942893 -7.260889,-0.792712 -7.091497,-2.580183 0.381373,-4.024361 4.439888,-0.858035 5.788959,-1.623169 7.425602,-4.211479 2.652915,-4.195518 4.127078,-4.044492 4.978195,0.51001 0.385427,2.0625 1.165609,4.3125 1.733736,5 1.416685,1.714354 5.275755,1.572227 6.788069,-0.25 0.684689,-0.825 2.735494,-1.5 4.557345,-1.5 4.237105,0 9.061287,1.799591 7.855494,2.930378 -2.36492,2.217813 -17.965367,3.715884 -25.912839,2.488345 z m 12,-15.458376 c -6.6,-0.379043 -16.810942,-0.750184 -22.690983,-0.824758 -5.880039,-0.07457 -10.8663895,-0.473089 -11.0807769,-0.885589 -0.671821,-1.292642 0.4328152,-10.25 1.264047,-10.25 0.434994,0 1.0651428,1.092677 1.4003305,2.428172 0.5246508,2.090375 1.3892723,2.525606 6.2151314,3.128557 14.767446,1.845071 32.214905,-1.223139 38.032095,-6.688106 C 56.534891,18.633157 54.781107,13.280323 48.202874,9.9360252 44.04456,7.8219854 31.202686,6.5867492 20.494216,7.27078 L 9.7855599,7.9548229 8.3231649,12.07885 6.8607701,16.202876 6.7818228,10.511893 C 6.7384017,7.3818517 7.0418234,4.611428 7.4560931,4.3553952 7.8703629,4.0993625 15.407861,4.5053682 24.206092,5.2576303 c 8.79823,0.752262 20.209363,1.3851858 25.358073,1.4064971 l 9.361291,0.038748 -0.850532,3.7500006 c -0.467792,2.0625 -0.855373,8.25 -0.861291,13.75 -0.01175,10.923177 -0.527746,12.588066 -3.819776,12.324758 -1.205041,-0.09638 -7.590983,-0.485369 -14.190983,-0.864411 z" + style="fill:&stroke_color;" /> </svg> diff --git a/pippy_app.py b/pippy_app.py index 406fa4d..d3f4c5a 100644 --- a/pippy_app.py +++ b/pippy_app.py @@ -65,20 +65,37 @@ class ScreencastActivity(ViewSourceActivity): # Recording buttons. self.record = gtk.Button("Record") self.record.connect("clicked", self.record_cb) - self.record.set_size_request(100, 100) + self.record.set_size_request(150, 150) + recimage = gtk.Image() + recimage.set_from_icon_name("media-record", -1) + self.record.set_image(recimage) self.stop = gtk.Button("Stop") self.stop.connect("clicked", self.stop_cb) - self.stop.set_size_request(100, 100) + self.stop.set_size_request(150, 150) self.stop.set_sensitive(False) + stopimage = gtk.Image() + stopimage.set_from_icon_name("media-playback-stop", -1) + self.stop.set_image(stopimage) + + # Record sound checkbox + self.audiocheckbox = gtk.CheckButton(label="record sound") + self.audiocheckbox.set_active(True) + audio = gtk.Alignment(0.5, 0, 0, 0) + audio.add(self.audiocheckbox) # Status label. self.status = gtk.Label(_("Status: Stopped")) - hbox.pack_start(self.record, expand=False, padding=20) - hbox.pack_start(self.stop, expand=False, padding=20) - hbox.pack_start(self.status, expand=False, padding=20) + + hbox.pack_start(self.record, expand=False, padding=40) + hbox.pack_start(self.stop, expand=False, padding=40) - vbox.pack_start(hbox, expand=True, fill=False) - self.set_canvas(vbox) + valign = gtk.Alignment(0.5, 0.4, 0, 0) + valign.add(vbox) + vbox.pack_end(self.status, expand=True, padding=40) + vbox.pack_end(hbox, expand=True, fill=False) + vbox.pack_end(audio, expand=True, padding=40) + + self.set_canvas(valign) self.show_all() def write_file (self, file_path): @@ -121,12 +138,16 @@ class ScreencastActivity(ViewSourceActivity): def alert_cancel_cb(self, alert, response_id): self.remove_alert(alert) - def record_cb(self, record): self.stop.set_sensitive(True) self.record.set_sensitive(False) - execargs = ["./recordmydesktop", "--overwrite", "-o", OUTFILE] + self.audiocheckbox.set_sensitive(False) + if self.audiocheckbox.get_active(): + execargs = ["./recordmydesktop", "--no-frame", "--overwrite", "-o", OUTFILE] + else: + execargs = ["./recordmydesktop", "--no-frame", "--no-sound", "--overwrite", "-o", OUTFILE] self.childp = popen2.Popen3(execargs, "t", 0) + print execargs flags = fcntl.fcntl(self.childp.childerr, fcntl.F_GETFL) fcntl.fcntl(self.childp.childerr, fcntl.F_SETFL, flags|os.O_NONBLOCK) self.timed_id = gobject.timeout_add(1000, self.check_status_cb) @@ -137,7 +158,6 @@ class ScreencastActivity(ViewSourceActivity): exitret = os.waitpid(self.childp.pid, os.WNOHANG) if exitret[0] == 0: os.kill(self.childp.pid, signal.SIGTERM) - self.record.set_sensitive(True) self.stop.set_sensitive(False) def check_status_cb(self): @@ -147,7 +167,13 @@ class ScreencastActivity(ViewSourceActivity): print "no more record process" # The recording process exited self.status.set_text("Status: Stopped") - os.system('copy-to-journal /tmp/recordmydesktop.ogv -m video/ogg -t "My Screencast"') + self.record.set_sensitive(True) + self.audiocheckbox.set_sensitive(True) + if self._jobject.metadata['title_set_by_user'] == '1': + title = self.metadata['title'] + else: + title = "My Screencast" + os.system("copy-to-journal /tmp/recordmydesktop.ogv -m video/ogg -t \"%s\""% title) return False else: # Maybe we have new stderr. |