This commit fixes #19 and #2

All long labels have been removed as the bridge list interface and
discovery interface was reworked. Discovery of new lights happens
automatically and bridges are refereshed when changes happen.
master
Micke Nordin 3 年之前
父節點 43657440a3
當前提交 816f9e6dab
簽署人: micke
GPG Key ID: 014B273D614BE877

@ -55,25 +55,25 @@ class Hui(wx.Frame):
"""Add bridges to sizer, the entry point of the program
"""
self.SetTitle('Tinge - All Bridges')
one_unreachable: bool = False
all_unreachable: bool = True
no_bridges: bool = True
if self.m_tinge.get_bridges():
no_bridges = False
for bridge in self.m_tinge.get_bridges():
if bridge.is_reachable():
bridge.refresh_bridge()
all_unreachable = False
btn: wx.Button = wx.Button(self.pnl, label=str(bridge))
self.sizer.Add(btn, 0, wx.EXPAND)
self.Bind(wx.EVT_BUTTON,
lambda event, mbridge=bridge: self.goto_bridge(mbridge), btn)
else:
one_unreachable = True
if one_unreachable or no_bridges:
if one_unreachable:
warn_label = "{} At least one previously discovered bridge unreachable.".format(self.m_unreachable_icon)
warning: wx.StaticText = wx.StaticText(self.pnl, label=warn_label, style=wx.ALIGN_CENTER)
self.sizer.Add(warning, 0, wx.EXPAND)
label = "Press Hue Bridge button, and then here within 30 seconds to connect"
label = "{} {} ({})".format(self.m_unreachable_icon, str(bridge), "unreachable")
btn: wx.Button = wx.Button(self.pnl, label=label)
self.sizer.Add(btn, 0, wx.EXPAND)
if no_bridges or all_unreachable:
label = "Discover bridge"
btn: wx.Button = wx.Button(self.pnl, label=label)
self.sizer.Add(btn, 0, wx.EXPAND)
self.Bind(wx.EVT_BUTTON,
@ -113,7 +113,8 @@ class Hui(wx.Frame):
lambda event, mgroupid=groupid: self.goto_group(mgroupid), group_btn)
self.sizer.Add(inner_sizer, 0, wx.EXPAND)
if has_unattached:
unattached_label: wx.StaticText = wx.StaticText(self.pnl, label=" ⚬ Unattached lights ⚬ ", style=wx.ALIGN_CENTER)
unattached_label: wx.StaticText = wx.StaticText(self.pnl, label=" ⚬ Unattached lights ⚬ ",
style=wx.ALIGN_CENTER)
self.sizer.Add(unattached_label, 0, wx.EXPAND)
for light in self.cur_bridge.unattached_lights:
inner_sizer = wx.BoxSizer(orient=wx.HORIZONTAL)

@ -23,28 +23,32 @@ class HueBridge:
self.m_ipaddress: str = ipaddress
self.m_username: str = username
self.m_is_reachable = is_reachable
self.unattached_lights: list[HueLight] = list()
if name:
self.m_name: str = name
else:
self.m_name = self.m_ipaddress
if is_reachable:
self.m_lights: list[HueLight] = self.discover_lights()
self.discover_new_lights()
self.m_new_lights: list[HueLight] = self.get_new_lights()
self.unattached_lights: list[HueLight] = list()
self.m_groups: list[HueGroup] = self.discover_groups()
for light in self.get_lights():
is_in_group: bool = False
for group in self.get_groups():
if group.is_light_in_group(light.get_id()):
is_in_group = True
if not is_in_group:
self.unattached_lights.append(light)
self.refresh_bridge()
else:
self.m_lights: list[HueLight] = list()
self.m_new_lights: list[HueLight] = list()
self.m_groups: list[HueGroup] = list()
def refresh_bridge(self):
self.m_lights: list[HueLight] = self.discover_lights()
self.discover_new_lights()
self.m_new_lights: list[HueLight] = self.get_new_lights()
self.m_groups: list[HueGroup] = self.discover_groups()
self.unattached_lights: list[HueLight] = list()
for light in self.get_lights():
is_in_group: bool = False
for group in self.get_groups():
if group.is_light_in_group(light.get_id()):
is_in_group = True
if not is_in_group:
self.unattached_lights.append(light)
def __str__(self) -> str:
"""The string representation of this bridge

Loading…
取消
儲存