diff options
Diffstat (limited to 'pippy_app.py')
-rw-r--r-- | pippy_app.py | 48 |
1 files changed, 37 insertions, 11 deletions
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. |