summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul W. Frields <stickster@gmail.com>2010-12-20 22:16:04 -0500
committerPaul W. Frields <stickster@gmail.com>2010-12-20 22:16:04 -0500
commitbe97f5722fbb2da6860076d21891a22837f5fab9 (patch)
tree1a27611525f33c29d3675ccdfb150d0b145586ae
parent6b6fcda00af48626c0d8e8874fad0181e981874f (diff)
downloadpulsecaster-be97f5722fbb2da6860076d21891a22837f5fab9.tar.gz
pulsecaster-be97f5722fbb2da6860076d21891a22837f5fab9.tar.xz
pulsecaster-be97f5722fbb2da6860076d21891a22837f5fab9.zip
Let tray icon track recording time
-rw-r--r--pulsecaster/ui.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/pulsecaster/ui.py b/pulsecaster/ui.py
index 19dc02d..7c72b62 100644
--- a/pulsecaster/ui.py
+++ b/pulsecaster/ui.py
@@ -32,6 +32,7 @@ import gobject
import pygst
pygst.require('0.10')
import gst
+from datetime import datetime
import gettext
_ = lambda x: gettext.ldgettext(NAME, x)
@@ -211,6 +212,12 @@ class PulseCasterUI:
self.stop_id = self.record.connect('clicked', self.on_stop)
self.record.show()
self.combiner.set_state(gst.STATE_PLAYING)
+ # Start timer
+ self.starttime = datetime.now()
+ self._update_time()
+ self.timeout = 1000
+ gobject.timeout_add(self.timeout, self._update_time)
+ self.trayicon.set_visible(True)
def on_stop(self, *args):
self.combiner.set_state(gst.STATE_NULL)
@@ -275,6 +282,18 @@ class PulseCasterUI:
self.permfile.close()
self._remove_tempfile(self.tempfile, self.temppath)
self.record.set_sensitive(True)
+
+ def _update_time(self, *args):
+ if self.combiner.get_state()[1] == gst.STATE_NULL:
+ self.trayicon.set_tooltip(None)
+ self.trayicon.set_visible(False)
+ return False
+ delta = datetime.now() - self.starttime
+ deltamin = delta.seconds // 60
+ deltasec = delta.seconds - (deltamin * 60)
+ self.trayicon.set_tooltip('Recording: %d:%02d' %
+ (deltamin, deltasec))
+ return True
def _confirm_overwrite(self, *args):
confirm = gtk.MessageDialog(type=gtk.MESSAGE_QUESTION,