Clean up signal connections
This commit is contained in:
parent
78060fc879
commit
1a68bdb9a9
@ -233,45 +233,67 @@ class QuteBrowser(QApplication):
|
||||
|
||||
def _connect_signals(self):
|
||||
"""Connect all signals to their slots."""
|
||||
# syntactic sugar
|
||||
kp = self._keyparsers
|
||||
status = self.mainwindow.status
|
||||
completion = self.mainwindow.completion
|
||||
tabs = self.mainwindow.tabs
|
||||
cmd = self.mainwindow.status.cmd
|
||||
|
||||
# misc
|
||||
self.lastWindowClosed.connect(self.shutdown)
|
||||
self.mainwindow.tabs.keypress.connect(
|
||||
self.mainwindow.status.keypress)
|
||||
self._keyparsers["normal"].set_cmd_text.connect(
|
||||
self.mainwindow.status.cmd.set_cmd_text)
|
||||
self.mainwindow.tabs.set_cmd_text.connect(
|
||||
self.mainwindow.status.cmd.set_cmd_text)
|
||||
self.mainwindow.tabs.quit.connect(self.shutdown)
|
||||
self.mainwindow.status.cmd.got_cmd.connect(self.commandparser.run)
|
||||
self.mainwindow.status.cmd.got_search.connect(self.searchparser.search)
|
||||
self.mainwindow.status.cmd.got_search_rev.connect(
|
||||
self.searchparser.search_rev)
|
||||
self.mainwindow.status.cmd.returnPressed.connect(
|
||||
self.mainwindow.tabs.setFocus)
|
||||
self.searchparser.do_search.connect(
|
||||
self.mainwindow.tabs.cur.search)
|
||||
self._keyparsers["normal"].keystring_updated.connect(
|
||||
self.mainwindow.status.keystring.setText)
|
||||
self._keyparsers["hint"].fire_hint.connect(
|
||||
self.mainwindow.tabs.cur.fire_hint)
|
||||
self._keyparsers["hint"].abort_hinting.connect(
|
||||
self.mainwindow.tabs.cur.abort_hinting)
|
||||
self._keyparsers["hint"].keystring_updated.connect(
|
||||
self.mainwindow.tabs.cur.handle_hint_key)
|
||||
self.mainwindow.tabs.hint_strings_updated.connect(
|
||||
self._keyparsers["hint"].on_hint_strings_updated)
|
||||
self.mainwindow.tabs.set_mode.connect(self.set_mode)
|
||||
message.bridge.error.connect(self.mainwindow.status.disp_error)
|
||||
message.bridge.info.connect(self.mainwindow.status.txt.set_temptext)
|
||||
message.bridge.text.connect(self.mainwindow.status.txt.set_normaltext)
|
||||
tabs.quit.connect(self.shutdown)
|
||||
tabs.set_mode.connect(self.set_mode)
|
||||
tabs.currentChanged.connect(self.mainwindow.update_inspector)
|
||||
|
||||
# status bar
|
||||
tabs.keypress.connect(status.keypress)
|
||||
for obj in [kp["normal"], tabs]:
|
||||
obj.set_cmd_text.connect(cmd.set_cmd_text)
|
||||
|
||||
# commands
|
||||
cmd.got_cmd.connect(self.commandparser.run)
|
||||
cmd.got_search.connect(self.searchparser.search)
|
||||
cmd.got_search_rev.connect(self.searchparser.search_rev)
|
||||
cmd.returnPressed.connect(tabs.setFocus)
|
||||
self.searchparser.do_search.connect(tabs.cur.search)
|
||||
kp["normal"].keystring_updated.connect(status.keystring.setText)
|
||||
|
||||
# hints
|
||||
kp["hint"].fire_hint.connect(tabs.cur.fire_hint)
|
||||
kp["hint"].abort_hinting.connect(tabs.cur.abort_hinting)
|
||||
kp["hint"].keystring_updated.connect(tabs.cur.handle_hint_key)
|
||||
tabs.hint_strings_updated.connect(kp["hint"].on_hint_strings_updated)
|
||||
|
||||
# messages
|
||||
message.bridge.error.connect(status.disp_error)
|
||||
message.bridge.info.connect(status.txt.set_temptext)
|
||||
message.bridge.text.connect(status.txt.set_normaltext)
|
||||
|
||||
# config
|
||||
self.config.style_changed.connect(style.invalidate_caches)
|
||||
self.config.changed.connect(self.mainwindow.tabs.on_config_changed)
|
||||
self.config.changed.connect(
|
||||
self.mainwindow.completion.on_config_changed)
|
||||
self.config.changed.connect(self.mainwindow.on_config_changed)
|
||||
self.config.changed.connect(config.cmd_history.on_config_changed)
|
||||
self.config.changed.connect(websettings.on_config_changed)
|
||||
self.config.changed.connect(
|
||||
self._keyparsers["normal"].on_config_changed)
|
||||
for obj in [tabs, completion, self.mainwindow, config.cmd_history,
|
||||
websettings, kp["normal"]]:
|
||||
self.config.changed.connect(obj.on_config_changed)
|
||||
|
||||
# statusbar
|
||||
tabs.cur_progress.connect(status.prog.setValue)
|
||||
tabs.cur_load_finished.connect(status.prog.hide)
|
||||
tabs.cur_load_finished.connect(status.url.on_loading_finished)
|
||||
tabs.cur_load_started.connect(status.prog.on_load_started)
|
||||
tabs.cur_scroll_perc_changed.connect(status.percentage.set_perc)
|
||||
tabs.cur_statusbar_message.connect(status.txt.on_statusbar_message)
|
||||
tabs.cur_url_changed.connect(status.url.set_url)
|
||||
tabs.cur_link_hovered.connect(status.url.set_hover_url)
|
||||
|
||||
# command input / completion
|
||||
cmd.esc_pressed.connect(tabs.setFocus)
|
||||
cmd.clear_completion_selection.connect(
|
||||
completion.on_clear_completion_selection)
|
||||
cmd.hide_completion.connect(completion.hide)
|
||||
cmd.textChanged.connect(completion.on_cmd_text_changed)
|
||||
cmd.tab_pressed.connect(completion.on_tab_pressed)
|
||||
completion.change_completed_part.connect(cmd.on_change_completed_part)
|
||||
|
||||
def _recover_pages(self):
|
||||
"""Try to recover all open pages.
|
||||
|
@ -77,28 +77,6 @@ class MainWindow(QWidget):
|
||||
self.status = StatusBar()
|
||||
self._vbox.addWidget(self.status)
|
||||
|
||||
self.tabs.cur_progress.connect(self.status.prog.setValue)
|
||||
self.tabs.cur_load_finished.connect(self.status.prog.hide)
|
||||
self.tabs.cur_load_finished.connect(
|
||||
self.status.url.on_loading_finished)
|
||||
self.tabs.cur_load_started.connect(self.status.prog.on_load_started)
|
||||
self.tabs.cur_scroll_perc_changed.connect(
|
||||
self.status.percentage.set_perc)
|
||||
self.tabs.cur_statusbar_message.connect(
|
||||
self.status.txt.on_statusbar_message)
|
||||
self.tabs.cur_url_changed.connect(self.status.url.set_url)
|
||||
self.tabs.cur_link_hovered.connect(self.status.url.set_hover_url)
|
||||
self.tabs.currentChanged.connect(self.update_inspector)
|
||||
self.status.cmd.esc_pressed.connect(self.tabs.setFocus)
|
||||
self.status.cmd.clear_completion_selection.connect(
|
||||
self.completion.on_clear_completion_selection)
|
||||
self.status.cmd.hide_completion.connect(self.completion.hide)
|
||||
self.status.cmd.textChanged.connect(
|
||||
self.completion.on_cmd_text_changed)
|
||||
self.status.cmd.tab_pressed.connect(self.completion.on_tab_pressed)
|
||||
self.completion.change_completed_part.connect(
|
||||
self.status.cmd.on_change_completed_part)
|
||||
|
||||
#self.retranslateUi(MainWindow)
|
||||
#self.tabWidget.setCurrentIndex(0)
|
||||
#QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
|
@ -127,6 +127,28 @@ class TabbedBrowser(TabWidget):
|
||||
logging.debug("Tab shutdown complete.")
|
||||
self.shutdown_complete.emit()
|
||||
|
||||
def _connect_tab_signals(self, tab):
|
||||
"""Set up the needed signals for tab."""
|
||||
# filtered signals
|
||||
tab.linkHovered.connect(self._filter.create(self.cur_link_hovered))
|
||||
tab.loadProgress.connect(self._filter.create(self.cur_progress))
|
||||
tab.loadFinished.connect(self._filter.create(self.cur_load_finished))
|
||||
tab.loadStarted.connect(lambda: # pylint: disable=unnecessary-lambda
|
||||
self.sender().signal_cache.clear())
|
||||
tab.loadStarted.connect(self._filter.create(self.cur_load_started))
|
||||
tab.statusBarMessage.connect(
|
||||
self._filter.create(self.cur_statusbar_message))
|
||||
tab.scroll_pos_changed.connect(
|
||||
self._filter.create(self.cur_scroll_perc_changed))
|
||||
tab.urlChanged.connect(self._filter.create(self.cur_url_changed))
|
||||
# hintmanager
|
||||
tab.hintmanager.hint_strings_updated.connect(self.hint_strings_updated)
|
||||
tab.hintmanager.set_mode.connect(self.set_mode)
|
||||
tab.hintmanager.set_cmd_text.connect(self.set_cmd_text)
|
||||
# misc
|
||||
tab.titleChanged.connect(self._titleChanged_handler)
|
||||
tab.open_tab.connect(self.tabopen)
|
||||
|
||||
def cntwidget(self, count=None):
|
||||
"""Return a widget based on a count/idx.
|
||||
|
||||
@ -227,26 +249,11 @@ class TabbedBrowser(TabWidget):
|
||||
logging.debug("Opening {}".format(url))
|
||||
url = urlutils.qurl(url)
|
||||
tab = BrowserTab(self)
|
||||
self._connect_tab_signals(tab)
|
||||
self._tabs.append(tab)
|
||||
self.addTab(tab, urlutils.urlstring(url))
|
||||
tab.linkHovered.connect(self._filter.create(self.cur_link_hovered))
|
||||
tab.loadProgress.connect(self._filter.create(self.cur_progress))
|
||||
tab.loadFinished.connect(self._filter.create(self.cur_load_finished))
|
||||
tab.loadStarted.connect(lambda: # pylint: disable=unnecessary-lambda
|
||||
self.sender().signal_cache.clear())
|
||||
tab.loadStarted.connect(self._filter.create(self.cur_load_started))
|
||||
tab.statusBarMessage.connect(
|
||||
self._filter.create(self.cur_statusbar_message))
|
||||
tab.scroll_pos_changed.connect(
|
||||
self._filter.create(self.cur_scroll_perc_changed))
|
||||
tab.urlChanged.connect(self._filter.create(self.cur_url_changed))
|
||||
tab.titleChanged.connect(self._titleChanged_handler)
|
||||
tab.hintmanager.hint_strings_updated.connect(self.hint_strings_updated)
|
||||
tab.hintmanager.set_mode.connect(self.set_mode)
|
||||
tab.hintmanager.set_cmd_text.connect(self.set_cmd_text)
|
||||
# FIXME sometimes this doesn't load
|
||||
tab.show()
|
||||
tab.open_tab.connect(self.tabopen)
|
||||
tab.openurl(url)
|
||||
if not background:
|
||||
self.setCurrentWidget(tab)
|
||||
|
Loading…
Reference in New Issue
Block a user