Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@gmail.com>2014-02-11 18:45:07 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2014-02-11 18:45:07 (GMT)
commit7030f1fc6cfc65bab8eca9c4b1798a5cb6c12994 (patch)
tree85a89b3c0a40a3394e264742745beafe13d1b3e5
parent10e92ae2e0b94880f68993e66453d2b518813098 (diff)
LogViewer: fix monitoring of new files
-rw-r--r--develop-activity/logviewer.py41
1 files changed, 14 insertions, 27 deletions
diff --git a/develop-activity/logviewer.py b/develop-activity/logviewer.py
index 4e6c5a6..9b517bd 100644
--- a/develop-activity/logviewer.py
+++ b/develop-activity/logviewer.py
@@ -41,6 +41,7 @@ def _get_filename_from_path(path):
class LogMinder(Gtk.VBox):
+
def __init__(self, activity, namefilter, path=None, extra_files=None):
self.activity = activity
self._openlogs = []
@@ -57,17 +58,13 @@ class LogMinder(Gtk.VBox):
self._namefilter = namefilter
# Creating Main treeview with Actitivities list
- self.file_viewer = FileViewer()
+ self.file_viewer = LogFileViewer()
self.file_viewer.connect('file-selected', self._load_log)
self.file_viewer.set_title(_("Sugar logs"))
# the internals of the treeview
- self.file_viewer.load_logs(path, self._filter_by_name)
-
- #self._model = activity_model.DirectoryAndExtraModel(
- # path, extra_files, self._filter_by_name)
+ self.file_viewer.init_logs(path, self._filter_by_name)
- self._logs = {}
self._monitors = []
# Activities menu
@@ -76,9 +73,6 @@ class LogMinder(Gtk.VBox):
self._configure_watcher()
def _configure_watcher(self):
- # TODO
- pass
- """
logging.error('Monitor directory %s', self._logs_path)
directory = Gio.File.new_for_path(self._logs_path)
dir_monitor = directory.monitor_directory(
@@ -86,7 +80,7 @@ class LogMinder(Gtk.VBox):
dir_monitor.set_rate_limit(2000)
dir_monitor.connect('changed', self._log_file_changed_cb)
self._monitors.append(dir_monitor)
-
+ """
for f in self._extra_files:
logging.error('Monitor file %s', f)
gio_file = Gio.File.new_for_path(f)
@@ -106,18 +100,16 @@ class LogMinder(Gtk.VBox):
log.update()
elif (event == Gio.FileMonitorEvent.DELETED
or event == Gio.FileMonitorEvent.CREATED):
- self._model.refresh()
+ self.file_viewer.load_model()
#If the log is open, just leave it that way
# Load the log information in View (text_view)
def _load_log(self, file_viewer, path):
- if os.path.isdir(path):
- #do not try to open folders
- logging.debug("Cannot open a folder as text :)")
+ if not path:
return
- if not path:
- #DummyActivityNode
+ if os.path.isdir(path):
+ #do not try to open folders
return
# Set buffer and scroll down
@@ -144,14 +136,6 @@ class LogMinder(Gtk.VBox):
def _filter_by_name(self, filename):
return self._namefilter in filename
- # Insert a Row in our TreeView
- def _insert_row(self, store, parent, name):
- iter = store.insert_before(parent, None)
- index = 0
- store.set_value(iter, index, name)
-
- return iter
-
def _remove_logview(self, logview):
try:
self._openlogs.remove(logview)
@@ -159,7 +143,7 @@ class LogMinder(Gtk.VBox):
logging.debug("_remove_logview failed")
-class FileViewer(Gtk.ScrolledWindow):
+class LogFileViewer(Gtk.ScrolledWindow):
__gtype_name__ = 'LogFileViewer'
__gsignals__ = {
@@ -193,12 +177,15 @@ class FileViewer(Gtk.ScrolledWindow):
self._tree_view.append_column(self._column)
self._tree_view.set_search_column(0)
- def load_logs(self, path, filter_function):
+ def init_logs(self, path, filter_function):
self._path = path
+ self._filter_function = filter_function
+ self.load_model()
+ def load_model(self):
self._tree_view.set_model(Gtk.TreeStore(str, str))
self._model = self._tree_view.get_model()
- self._add_dir_to_model(path, filter_function)
+ self._add_dir_to_model(self._path, self._filter_function)
def _add_dir_to_model(self, dir_path, filter_function, parent=None):
for f in os.listdir(dir_path):