def __init__(self, win_id, parent=None): super().__init__(parent) objreg.register('prompt', self, scope='window', window=win_id) self._hbox = QHBoxLayout(self) self._hbox.setContentsMargins(0, 0, 0, 0) self._hbox.setSpacing(5) self.txt = textbase.TextBase() self._hbox.addWidget(self.txt) self.lineedit = PromptLineEdit() self.lineedit.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) self._hbox.addWidget(self.lineedit) prompter_obj = prompter.Prompter(win_id) objreg.register('prompter', prompter_obj, scope='window', window=win_id) self.destroyed.connect( functools.partial(objreg.delete, 'prompter', scope='window', window=win_id))
def _get_widget_from_config(self, key): """Return the widget that fits with config string key.""" if key == 'url': return self.url elif key == 'scroll': return self.percentage elif key == 'scroll_raw': return self.percentage elif key == 'history': return self.backforward elif key == 'tabs': return self.tabindex elif key == 'keypress': return self.keystring elif key == 'progress': return self.prog elif key == 'search_match': return self.search_match elif key.startswith('text:'): new_text_widget = textbase.TextBase() self._text_widgets.append(new_text_widget) return new_text_widget elif key.startswith('clock:') or key == 'clock': return self.clock else: raise utils.Unreachable(key)
def __init__(self, *, win_id, private, parent=None): super().__init__(parent) self.setObjectName(self.__class__.__name__) self.setAttribute(Qt.WA_StyledBackground) stylesheet.set_register(self) self.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Fixed) self._win_id = win_id self._color_flags = ColorFlags() self._color_flags.private = private self._hbox = QHBoxLayout(self) self._set_hbox_padding() self._hbox.setSpacing(5) self._stack = QStackedLayout() self._hbox.addLayout(self._stack) self._stack.setContentsMargins(0, 0, 0, 0) self.cmd = command.Command(private=private, win_id=win_id) self._stack.addWidget(self.cmd) objreg.register('status-command', self.cmd, scope='window', window=win_id) self.txt = textbase.TextBase() self._stack.addWidget(self.txt) self.cmd.show_cmd.connect(self._show_cmd_widget) self.cmd.hide_cmd.connect(self._hide_cmd_widget) self._hide_cmd_widget() self.url = url.UrlText() self.percentage = percentage.Percentage() self.backforward = backforward.Backforward() self.tabindex = tabindex.TabIndex() self.keystring = keystring.KeyString() self.prog = progress.Progress(self) self.clock = clock.Clock() self._text_widgets = [] self._draw_widgets() config.instance.changed.connect(self._on_config_changed) QTimer.singleShot(0, self.maybe_hide)
def _draw_widgets(self): """Draw statusbar widgets.""" self._clear_widgets() tab = self._current_tab() # Read the list and set widgets accordingly for segment in config.val.statusbar.widgets: if segment == 'url': self._hbox.addWidget(self.url) self.url.show() elif segment == 'scroll': self._hbox.addWidget(self.percentage) self.percentage.show() elif segment == 'scroll_raw': self._hbox.addWidget(self.percentage) self.percentage.set_raw() self.percentage.show() elif segment == 'history': self._hbox.addWidget(self.backforward) self.backforward.enabled = True if tab: self.backforward.on_tab_changed(tab) elif segment == 'tabs': self._hbox.addWidget(self.tabindex) self.tabindex.show() elif segment == 'keypress': self._hbox.addWidget(self.keystring) self.keystring.show() elif segment == 'progress': self._hbox.addWidget(self.prog) 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)