14
14
"""
15
15
16
16
17
- class SummaryItem (urwid .WidgetWrap ):
18
- def __init__ (self , parent , displayer , message ):
19
- self .parent = parent
20
- self .displayer = displayer
17
+ class SummaryItem (BasicWidget ):
18
+ def __init__ (self , message , parent ):
21
19
self .message = message
22
- self .title = self .displayer .to_summary (message )
23
- super (SummaryItem , self ).__init__ (self ._make_widget ())
20
+ self .title = parent .displayer .to_summary (message )
21
+ super (SummaryItem , self ).__init__ (self ._make_widget (), parent = parent )
24
22
25
23
def _make_widget (self ):
26
24
return urwid .AttrMap (
@@ -37,24 +35,20 @@ def keypress(self, size, key):
37
35
38
36
39
37
class SummaryListWalker (urwid .SimpleFocusListWalker ):
40
- def __init__ (self , parent , data_store , displayer , content = None ):
38
+ def __init__ (self , parent , content = None ):
41
39
super (SummaryListWalker , self ).__init__ (content or [])
42
40
self .parent = parent
43
- self .data_store = data_store
44
- self .displayer = displayer
45
- data_store .register_walker (self )
41
+ parent .data_store .register_walker (self )
46
42
47
43
def recv (self , message ):
48
- self .append (SummaryItem (self . parent , self .displayer , message ))
44
+ self .append (SummaryItem (message , parent = self .parent ))
49
45
50
46
51
47
class FilterSummaryListWalker (SummaryListWalker ):
52
48
def __init__ (self , origin_walker , search ):
53
49
parent = origin_walker .parent
54
- data_store = origin_walker .data_store
55
- displayer = origin_walker .displayer
56
- content = [m for m in origin_walker if displayer .match (search , m .message , m .title )]
57
- super (FilterSummaryListWalker , self ).__init__ (parent , data_store , displayer , content = content )
50
+ content = [m for m in origin_walker if parent .displayer .match (search , m .message , m .title )]
51
+ super (FilterSummaryListWalker , self ).__init__ (parent , content = content )
58
52
self .search = search
59
53
60
54
def recv (self , message ):
@@ -63,13 +57,13 @@ def recv(self, message):
63
57
64
58
65
59
class SummaryListWidget (BasicWidget ):
66
- def __init__ (self , parent , walker ):
60
+ def __init__ (self , walker , ** kwargs ):
67
61
self .base_walker = walker
68
62
self .current_walker = walker
69
63
self .list_box = urwid .ListBox (walker )
70
64
self .search = SearchWidget (self )
71
65
widget = urwid .Pile ([self .list_box , ("pack" , self .search )])
72
- super (SummaryListWidget , self ).__init__ (parent , widget )
66
+ super (SummaryListWidget , self ).__init__ (widget , ** kwargs )
73
67
74
68
def filter (self , search ):
75
69
new_walker = FilterSummaryListWalker (self .base_walker , search ) if search else self .base_walker
0 commit comments