changeset 647:a30550d5827f

vidref shows more logs in the gui Ignore-this: 933f1edd615ecea9b9c1a4e5a6f37355
author Drew Perttula <drewp@bigasterisk.com>
date Sat, 18 Jun 2011 05:12:10 +0000
parents d2fab3dc0a0e
children 365ca8d7476f
files bin/vidref light9/vidref/main.py light9/vidref/vidref.glade
diffstat 3 files changed, 53 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/bin/vidref	Sat Jun 18 04:51:56 2011 +0000
+++ b/bin/vidref	Sat Jun 18 05:12:10 2011 +0000
@@ -18,7 +18,9 @@
 
 logging.basicConfig()
 log = logging.getLogger()
-log.setLevel(logging.DEBUG if options.verbose else logging.INFO)
+log.setLevel(logging.DEBUG)
+# limit the stdout one, but leave debug messages for the gtk logger
+log.handlers[0].setLevel(logging.DEBUG if options.verbose else logging.WARN)
 logging.getLogger("restkit.client").setLevel(logging.WARN)
 
 
--- a/light9/vidref/main.py	Sat Jun 18 04:51:56 2011 +0000
+++ b/light9/vidref/main.py	Sat Jun 18 05:12:10 2011 +0000
@@ -139,7 +139,7 @@
         img.save(outFilename)
 
         now = time.time()
-        log.debug("wrote %s delay of %.2fms, took %.2fms",
+        log.info("wrote %s delay of %.2fms, took %.2fms",
                   outFilename,
                   (now - self.lastTime) * 1000,
                   (now - t1) * 1000)
@@ -159,8 +159,9 @@
 
         self.recordingTo = wtree.get_object('recordingTo')
         self.musicScale = wtree.get_object("musicScale")
-        self.musicScale.connect("value-changed",
-                            lambda r: self.musicTime.sendTime(r.get_value()))
+        self.musicScale.connect("value-changed", self.onMusicScaleValue)
+        self.ignoreScaleChanges = False
+        self.attachLog(wtree.get_object("lastLog"))
 
         # wtree.get_object("replayPanel").show() # demo only
         rp = wtree.get_object("replayVbox")
@@ -173,6 +174,16 @@
 
         gobject.timeout_add(1000 // framerate, self.updateLoop)
 
+    def attachLog(self, textBuffer):
+        """write log lines to this gtk buffer"""
+        class ToBuffer(logging.Handler):
+            def emit(self, record):
+                textBuffer.set_text(record.getMessage())
+
+        h = ToBuffer()
+        h.setLevel(logging.INFO)
+        log.addHandler(h)
+
     def updateLoop(self):
         position = self.musicTime.getLatest()
         try:
@@ -241,5 +252,15 @@
         print widget.get_value()
 
     def onMusicTimeChange(self, position):
-        self.musicScale.set_range(0, position['duration'])
-        self.musicScale.set_value(position['t'])
+        self.ignoreScaleChanges = True
+        try:
+            self.musicScale.set_range(0, position['duration'])
+            self.musicScale.set_value(position['t'])
+        finally:
+            self.ignoreScaleChanges = False
+
+    def onMusicScaleValue(self, scaleRange):
+        """the scale position has changed. if it was by the user, send
+        it back to music player"""
+        if not self.ignoreScaleChanges:
+            self.musicTime.sendTime(scaleRange.get_value())
--- a/light9/vidref/vidref.glade	Sat Jun 18 04:51:56 2011 +0000
+++ b/light9/vidref/vidref.glade	Sat Jun 18 05:12:10 2011 +0000
@@ -164,7 +164,29 @@
                       </packing>
                     </child>
                     <child>
-                      <placeholder/>
+                      <object class="GtkFrame" id="frame2">
+                        <property name="visible">True</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">none</property>
+                        <child>
+                          <object class="GtkTextView" id="logView">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="wrap_mode">char</property>
+                            <property name="buffer">lastLog</property>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label8">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Last log&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">4</property>
+                      </packing>
                     </child>
                   </object>
                   <packing>
@@ -385,4 +407,5 @@
   <object class="GtkTextBuffer" id="recordingTo">
     <property name="text" translatable="yes">/home/drewp/light9-vidref/play-light9.bigasterisk.com_show_dance2010_song6/1276582699</property>
   </object>
+  <object class="GtkTextBuffer" id="lastLog"/>
 </interface>