NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

handler.py (2235B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\links\handler.py
      2 from eve.client.script.ui.shared.mapView.links.const import SCHEME_FILTER
      3 from eve.client.script.ui.shared.maps.mapcommon import STARMODE_MILITIA, STARMODE_PLANETTYPE, STARMODE_SECURITY
      4 
      5 def register_map_link_handler(registry):
      6     registry.register(scheme=SCHEME_FILTER, handler=handle_map_filter_link, hint=None)
      7 
      8 
      9 def handle_map_filter_link(url):
     10     filter_id, args = parse_map_link(url)
     11     filter_id = int(filter_id)
     12     if filter_id in CUSTOM_FILTER_HANDLERS:
     13         CUSTOM_FILTER_HANDLERS[filter_id](filter_id, *args)
     14     else:
     15         _open_filter(filter_id, *args)
     16 
     17 
     18 def parse_map_link(url):
     19     split = url[url.index(':') + 1:].split('//')
     20     filter_id = split[0]
     21     args = split[1:] if len(split) > 1 else []
     22     return (filter_id, args)
     23 
     24 
     25 def _open_security_filter(filter_id, *args):
     26     from eve.client.script.ui.shared.mapView.mapViewPanel import MapViewPanel
     27     from eve.client.script.ui.shared.mapView.sidePanel.widgets.system_security.controller import get_system_security_filter_controller
     28     selected_security_tier = args[0] if args else None
     29     if selected_security_tier:
     30         security_controller = get_system_security_filter_controller()
     31         security_controller.set_security_level_override(selected_security_tier)
     32     wnd = MapViewPanel.GetIfOpen()
     33     if wnd:
     34         wnd.SetMapFilter(filter_id, updateFocus=False)
     35         if wnd.IsMinimized():
     36             wnd.Maximize()
     37     else:
     38         MapViewPanel.Open(starColorMode=filter_id)
     39 
     40 
     41 CUSTOM_FILTER_HANDLERS = {STARMODE_SECURITY: _open_security_filter}
     42 COMBINED_STARMODE_IDS = [STARMODE_MILITIA, STARMODE_PLANETTYPE]
     43 
     44 def _open_filter(filter_id, *args):
     45     from eve.client.script.ui.shared.mapView.mapViewPanel import MapViewPanel
     46     item_id = None
     47     if filter_id in COMBINED_STARMODE_IDS:
     48         item_id = int(args[0]) if args else None
     49     if item_id:
     50         filter_id = (filter_id, item_id)
     51     wnd = MapViewPanel.GetIfOpen()
     52     if wnd:
     53         wnd.SetMapFilter(filter_id, updateFocus=False)
     54         if wnd.IsMinimized():
     55             wnd.Maximize()
     56     else:
     57         MapViewPanel.Open(starColorMode=filter_id)