From 144a2adf49d05682b22126e588cec228656f6571 Mon Sep 17 00:00:00 2001 From: Olivier Gayot Date: Mon, 18 Mar 2024 23:54:48 +0100 Subject: [PATCH] spinner: pass the app to the spinners, to make the screen redraw --- subiquity/ui/views/drivers.py | 2 +- subiquity/ui/views/error.py | 2 +- subiquity/ui/views/filesystem/probing.py | 2 +- subiquity/ui/views/installprogress.py | 2 +- subiquity/ui/views/mirror.py | 2 +- subiquity/ui/views/refresh.py | 9 +++++---- subiquity/ui/views/snaplist.py | 2 +- subiquity/ui/views/ssh.py | 2 +- subiquity/ui/views/ubuntu_pro.py | 2 +- subiquitycore/ui/utils.py | 2 +- subiquitycore/ui/views/network.py | 4 ++-- 11 files changed, 16 insertions(+), 15 deletions(-) diff --git a/subiquity/ui/views/drivers.py b/subiquity/ui/views/drivers.py index fa150b79..a1696838 100644 --- a/subiquity/ui/views/drivers.py +++ b/subiquity/ui/views/drivers.py @@ -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: diff --git a/subiquity/ui/views/error.py b/subiquity/ui/views/error.py index 2eb30700..7105dbc8 100644 --- a/subiquity/ui/views/error.py +++ b/subiquity/ui/views/error.py @@ -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() diff --git a/subiquity/ui/views/filesystem/probing.py b/subiquity/ui/views/filesystem/probing.py index 3a6203cc..8c597e9a 100644 --- a/subiquity/ui/views/filesystem/probing.py +++ b/subiquity/ui/views/filesystem/probing.py @@ -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( diff --git a/subiquity/ui/views/installprogress.py b/subiquity/ui/views/installprogress.py index 9a9e3ff9..334c9970 100644 --- a/subiquity/ui/views/installprogress.py +++ b/subiquity/ui/views/installprogress.py @@ -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( [ diff --git a/subiquity/ui/views/mirror.py b/subiquity/ui/views/mirror.py index 1ee84ca8..313272ce 100644 --- a/subiquity/ui/views/mirror.py +++ b/subiquity/ui/views/mirror.py @@ -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])) diff --git a/subiquity/ui/views/refresh.py b/subiquity/ui/views/refresh.py index ca7462d3..633e8b01 100644 --- a/subiquity/ui/views/refresh.py +++ b/subiquity/ui/views/refresh.py @@ -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] diff --git a/subiquity/ui/views/snaplist.py b/subiquity/ui/views/snaplist.py index f9fc11e1..5c5ddba7 100644 --- a/subiquity/ui/views/snaplist.py +++ b/subiquity/ui/views/snaplist.py @@ -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], diff --git a/subiquity/ui/views/ssh.py b/subiquity/ui/views/ssh.py index 87c50582..57628429 100644 --- a/subiquity/ui/views/ssh.py +++ b/subiquity/ui/views/ssh.py @@ -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) diff --git a/subiquity/ui/views/ubuntu_pro.py b/subiquity/ui/views/ubuntu_pro.py index 84ea2459..cf1ca6a4 100644 --- a/subiquity/ui/views/ubuntu_pro.py +++ b/subiquity/ui/views/ubuntu_pro.py @@ -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) diff --git a/subiquitycore/ui/utils.py b/subiquitycore/ui/utils.py index d589eac7..30381a80 100644 --- a/subiquitycore/ui/utils.py +++ b/subiquitycore/ui/utils.py @@ -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 | diff --git a/subiquitycore/ui/views/network.py b/subiquitycore/ui/views/network.py index 0832c8ff..8a3ea0aa 100644 --- a/subiquitycore/ui/views/network.py +++ b/subiquitycore/ui/views/network.py @@ -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)