Skip to content

Commit 10dfc00

Browse files
committed
Refactor
1 parent 8fe150f commit 10dfc00

File tree

4 files changed

+22
-26
lines changed

4 files changed

+22
-26
lines changed

gviewer/basic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
class BasicWidget(urwid.WidgetWrap):
5-
def __init__(self, parent, widget):
5+
def __init__(self, widget, parent=None):
66
self.parent = parent
77
super(BasicWidget, self).__init__(widget)
88

gviewer/detail.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import urwid
22

3+
from basic import BasicWidget
34

45
""" Detail Widget Related Component
56
@@ -16,9 +17,10 @@
1617
"""
1718

1819

19-
class DetailWidget(urwid.WidgetWrap):
20-
def __init__(self, displayer, message):
21-
super(DetailWidget, self).__init__(self._make_widget(displayer, message))
20+
class DetailWidget(BasicWidget):
21+
def __init__(self, message, **kwargs):
22+
displayer = kwargs["parent"].displayer
23+
super(DetailWidget, self).__init__(self._make_widget(displayer, message), **kwargs)
2224

2325
def _make_widget(self, displayer, message):
2426
detail_groups = displayer.to_detail_groups(message)
@@ -76,7 +78,7 @@ def __init__(self, title, items):
7678
self.items = items
7779

7880

79-
class DetailItemWidget(urwid.WidgetWrap):
81+
class DetailItemWidget(BasicWidget):
8082
def __init__(self, item):
8183
w = urwid.AttrMap(
8284
urwid.Text(item.content), item.style or "detailitem")
@@ -86,7 +88,7 @@ def keypress(self, size, key):
8688
return key
8789

8890

89-
class DetailItemSeparator(urwid.WidgetWrap):
91+
class DetailItemSeparator(BasicWidget):
9092
def __init__(self, content):
9193
super(DetailItemSeparator, self).__init__(
9294
urwid.AttrMap(urwid.Text(content), "detailitem separator"))

gviewer/parent.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ def __init__(self, data_store, displayer, config):
2323
self.config = config
2424
self.data_store = data_store
2525
self.displayer = displayer
26-
self.walker = SummaryListWalker(self, data_store, displayer)
27-
self.summary = SummaryListWidget(self, self.walker)
26+
self.walker = SummaryListWalker(parent=self)
27+
self.summary = SummaryListWidget(self.walker, parent=self)
2828
super(ParentFrame, self).__init__(
2929
body=self.summary,
3030
header=header_widget)
3131

3232
def open_detail(self, message):
33-
self.set_body(DetailWidget(self.displayer, message))
33+
self.set_body(DetailWidget(message, parent=self))
3434

3535
def close_detail(self):
3636
self.set_body(self.summary)

gviewer/summary.py

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,11 @@
1414
"""
1515

1616

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):
2119
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)
2422

2523
def _make_widget(self):
2624
return urwid.AttrMap(
@@ -37,24 +35,20 @@ def keypress(self, size, key):
3735

3836

3937
class SummaryListWalker(urwid.SimpleFocusListWalker):
40-
def __init__(self, parent, data_store, displayer, content=None):
38+
def __init__(self, parent, content=None):
4139
super(SummaryListWalker, self).__init__(content or [])
4240
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)
4642

4743
def recv(self, message):
48-
self.append(SummaryItem(self.parent, self.displayer, message))
44+
self.append(SummaryItem(message, parent=self.parent))
4945

5046

5147
class FilterSummaryListWalker(SummaryListWalker):
5248
def __init__(self, origin_walker, search):
5349
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)
5852
self.search = search
5953

6054
def recv(self, message):
@@ -63,13 +57,13 @@ def recv(self, message):
6357

6458

6559
class SummaryListWidget(BasicWidget):
66-
def __init__(self, parent, walker):
60+
def __init__(self, walker, **kwargs):
6761
self.base_walker = walker
6862
self.current_walker = walker
6963
self.list_box = urwid.ListBox(walker)
7064
self.search = SearchWidget(self)
7165
widget = urwid.Pile([self.list_box, ("pack", self.search)])
72-
super(SummaryListWidget, self).__init__(parent, widget)
66+
super(SummaryListWidget, self).__init__(widget, **kwargs)
7367

7468
def filter(self, search):
7569
new_walker = FilterSummaryListWalker(self.base_walker, search) if search else self.base_walker

0 commit comments

Comments
 (0)