This commit is contained in:
Florian Bruhin 2014-09-28 22:23:37 +02:00
parent fb6cb62f93
commit dc7b32e460
9 changed files with 24 additions and 22 deletions

View File

@ -32,19 +32,18 @@ import functools
import traceback import traceback
from PyQt5.QtWidgets import QApplication, QDialog from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.QtCore import (pyqtSlot, QTimer, QEventLoop, Qt, QStandardPaths, from PyQt5.QtCore import (pyqtSlot, QTimer, QEventLoop, QStandardPaths,
qInstallMessageHandler, QObject, QUrl) qInstallMessageHandler, QObject, QUrl)
import qutebrowser import qutebrowser
from qutebrowser.commands import runners, cmdutils from qutebrowser.commands import cmdutils
from qutebrowser.config import style, config, websettings from qutebrowser.config import style, config, websettings
from qutebrowser.network import qutescheme, proxy from qutebrowser.network import qutescheme, proxy
from qutebrowser.browser import quickmarks, cookies, downloads, cache from qutebrowser.browser import quickmarks, cookies, downloads, cache
from qutebrowser.widgets import mainwindow, console, crash from qutebrowser.widgets import mainwindow, console, crash
from qutebrowser.keyinput import modeman from qutebrowser.keyinput import modeman
from qutebrowser.utils import (log, version, message, utilcmds, readline, from qutebrowser.utils import (log, version, message, readline, utils, qtutils,
utils, qtutils, urlutils, debug, objreg, urlutils, debug, objreg, usertypes)
usertypes)
class Application(QApplication): class Application(QApplication):

View File

@ -836,17 +836,17 @@ class CommandDispatcher:
try: try:
timer.setInterval(ms) timer.setInterval(ms)
except OverflowError: except OverflowError:
raise cmdexc.CommandError("Numeric argument is too large for internal " raise cmdexc.CommandError("Numeric argument is too large for "
"int representation.") "internal int representation.")
self._timers.append(timer) self._timers.append(timer)
cmdline = ' '.join(command) cmdline = ' '.join(command)
commandrunner = objreg.get('command-runner', scope='window', commandrunner = objreg.get('command-runner', scope='window',
window=self._win_id) window=self._win_id)
timer.timeout.connect(functools.partial(commandrunner.run_safely, cmdline)) timer.timeout.connect(
functools.partial(commandrunner.run_safely, cmdline))
timer.timeout.connect(lambda: self._timers.remove(timer)) timer.timeout.connect(lambda: self._timers.remove(timer))
timer.start() timer.start()
@cmdutils.register(instance='command-dispatcher', @cmdutils.register(instance='command-dispatcher',
modes=[usertypes.KeyMode.insert], modes=[usertypes.KeyMode.insert],
hide=True, scope='window') hide=True, scope='window')
@ -874,7 +874,7 @@ class CommandDispatcher:
else: else:
text = elem.evaluateJavaScript('this.value') text = elem.evaluateJavaScript('this.value')
self._editor = editor.ExternalEditor( self._editor = editor.ExternalEditor(
win_id, self._tabbed_browser()) self._win_id, self._tabbed_browser())
self._editor.editing_finished.connect( self._editor.editing_finished.connect(
functools.partial(self.on_editing_finished, elem)) functools.partial(self.on_editing_finished, elem))
self._editor.edit(text) self._editor.edit(text)

View File

@ -31,7 +31,6 @@ from qutebrowser.config import config
from qutebrowser.commands import cmdexc, cmdutils from qutebrowser.commands import cmdexc, cmdutils
from qutebrowser.utils import (message, http, usertypes, log, utils, qtutils, from qutebrowser.utils import (message, http, usertypes, log, utils, qtutils,
objreg) objreg)
from qutebrowser.widgets import mainwindow
class DownloadItem(QObject): class DownloadItem(QObject):

View File

@ -367,7 +367,7 @@ class HintManager(QObject):
qtutils.ensure_valid(url) qtutils.ensure_valid(url)
cmd = self._context.args[0] cmd = self._context.args[0]
args = self._context.args[1:] args = self._context.args[1:]
userscripts.run(cmd, *args, url=url) userscripts.run(cmd, *args, url=url, win_id=self._win_id)
def _spawn(self, url): def _spawn(self, url):
"""Spawn a simple command from a hint.""" """Spawn a simple command from a hint."""

