Skip to content

Commit

Permalink
Move Progress' enable/disable logic to separate class
Browse files Browse the repository at this point in the history
  • Loading branch information
pylbrecht committed Jul 6, 2024
1 parent a25bf7a commit 37cef07
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 9 deletions.
4 changes: 2 additions & 2 deletions qutebrowser/mainwindow/mainwindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -518,9 +518,9 @@ def _connect_signals(self):
self.status.on_tab_changed)

self.tabbed_browser.cur_progress.connect(
self.status.prog.on_load_progress)
self.status.prog.widget.on_load_progress)
self.tabbed_browser.cur_load_started.connect(
self.status.prog.on_load_started)
self.status.prog.widget.on_load_started)

self.tabbed_browser.cur_scroll_perc_changed.connect(
self.status.percentage.set_perc)
Expand Down
11 changes: 6 additions & 5 deletions qutebrowser/mainwindow/statusbar/bar.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ def __init__(self, *, win_id, private, parent=None):
self.backforward = backforward.Backforward(widget=backforward.BackforwardWidget())
self.tabindex = tabindex.TabIndex()
self.keystring = keystring.KeyString()
self.prog = progress.Progress(self)
self.prog = progress.Progress(widget=progress.ProgressWidget(self))
self.clock = clock.Clock()
self._text_widgets = []
self._draw_widgets()
Expand Down Expand Up @@ -245,7 +245,8 @@ def _draw_widgets(self):

# FIXME(pylbrecht): temporary workaround until we have StatusBarItem
# instances for all widgets.
if isinstance(widget, (url.UrlText, backforward.Backforward)):
if isinstance(widget, (url.UrlText, backforward.Backforward,
progress.Progress)):
widget = widget.widget

self._hbox.addWidget(widget)
Expand Down Expand Up @@ -276,9 +277,9 @@ def _clear_widgets(self):
# Start with widgets hidden and show them when needed
for widget in [self.url.widget, self.percentage,
self.backforward.widget, self.tabindex,
self.keystring, self.prog, self.clock, *self._text_widgets]:
self.keystring, self.prog.widget, self.clock, *self._text_widgets]:
assert isinstance(widget, QWidget)
if widget in [self.prog, self.backforward.widget]:
if widget in [self.prog.widget, self.backforward.widget]:
widget.enabled = False # type: ignore[attr-defined]
widget.hide()
self._hbox.removeWidget(widget)
Expand Down Expand Up @@ -423,7 +424,7 @@ def on_mode_left(self, old_mode, new_mode):
def on_tab_changed(self, tab):
"""Notify sub-widgets when the tab has been changed."""
self.url.widget.on_tab_changed(tab)
self.prog.on_tab_changed(tab)
self.prog.widget.on_tab_changed(tab)
self.percentage.on_tab_changed(tab)
self.backforward.widget.on_tab_changed(tab)
self.maybe_hide()
Expand Down
13 changes: 12 additions & 1 deletion qutebrowser/mainwindow/statusbar/progress.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from qutebrowser.utils import utils, usertypes


class Progress(QProgressBar):
class ProgressWidget(QProgressBar):

"""The progress bar part of the status bar."""

Expand Down Expand Up @@ -74,3 +74,14 @@ def sizeHint(self):

def minimumSizeHint(self):
return self.sizeHint()


class Progress:
def __init__(self, widget: ProgressWidget):
self.widget = widget

def enable(self):
self.widget.enabled = True

def disable(self):
self.widget.enabled = False
2 changes: 1 addition & 1 deletion tests/unit/mainwindow/statusbar/test_progress.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
@pytest.fixture
def progress_widget(qtbot, config_stub):
"""Create a Progress widget and checks its initial state."""
widget = progress.Progress()
widget = progress.ProgressWidget()
widget.enabled = True
qtbot.add_widget(widget)
assert not widget.isVisible()
Expand Down

0 comments on commit 37cef07

Please sign in to comment.