diff options
Diffstat (limited to 'qutebrowser/mainwindow/statusbar/bar.py')
-rw-r--r-- | qutebrowser/mainwindow/statusbar/bar.py | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/qutebrowser/mainwindow/statusbar/bar.py b/qutebrowser/mainwindow/statusbar/bar.py index 0f6cd9fbc..8bad290be 100644 --- a/qutebrowser/mainwindow/statusbar/bar.py +++ b/qutebrowser/mainwindow/statusbar/bar.py @@ -200,6 +200,7 @@ class StatusBar(QWidget): self.tabindex = tabindex.TabIndex() self.keystring = keystring.KeyString() self.prog = progress.Progress(self) + self._text_widgets = [] self._draw_widgets() config.instance.changed.connect(self._on_config_changed) @@ -219,13 +220,7 @@ class StatusBar(QWidget): def _draw_widgets(self): """Draw statusbar widgets.""" - # Start with widgets hidden and show them when needed - for widget in [self.url, self.percentage, - self.backforward, self.tabindex, - self.keystring, self.prog]: - assert isinstance(widget, QWidget) - widget.hide() - self._hbox.removeWidget(widget) + self._clear_widgets() tab = self._current_tab() @@ -257,6 +252,25 @@ class StatusBar(QWidget): self.prog.enabled = True if tab: self.prog.on_tab_changed(tab) + elif segment.startswith('text:'): + cur_widget = textbase.TextBase() + self._text_widgets.append(cur_widget) + cur_widget.setText(segment.split(':', maxsplit=1)[1]) + self._hbox.addWidget(cur_widget) + cur_widget.show() + else: + raise utils.Unreachable(segment) + + def _clear_widgets(self): + """Clear widgets before redrawing them.""" + # Start with widgets hidden and show them when needed + for widget in [self.url, self.percentage, + self.backforward, self.tabindex, + self.keystring, self.prog, *self._text_widgets]: + assert isinstance(widget, QWidget) + widget.hide() + self._hbox.removeWidget(widget) + self._text_widgets.clear() @pyqtSlot() def maybe_hide(self): |