View File

@ -343,5 +343,5 @@ def run(cmd, *args, url, win_id):
_runners.append(runner) _runners.append(runner)
_commandrunners.append(commandrunner) _commandrunners.append(commandrunner)
runner.finished.connect(functools.partial(_runners.remove, runner)) runner.finished.connect(functools.partial(_runners.remove, runner))
commandrunner.finished.connect( runner.finished.connect(
functools.partial(_commandrunners.remove, commandrunner)) functools.partial(_commandrunners.remove, commandrunner))

View File

@ -113,6 +113,7 @@ class EventFilter(QObject):
self._activated = True self._activated = True
def eventFilter(self, obj, event): def eventFilter(self, obj, event):
"""Forward events to the correct modeman."""
if not self._activated: if not self._activated:
return False return False
try: try:

View File

@ -34,7 +34,8 @@ class SchemeHandler(QObject):
_win_id: The window ID this scheme handler is associated with. _win_id: The window ID this scheme handler is associated with.
""" """
def __init__(self, win_id): def __init__(self, win_id, parent=None):
super().__init__(parent)
self._win_id = win_id self._win_id = win_id
def createRequest(self, op, request, outgoing_data): def createRequest(self, op, request, outgoing_data):

View File

@ -20,8 +20,6 @@
"""Misc. utility commands exposed to the user.""" """Misc. utility commands exposed to the user."""
import types import types
import functools
from PyQt5.QtCore import QCoreApplication from PyQt5.QtCore import QCoreApplication

View File

@ -40,8 +40,14 @@ win_id_gen = itertools.count(0)
def create_window(): def create_window():
"""Create a new main window.
Return:
The MainWindow object.
"""
win_id = next(win_id_gen) win_id = next(win_id_gen)
win = MainWindow(win_id) win = MainWindow(win_id)
return win
class MainWindow(QWidget): class MainWindow(QWidget):
@ -170,14 +176,14 @@ class MainWindow(QWidget):
def _connect_signals(self): def _connect_signals(self):
"""Connect all mainwindow signals.""" """Connect all mainwindow signals."""
# pylint: disable=too-many-locals,too-many-statements
app = objreg.get('app') app = objreg.get('app')
download_manager = objreg.get('download-manager') download_manager = objreg.get('download-manager')
key_config = objreg.get('key-config') key_config = objreg.get('key-config')
config_obj = objreg.get('config')
status = self._get_object('statusbar') status = self._get_object('statusbar')
keyparsers = self._get_object('keyparsers') keyparsers = self._get_object('keyparsers')
completion = self._get_object('completion') completion_obj = self._get_object('completion')
tabs = self._get_object('tabbed-browser') tabs = self._get_object('tabbed-browser')
cmd = self._get_object('status-command') cmd = self._get_object('status-command')
completer = self._get_object('completer') completer = self._get_object('completer')
@ -242,16 +248,14 @@ class MainWindow(QWidget):
# command input / completion # command input / completion
mode_manager.left.connect(tabs.on_mode_left) mode_manager.left.connect(tabs.on_mode_left)
cmd.clear_completion_selection.connect( cmd.clear_completion_selection.connect(
completion.on_clear_completion_selection) completion_obj.on_clear_completion_selection)
cmd.hide_completion.connect(completion.hide) cmd.hide_completion.connect(completion_obj.hide)
cmd.update_completion.connect(completer.on_update_completion) cmd.update_completion.connect(completer.on_update_completion)
completer.change_completed_part.connect(cmd.on_change_completed_part) completer.change_completed_part.connect(cmd.on_change_completed_part)
# downloads # downloads
tabs.start_download.connect(download_manager.fetch) tabs.start_download.connect(download_manager.fetch)
@pyqtSlot() @pyqtSlot()
def resize_completion(self): def resize_completion(self):
"""Adjust completion according to config.""" """Adjust completion according to config."""