MCPcopy Create free account
hub / github.com/apenwarr/sshuttle / fill_menu

Method fill_menu

ui-macos/main.py:215–275  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

213 None, 0.0)
214
215 def fill_menu(self):
216 menu = self.menu
217 menu.removeAllItems()
218
219 def additem(name, func, obj):
220 it = menu.addItemWithTitle_action_keyEquivalent_(name, None, "")
221 it.setRepresentedObject_(obj)
222 it.setTarget_(self)
223 it.setAction_(func)
224 def addnote(name):
225 additem(name, None, None)
226
227 any_inprogress = None
228 any_conn = None
229 any_err = None
230 if len(self.servers):
231 for i in self.servers:
232 host = i.host()
233 title = i.title()
234 want = i.wantConnect()
235 connected = i.connected()
236 numnets = len(list(i.nets()))
237 if not host:
238 additem('Connect Untitled', None, i)
239 elif i.autoNets() == models.NET_MANUAL and not numnets:
240 additem('Connect %s (no routes)' % host, None, i)
241 elif want:
242 any_conn = i
243 additem('Disconnect %s' % title, self.cmd_disconnect, i)
244 else:
245 additem('Connect %s' % title, self.cmd_connect, i)
246 if not want:
247 msg = 'Off'
248 elif i.error():
249 msg = 'ERROR - try reconnecting'
250 any_err = i
251 elif connected:
252 msg = 'Connected'
253 else:
254 msg = 'Connecting...'
255 any_inprogress = i
256 addnote(' State: %s' % msg)
257 else:
258 addnote('No servers defined yet')
259
260 menu.addItem_(NSMenuItem.separatorItem())
261 additem('Preferences...', self.cmd_show, None)
262 additem('Quit Sshuttle VPN', self.cmd_quit, None)
263
264 if any_err:
265 self.statusitem.setImage_(self.img_err)
266 self.statusitem.setTitle_('Error!')
267 elif any_conn:
268 self.statusitem.setImage_(self.img_running)
269 if any_inprogress:
270 self.statusitem.setTitle_('Connecting...')
271 else:
272 self.statusitem.setTitle_('')

Callers 4

_connectMethod · 0.95
_disconnectMethod · 0.95
save_serversMethod · 0.95
awakeFromNibMethod · 0.95

Calls 8

hostMethod · 0.80
titleMethod · 0.80
wantConnectMethod · 0.80
connectedMethod · 0.80
netsMethod · 0.80
autoNetsMethod · 0.80
errorMethod · 0.80
setTitle_Method · 0.80

Tested by

no test coverage detected