spinner: pass the app to the spinners, to make the screen redraw

This commit is contained in:
Olivier Gayot 2024-03-18 23:54:48 +01:00
parent 592714279c
commit 144a2adf49
11 changed files with 16 additions and 15 deletions

View File

@ -86,7 +86,7 @@ class DriversView(BaseView):
def make_waiting(self, install: bool) -> None:
"""Change the view into a spinner and start waiting for drivers
asynchronously."""
self.spinner = Spinner(style="dots")
self.spinner = Spinner(style="dots", app=self.controller.app)
self.spinner.start()
if self.local_only:

View File

@ -215,7 +215,7 @@ class ErrorReportStretchy(Stretchy):
for n, b in self.btns.items():
self.btns[n] = Padding(b, width=w, align="center")
self.spinner = Spinner(style="dots")
self.spinner = Spinner(style="dots", app=app)
self.pile = Pile([])
self.pile.contents[:] = [
(w, self.pile.options("pack")) for w in self._pile_elements()

View File

@ -30,7 +30,7 @@ class SlowProbing(BaseView):
def __init__(self, controller):
self.controller = controller
self.spinner = Spinner(style="dots")
self.spinner = Spinner(style="dots", app=self.controller.app)
self.spinner.start()
super().__init__(
screen(

View File

@ -90,7 +90,7 @@ class ProgressView(BaseView):
def event_start(self, context_id, context_parent_id, message):
self.event_finish(context_parent_id)
walker = self.event_listbox.base_widget.body
spinner = Spinner()
spinner = Spinner(app=self.controller.app)
spinner.start()
new_line = Columns(
[

View File

@ -112,7 +112,7 @@ class MirrorView(BaseView):
connect_signal(self.form, "cancel", self.cancel)
self.status_text = Text("")
self.status_spinner = Spinner()
self.status_spinner = Spinner(app=self.controller.app)
self.status_wrap = WidgetWrap(self.status_text)
self.output_text = Text("")
self.output_box = LineBox(ListBox([self.output_text]))

View File

@ -54,9 +54,10 @@ class TaskProgressBar(ProgressBar):
class TaskProgress(WidgetWrap):
def __init__(self):
def __init__(self, app):
self.app = app
self.mode = "spinning"
self.spinner = Spinner()
self.spinner = Spinner(app=app)
self.label = Text("", wrap="clip")
cols = Color.progress_incomplete(
Columns(
@ -129,7 +130,7 @@ class RefreshView(BaseView):
def __init__(self, controller):
self.controller = controller
self.check_task = None
self.spinner = Spinner(style="dots")
self.spinner = Spinner(style="dots", app=self.controller.app)
if self.controller.status.availability == RefreshCheckState.UNKNOWN:
self.check_state_checking()
@ -295,7 +296,7 @@ class RefreshView(BaseView):
del self.task_to_bar[tid]
if task.status == TaskStatus.DOING:
if tid not in self.task_to_bar:
self.task_to_bar[tid] = bar = TaskProgress()
self.task_to_bar[tid] = bar = TaskProgress(app=self.controller.app)
self.lb_tasks.base_widget.body.append(bar)
else:
bar = self.task_to_bar[tid]

View File

@ -388,7 +388,7 @@ class SnapListView(BaseView):
await self._wait_load(spinner)
self.request_redraw_if_visible()
spinner = Spinner(style="dots")
spinner = Spinner(style="dots", app=self.controller.app)
spinner.start()
self._w = screen(
[spinner],

View File

@ -179,7 +179,7 @@ class SSHForm(Form):
class FetchingSSHKeys(WidgetWrap):
def __init__(self, parent):
self.parent = parent
self.spinner = Spinner(style="dots")
self.spinner = Spinner(style="dots", app=self.parent.controller.app)
self.spinner.start()
text = _("Fetching SSH keys...")
button = cancel_btn(label=_("Cancel"), on_press=self.cancel)

View File

@ -245,7 +245,7 @@ class CheckingContractToken(WidgetWrap):
def __init__(self, parent: BaseView):
"""Initializes the loading animation widget."""
self.parent = parent
spinner = Spinner(style="dots")
spinner = Spinner(style="dots", app=self.parent.controller.app)
spinner.start()
text = _("Checking Ubuntu Pro subscription...")
button = cancel_btn(label=_("Cancel"), on_press=self.cancel)

View File

@ -357,7 +357,7 @@ class SomethingFailed(Stretchy):
class LoadingDialog(WidgetWrap):
def __init__(self, parent, msg, task_to_cancel):
self.parent = parent
self.spinner = Spinner(style="dots")
self.spinner = Spinner(style="dots", app=parent)
self.spinner.start()
self.closed = False
# | text |

View File

@ -66,7 +66,7 @@ class NetworkDeviceTable(WidgetWrap):
def __init__(self, parent, dev_info):
self.parent = parent
self.dev_info = dev_info
self.dhcp_spinner = Spinner(align="left")
self.dhcp_spinner = Spinner(align="left", app=self.parent.controller.app)
self.dhcp_spinner.rate = 0.3
super().__init__(self._create())
@ -301,7 +301,7 @@ class NetworkView(BaseView):
self.wlan_support_install_state_showing = False
self.error_showing = False
self.apply_spinner = Spinner()
self.apply_spinner = Spinner(app=self.controller.app)
self.update_for_wlan_support_install_state(wlan_support_install_state)