How to use the qutebrowser.utils.objreg function in qutebrowser

To help you get started, we’ve selected a few qutebrowser examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github qutebrowser / qutebrowser / tests / unit / misc / test_sessions.py View on Github external
@pytest.fixture
def fake_window(tabbed_browser_stubs):
    """Fixture which provides a fake main windows with a tabbedbrowser."""
    win0 = FakeMainWindow(b'fake-geometry-0', win_id=0)
    objreg.register('main-window', win0, scope='window', window=0)
    yield
    objreg.delete('main-window', scope='window', window=0)
github qutebrowser / qutebrowser / tests / unit / misc / test_cmdhistory.py View on Github external
def init_patch():
    yield
    objreg.delete('command-history')
github qutebrowser / qutebrowser / qutebrowser / mainwindow / statusbar / prompt.py View on Github external
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))
github qutebrowser / qutebrowser / qutebrowser / mainwindow / statusbar / prompter.py View on Github external
def _restore_ctx(self, ctx):
        """Restore state from a PromptContext.

        Args:
            ctx: A PromptContext previously saved by _get_ctx, or None.

        Return: True if a context was restored, False otherwise.
        """
        log.statusbar.debug("Restoring context {}".format(ctx))
        if ctx is None:
            self.hide_prompt.emit()
            self._busy = False
            return False
        self._question = ctx.question
        prompt = objreg.get('prompt', scope='window', window=self._win_id)
        prompt.txt.setText(ctx.text)
        prompt.lineedit.setText(ctx.input_text)
        prompt.lineedit.setEchoMode(ctx.echo_mode)
        prompt.lineedit.setVisible(ctx.input_visible)
        self.show_prompt.emit()
        mode = self.KEY_MODES[ctx.question.mode]
        ctx.question.aborted.connect(
            lambda: modeman.maybe_leave(self._win_id, mode, 'aborted'))
        modeman.enter(self._win_id, mode, 'question asked')
        return True
github qutebrowser / qutebrowser / qutebrowser / browser / downloadview.py View on Github external
def __init__(self, win_id, parent=None):
        super().__init__(parent)
        self.setStyle(QStyleFactory.create('Fusion'))
        config.set_register_stylesheet(self)
        self.setResizeMode(QListView.Adjust)
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed)
        self.setFocusPolicy(Qt.NoFocus)
        self.setFlow(QListView.LeftToRight)
        self.setSpacing(1)
        self._menu = None
        model = objreg.get('download-model', scope='window', window=win_id)
        model.rowsInserted.connect(lambda:
                                   QTimer.singleShot(0, self.updateGeometry))
        model.rowsRemoved.connect(lambda:
                                  QTimer.singleShot(0, self.updateGeometry))
        model.dataChanged.connect(lambda:
                                  QTimer.singleShot(0, self.updateGeometry))
        self.setModel(model)
        self.setWrapping(True)
        self.setContextMenuPolicy(Qt.CustomContextMenu)
        self.customContextMenuRequested.connect(self.show_context_menu)
        self.clicked.connect(self.on_clicked)
github qutebrowser / qutebrowser / qutebrowser / browser / browsertab.py View on Github external
def __init__(self, *, win_id: int, private: bool,
                 parent: QWidget = None) -> None:
        self.is_private = private
        self.win_id = win_id
        self.tab_id = next(tab_id_gen)
        super().__init__(parent)

        self.registry = objreg.ObjectRegistry()
        tab_registry = objreg.get('tab-registry', scope='window',
                                  window=win_id)
        tab_registry[self.tab_id] = self
        objreg.register('tab', self, registry=self.registry)

        self.data = TabData()
        self._layout = miscwidgets.WrapperLayout(self)
        self._widget = None  # type: typing.Optional[QWidget]
        self._progress = 0
        self._has_ssl_errors = False
        self._load_status = usertypes.LoadStatus.none
        self._mouse_event_filter = mouse.MouseEventFilter(
            self, parent=self)
        self.backend = None

        # FIXME:qtwebengine  Should this be public api via self.hints?
        #                    Also, should we get it out of objreg?
        hintmanager = hints.HintManager(win_id, self.tab_id, parent=self)
        objreg.register('hintmanager', hintmanager, scope='tab',
                        window=self.win_id, tab=self.tab_id)
github qutebrowser / qutebrowser / qutebrowser / browser / webengine / webenginetab.py View on Github external
def show_source(self, pygments=False):
        if pygments:
            self._show_source_pygments()
            return

        try:
            self._widget.triggerPageAction(QWebEnginePage.ViewSource)
        except AttributeError:
            # Qt < 5.8
            tb = objreg.get('tabbed-browser', scope='window',
                            window=self._tab.win_id)
            urlstr = self._tab.url().toString(
                QUrl.RemoveUserInfo)  # type: ignore
            # The original URL becomes the path of a view-source: URL
            # (without a host), but query/fragment should stay.
            url = QUrl('view-source:' + urlstr)
            tb.tabopen(url, background=False, related=True)
github qutebrowser / qutebrowser / qutebrowser / app.py View on Github external
"""Handle a key press/release event.

        Args:
            event: The QEvent which is about to be delivered.

        Return:
            True if the event should be filtered, False if it's passed through.
        """
        if q_app.activeWindow() not in objreg.window_registry.values():
            # Some other window (print dialog, etc.) is focused so we pass the
            # event through.
            return False
        try:
            man = modeman.instance('current')
            return man.handle_event(event)
        except objreg.RegistryUnavailableError:
            # No window available yet, or not a MainWindow
            return False
github qutebrowser / qutebrowser / qutebrowser / extensions / loader.py View on Github external
def _get_init_context() -> InitContext:
    """Get an InitContext object."""
    return InitContext(data_dir=pathlib.Path(standarddir.data()),
                       config_dir=pathlib.Path(standarddir.config()),
                       args=objreg.get('args'))
github qutebrowser / qutebrowser / qutebrowser / commands / command.py View on Github external
Arguments:
            win_id: The window id this command should be executed in.
            param: The count parameter.
            args: The positional argument list. Gets modified directly.
        """
        assert param.kind == inspect.Parameter.POSITIONAL_OR_KEYWORD
        if self._scope == 'global':
            tab_id = None
            win_id = None
        elif self._scope == 'tab':
            tab_id = 'current'
        elif self._scope == 'window':
            tab_id = None
        else:
            raise ValueError("Invalid scope {}!".format(self._scope))
        obj = objreg.get(self._instance, scope=self._scope, window=win_id,
                         tab=tab_id)
        args.append(obj)