Lines 123-148
Link Here
|
123 |
#otime = '%Y-%m-%d %H:%M:%S' |
123 |
#otime = '%Y-%m-%d %H:%M:%S' |
124 |
# see modules time and locale |
124 |
# see modules time and locale |
125 |
otime = '%x %X' |
125 |
otime = '%x %X' |
|
|
126 |
vtime = '%Y-%m-%d %H:%M:%S' |
126 |
|
127 |
|
127 |
(c, p, t) = filename.split(':') |
128 |
(c, p, t) = filename.split(':') |
128 |
t = time.strptime(t, itime) |
129 |
t = time.strptime(t, itime) |
|
|
130 |
st = time.strftime(vtime, t) |
129 |
t = time.strftime(otime, t) |
131 |
t = time.strftime(otime, t) |
130 |
|
132 |
|
131 |
self.category = c |
133 |
self.category = c |
132 |
self.package = p |
134 |
self.package = p |
133 |
self.timestamp = t |
135 |
self.timestamp = st |
|
|
136 |
self.timesort = t |
134 |
self.filename = filename |
137 |
self.filename = filename |
135 |
|
138 |
|
136 |
|
139 |
|
137 |
from glob import glob |
140 |
from glob import glob |
138 |
from gobject import TYPE_STRING |
141 |
from gobject import TYPE_STRING |
139 |
( CATEGORY, PACKAGE, TIMESTAMP, FILENAME ) = range(4) |
142 |
( CATEGORY, PACKAGE, TIMESTAMP, TIMESORT, FILENAME ) = range(5) |
140 |
class TreeStore(gtk.TreeStore): |
143 |
class TreeStore(gtk.TreeStore): |
141 |
|
144 |
|
142 |
def __init__(self): |
145 |
def __init__(self): |
143 |
|
146 |
|
144 |
gtk.TreeStore.__init__( self, |
147 |
gtk.TreeStore.__init__( self, |
145 |
TYPE_STRING, TYPE_STRING, TYPE_STRING, TYPE_STRING ) |
148 |
TYPE_STRING, TYPE_STRING, TYPE_STRING, TYPE_STRING, TYPE_STRING ) |
146 |
|
149 |
|
147 |
def get_filename(self, iter): |
150 |
def get_filename(self, iter): |
148 |
if not iter: |
151 |
if not iter: |
Lines 169-182
Link Here
|
169 |
iter = self.insert_before(None, None) |
172 |
iter = self.insert_before(None, None) |
170 |
self.set_value(iter, 0, e.category) |
173 |
self.set_value(iter, 0, e.category) |
171 |
self.append(iter, (None, |
174 |
self.append(iter, (None, |
172 |
e.package, e.timestamp, e.filename)) |
175 |
e.package, e.timestamp, e.timesort, e.filename)) |
173 |
|
176 |
|
174 |
def populate_flat(self): |
177 |
def populate_flat(self): |
175 |
self.clear() |
178 |
self.clear() |
176 |
iter = self.get_iter_first() |
179 |
iter = self.get_iter_first() |
177 |
for e in [Elog(filename) for filename in glob('*:*:*.log')]: |
180 |
for e in [Elog(filename) for filename in glob('*:*:*.log')]: |
178 |
self.append(iter, |
181 |
self.append(iter, |
179 |
(e.category, e.package, e.timestamp, e.filename)) |
182 |
(e.category, e.package, e.timestamp, e.timesort, e.filename)) |
180 |
|
183 |
|
181 |
|
184 |
|
182 |
class TreeViewColumn(gtk.TreeViewColumn): |
185 |
class TreeViewColumn(gtk.TreeViewColumn): |
Lines 184-190
Link Here
|
184 |
def __init__(self, title=None, *args, **kargs): |
187 |
def __init__(self, title=None, *args, **kargs): |
185 |
gtk.TreeViewColumn.__init__(self, title, *args, **kargs) |
188 |
gtk.TreeViewColumn.__init__(self, title, *args, **kargs) |
186 |
|
189 |
|
187 |
self.set_sort_column_id(TIMESTAMP) |
190 |
self.set_sort_column_id(TIMESORT) |
188 |
|
191 |
|
189 |
|
192 |
|
190 |
class TreeView(gtk.TreeView): |
193 |
class TreeView(gtk.TreeView): |
Lines 197-203
Link Here
|
197 |
self.append_column(TreeViewColumn( |
200 |
self.append_column(TreeViewColumn( |
198 |
'Package', gtk.CellRendererText(), text=PACKAGE)) |
201 |
'Package', gtk.CellRendererText(), text=PACKAGE)) |
199 |
self.append_column(TreeViewColumn( |
202 |
self.append_column(TreeViewColumn( |
200 |
'Time', gtk.CellRendererText(), text=TIMESTAMP)) |
203 |
'Time', gtk.CellRendererText(), text=TIMESORT)) |
201 |
|
204 |
|
202 |
self.set_enable_search(True) |
205 |
self.set_enable_search(True) |
203 |
self.set_search_column(PACKAGE) |
206 |
self.set_search_column(PACKAGE) |