From 07dd398e2245909c0111edfe845dd5c66559d47f Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Mon, 16 Oct 2006 15:24:23 +0200 Subject: [PATCH] Hack a simple log viewer. --- shell/sugar-log-viewer | 63 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 shell/sugar-log-viewer diff --git a/shell/sugar-log-viewer b/shell/sugar-log-viewer new file mode 100755 index 00000000..0a5eb558 --- /dev/null +++ b/shell/sugar-log-viewer @@ -0,0 +1,63 @@ +#!/usr/bin/python + +# Copyright (C) 2006, Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import os + +import pygtk +pygtk.require('2.0') +import gtk +import gobject + +from sugar import env + +class LogBuffer(gtk.TextBuffer): + def __init__(self, logfile): + gtk.TextBuffer.__init__(self) + + self._logfile = logfile + self._pos = 0 + + gobject.timeout_add(1000, self._update) + + def _update(self): + f = open(self._logfile, 'r') + + f.seek(self._pos) + self.insert(self.get_end_iter(), f.read()) + self._pos = f.tell() + + f.close() + + return True + +window = gtk.Window() +scrolled = gtk.ScrolledWindow() +scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + +log_file = os.path.join(env.get_profile_path(), 'sugar.log') +textview = gtk.TextView(LogBuffer(log_file)) +textview.set_wrap_mode(gtk.WRAP_WORD) +textview.set_editable(False) +scrolled.add(textview) +textview.show() + +window.add(scrolled) +scrolled.show() +window.show() + +gtk.main()