sugar-toolkit-gtk3/shell/sugar-log-viewer
2006-10-16 15:29:32 +02:00

71 lines
1.7 KiB
Python
Executable File

#!/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()
window.set_default_size(gtk.gdk.screen_width() * 3 / 4,
gtk.gdk.screen_height() * 3 / 4)
window.realize()
window.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
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()