Split commands to commands/utils

This commit is contained in:
Florian Bruhin 2014-01-17 10:57:27 +01:00
parent bcc2fa9653
commit 61c90f293c
3 changed files with 59 additions and 55 deletions

View File

@ -2,25 +2,28 @@ import sys
from PyQt5.QtWidgets import QWidget, QApplication from PyQt5.QtWidgets import QWidget, QApplication
from qutebrowser.widgets.mainwindow import MainWindow from qutebrowser.widgets.mainwindow import MainWindow
from qutebrowser.keys import KeyParser from qutebrowser.keys import KeyParser
import qutebrowser.commands as cmds import qutebrowser.commands.utils as cmdutils
def main(): def main():
app = QApplication(sys.argv) app = QApplication(sys.argv)
mw = MainWindow() mw = MainWindow()
cp = cmds.CommandParser() cp = cmdutils.CommandParser()
kp = KeyParser() kp = KeyParser()
kp.set_cmd_text.connect(mw.status.cmd.set_cmd) kp.set_cmd_text.connect(mw.status.cmd.set_cmd)
mw.status.cmd.got_cmd.connect(cp.parse) mw.status.cmd.got_cmd.connect(cp.parse)
mw.status.cmd.got_cmd.connect(mw.setFocus) mw.status.cmd.got_cmd.connect(mw.setFocus)
cp.error.connect(mw.status.disp_error) cp.error.connect(mw.status.disp_error)
cmds.cmd_dict['open'].signal.connect(mw.tabs.openurl)
cmds.cmd_dict['tabopen'].signal.connect(mw.tabs.tabopen)
cmds.cmd_dict['quit'].signal.connect(QApplication.closeAllWindows) # FIXME
cmds.cmd_dict['tabclose'].signal.connect(mw.tabs.close_act)
cmds.cmd_dict['tabprev'].signal.connect(mw.tabs.switch_prev)
cmds.cmd_dict['tabnext'].signal.connect(mw.tabs.switch_next)
kp.from_cmd_dict(cmds.cmd_dict, mw)
mw.show()
cmdutils.register_all()
cmds = cmdutils.cmd_dict
cmds['open'].signal.connect(mw.tabs.openurl)
cmds['tabopen'].signal.connect(mw.tabs.tabopen)
cmds['quit'].signal.connect(QApplication.closeAllWindows) # FIXME
cmds['tabclose'].signal.connect(mw.tabs.close_act)
cmds['tabprev'].signal.connect(mw.tabs.switch_prev)
cmds['tabnext'].signal.connect(mw.tabs.switch_next)
kp.from_cmd_dict(cmds, mw)
mw.show()
sys.exit(app.exec_()) sys.exit(app.exec_())

View File

@ -0,0 +1,42 @@
from PyQt5.QtCore import pyqtSignal
from qutebrowser.commands.utils import Command
class Empty(Command):
nargs = 0
name = ''
key = ':'
class Open(Command):
nargs = 1
name = 'open'
key = 'o'
signal = pyqtSignal(str)
class TabOpen(Command):
nargs = 1
name = 'tabopen'
key = 'Shift+o'
signal = pyqtSignal(str)
class TabClose(Command):
nargs = 0
name = 'tabclose'
key = 'd'
signal = pyqtSignal()
class TabNext(Command):
nargs = 0
name = 'tabnext'
key = 'Shift+j'
signal = pyqtSignal()
class TabPrev(Command):
nargs = 0
name = 'tabprev'
key = 'Shift+k'
signal = pyqtSignal()
class Quit(Command):
nargs = 0
name = 'quit'
signal = pyqtSignal()

View File

@ -1,14 +1,15 @@
from PyQt5.QtCore import QObject, pyqtSignal from PyQt5.QtCore import QObject, pyqtSignal
import inspect, sys import inspect, sys
import qutebrowser.commands.commands
cmd_dict = {} cmd_dict = {}
def register_all(): def register_all():
def is_cmd(obj): def is_cmd(obj):
return (inspect.isclass(obj) and obj.__module__ == __name__ and return (inspect.isclass(obj) and
obj.__name__.endswith('Cmd')) obj.__module__ == 'qutebrowser.commands.commands')
for (name, cls) in inspect.getmembers(sys.modules[__name__], is_cmd): for (name, cls) in inspect.getmembers(commands, is_cmd):
cls.bind() cls.bind()
class CommandParser(QObject): class CommandParser(QObject):
@ -57,45 +58,3 @@ class Command(QObject):
self.signal.emit(argv[0]) self.signal.emit(argv[0])
else: else:
raise NotImplementedError raise NotImplementedError
class EmptyCmd(Command):
nargs = 0
name = ''
key = ':'
class OpenCmd(Command):
nargs = 1
name = 'open'
key = 'o'
signal = pyqtSignal(str)
class TabOpenCmd(Command):
nargs = 1
name = 'tabopen'
key = 'Shift+o'
signal = pyqtSignal(str)
class TabCloseCmd(Command):
nargs = 0
name = 'tabclose'
key = 'd'
signal = pyqtSignal()
class TabNextCmd(Command):
nargs = 0
name = 'tabnext'
key = 'Shift+j'
signal = pyqtSignal()
class TabPrevCmd(Command):
nargs = 0
name = 'tabprev'
key = 'Shift+k'
signal = pyqtSignal()
class QuitCmd(Command):
nargs = 0
name = 'quit'
signal = pyqtSignal()
register_all()