MCPcopy Create free account
hub / github.com/mitmproxy/mitmproxy / OptionListWalker

Class OptionListWalker

mitmproxy/tools/console/options.py:83–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

81
82
83class OptionListWalker(urwid.ListWalker):
84 def __init__(self, master, help_widget: OptionHelp):
85 self.master = master
86 self.help_widget = help_widget
87
88 self.index = 0
89 self.focusobj = None
90
91 self.opts = sorted(master.options.keys())
92 self.maxlen = max(len(i) for i in self.opts)
93 self.editing = False
94 self.set_focus(0)
95 self.master.options.changed.connect(self.sig_mod)
96
97 def sig_mod(self, *args, **kwargs):
98 self.opts = sorted(self.master.options.keys())
99 self.maxlen = max(len(i) for i in self.opts)
100 self._modified()
101 self.set_focus(self.index)
102
103 def start_editing(self):
104 self.editing = True
105 self.focus_obj = self._get(self.index, True)
106 self._modified()
107
108 def stop_editing(self):
109 self.editing = False
110 self.focus_obj = self._get(self.index, False)
111 self.set_focus(self.index)
112 self._modified()
113
114 def get_edit_text(self):
115 return self.focus_obj.get_edit_text()
116
117 def _get(self, pos, editing):
118 name = self.opts[pos]
119 opt = self.master.options._options[name]
120 return OptionItem(self, opt, pos == self.index, self.maxlen, editing)
121
122 def get_focus(self):
123 return self.focus_obj, self.index
124
125 def set_focus(self, index):
126 self.editing = False
127 name = self.opts[index]
128 opt = self.master.options._options[name]
129 self.index = index
130 self.focus_obj = self._get(self.index, self.editing)
131 self.help_widget.update_help_text(opt.help)
132 self._modified()
133
134 def get_next(self, pos):
135 if pos >= len(self.opts) - 1:
136 return None, None
137 pos = pos + 1
138 return self._get(pos, False), pos
139
140 def get_prev(self, pos):

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…