summaryrefslogtreecommitdiff
path: root/qutebrowser/mainwindow/statusbar/bar.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/mainwindow/statusbar/bar.py')
-rw-r--r--qutebrowser/mainwindow/statusbar/bar.py28
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):