[modules] remove setting widgets via "self.widgets(new list)"
use self.add_widget() for all modules
This commit is contained in:
parent
85ac953111
commit
99e3571eee
17 changed files with 52 additions and 121 deletions
|
@ -12,7 +12,6 @@ import os
|
|||
import pygit2
|
||||
|
||||
import core.module
|
||||
import core.widget
|
||||
|
||||
import util.cli
|
||||
|
||||
|
@ -28,15 +27,13 @@ class Module(core.module.Module):
|
|||
|
||||
def update(self):
|
||||
state = {}
|
||||
new_widgets = []
|
||||
self.clear_widgets()
|
||||
try:
|
||||
directory = util.cli.execute("xcwd").strip()
|
||||
directory = self.__get_git_root(directory)
|
||||
repo = pygit2.Repository(directory)
|
||||
|
||||
new_widgets.append(
|
||||
core.widget.Widget(name="git.main", full_text=repo.head.shorthand)
|
||||
)
|
||||
self.add_widget(name="git.main", full_text=repo.head.shorthand)
|
||||
|
||||
for filepath, flags in repo.status().items():
|
||||
if (
|
||||
|
@ -56,14 +53,12 @@ class Module(core.module.Module):
|
|||
state["modified"] = True
|
||||
self.__error = False
|
||||
if "new" in state:
|
||||
new_widgets.append(core.widget.Widget(name="git.new"))
|
||||
self.add_widget(name="git.new")
|
||||
if "modified" in state:
|
||||
new_widgets.append(core.widget.Widget(name="git.modified"))
|
||||
self.add_widget(name="git.modified")
|
||||
if "deleted" in state:
|
||||
new_widgets.append(core.widget.Widget(name="git.deleted"))
|
||||
self.add_widget(name="git.deleted")
|
||||
|
||||
self.widgets().clear()
|
||||
self.widget(new_widgets)
|
||||
|
||||
except Exception as e:
|
||||
self.__error = True
|
||||
|
|
|
@ -16,7 +16,6 @@ import shutil
|
|||
import netifaces
|
||||
import subprocess
|
||||
|
||||
import core.widget
|
||||
import core.module
|
||||
import core.decorators
|
||||
import util.cli
|
||||
|
@ -87,14 +86,12 @@ class Module(core.module.Module):
|
|||
return retval
|
||||
|
||||
def _update_widgets(self, widgets):
|
||||
self.clear_widgets()
|
||||
interfaces = [
|
||||
i for i in netifaces.interfaces() if not i.startswith(self._exclude)
|
||||
]
|
||||
interfaces.extend([i for i in netifaces.interfaces() if i in self._include])
|
||||
|
||||
for widget in widgets:
|
||||
widget.set("visited", False)
|
||||
|
||||
for intf in interfaces:
|
||||
addr = []
|
||||
state = "down"
|
||||
|
@ -112,8 +109,7 @@ class Module(core.module.Module):
|
|||
|
||||
widget = self.widget(intf)
|
||||
if not widget:
|
||||
widget = core.widget.Widget(name=intf, module=self)
|
||||
widgets.append(widget)
|
||||
widget = self.add_widget(name=intf)
|
||||
# join/split is used to get rid of multiple whitespaces (in case SSID is not available, for instance
|
||||
widget.full_text(
|
||||
" ".join(
|
||||
|
@ -127,11 +123,6 @@ class Module(core.module.Module):
|
|||
)
|
||||
widget.set("intf", intf)
|
||||
widget.set("state", state)
|
||||
widget.set("visited", True)
|
||||
|
||||
for widget in widgets:
|
||||
if widget.get("visited") is False:
|
||||
widgets.remove(widget)
|
||||
|
||||
def get_ssid(self, intf):
|
||||
if self._iswlan(intf) and self.iwgetid:
|
||||
|
|
|
@ -21,7 +21,6 @@ import re
|
|||
import sys
|
||||
|
||||
import core.module
|
||||
import core.widget
|
||||
import core.input
|
||||
import core.decorators
|
||||
|
||||
|
@ -52,7 +51,7 @@ class Module(core.module.Module):
|
|||
self._needs_update = True
|
||||
|
||||
def update(self):
|
||||
new_widgets = []
|
||||
self.clear_widgets()
|
||||
|
||||
if self._autoupdate == False and self._needs_update == False:
|
||||
return
|
||||
|
@ -67,22 +66,18 @@ class Module(core.module.Module):
|
|||
|
||||
widget = self.widget(display)
|
||||
if not widget:
|
||||
widget = core.widget.Widget(
|
||||
full_text=display, name=display, module=self
|
||||
widget = self.add_widget(
|
||||
full_text=display, name=display
|
||||
)
|
||||
core.input.register(widget, button=1, cmd=self._toggle)
|
||||
core.input.register(widget, button=3, cmd=self._toggle)
|
||||
new_widgets.append(widget)
|
||||
widget.set("state", "on" if m else "off")
|
||||
widget.set("pos", int(m.group(1)) if m else sys.maxsize)
|
||||
|
||||
self.widgets(new_widgets)
|
||||
|
||||
if self._autoupdate == False:
|
||||
widget = core.widget.Widget(full_text="", module=self)
|
||||
widget = self.add_widget(full_text="")
|
||||
widget.set("state", "refresh")
|
||||
core.input.register(widget, button=1, cmd=self._refresh)
|
||||
self.widgets().append(widget)
|
||||
|
||||
def state(self, widget):
|
||||
return widget.get("state", "off")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue