Add per-tab inspector like dwb.
This also means the webinspector will always be detached / in its own window.
This commit is contained in:
parent
62407eef33
commit
fa01bfbbad
@ -342,7 +342,6 @@ class QuteBrowser(QApplication):
|
||||
# misc
|
||||
self.lastWindowClosed.connect(self.shutdown)
|
||||
tabs.quit.connect(self.shutdown)
|
||||
tabs.currentChanged.connect(self.mainwindow.update_inspector)
|
||||
|
||||
# status bar
|
||||
self.modeman.entered.connect(status.on_mode_entered)
|
||||
|
@ -25,6 +25,7 @@ from PyQt5.QtWidgets import QApplication
|
||||
from PyQt5.QtCore import Qt, QObject
|
||||
from PyQt5.QtGui import QClipboard
|
||||
from PyQt5.QtPrintSupport import QPrintDialog, QPrintPreviewDialog
|
||||
from PyQt5.QtWebKitWidgets import QWebInspector
|
||||
|
||||
import qutebrowser.commands.utils as cmdutils
|
||||
import qutebrowser.config.config as config
|
||||
@ -625,6 +626,29 @@ class CommandDispatcher(QObject):
|
||||
url = quickmarks.get(name)
|
||||
self._tabs.tabopen(url, background=True)
|
||||
|
||||
@cmdutils.register(instance='mainwindow.tabs.cmd', name='inspector')
|
||||
def toggle_inspector(self):
|
||||
"""Toggle the web inspector."""
|
||||
cur = self._tabs.currentWidget()
|
||||
if cur.inspector is None:
|
||||
if not config.get('webkit', 'developer-extras-enabled'):
|
||||
message.error("Please enable developer-extras before using "
|
||||
"the webinspector!")
|
||||
return
|
||||
cur.inspector = QWebInspector()
|
||||
cur.inspector.setPage(cur.page_)
|
||||
cur.inspector.show()
|
||||
elif cur.inspector.isVisible():
|
||||
cur.inspector.hide()
|
||||
else:
|
||||
if not config.get('webkit', 'developer-extras-enabled'):
|
||||
message.error("Please enable developer-extras before using "
|
||||
"the webinspector!")
|
||||
return
|
||||
else:
|
||||
cur.inspector.show()
|
||||
|
||||
|
||||
@cmdutils.register(instance='mainwindow.tabs.cmd', modes=['insert'],
|
||||
hide=True)
|
||||
def open_editor(self):
|
||||
|
@ -22,7 +22,6 @@ from base64 import b64decode
|
||||
|
||||
from PyQt5.QtCore import pyqtSlot, QRect, QPoint, QCoreApplication
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout
|
||||
from PyQt5.QtWebKitWidgets import QWebInspector
|
||||
|
||||
import qutebrowser.commands.utils as cmdutils
|
||||
import qutebrowser.config.config as config
|
||||
@ -44,7 +43,6 @@ class MainWindow(QWidget):
|
||||
Attributes:
|
||||
tabs: The TabbedBrowser widget.
|
||||
status: The StatusBar widget.
|
||||
inspector: The QWebInspector.
|
||||
_vbox: The main QVBoxLayout.
|
||||
"""
|
||||
|
||||
@ -74,9 +72,6 @@ class MainWindow(QWidget):
|
||||
self._vbox.addWidget(self.tabs)
|
||||
|
||||
self.completion = CompletionView(self)
|
||||
self.inspector = QWebInspector()
|
||||
self.inspector.hide()
|
||||
self._vbox.addWidget(self.inspector)
|
||||
|
||||
self.status = StatusBar()
|
||||
self._vbox.addWidget(self.status)
|
||||
@ -111,30 +106,6 @@ class MainWindow(QWidget):
|
||||
bottomright = self.status.geometry().topRight()
|
||||
self.completion.setGeometry(QRect(topleft, bottomright))
|
||||
|
||||
@cmdutils.register(instance='mainwindow', name='inspector')
|
||||
def toggle_inspector(self):
|
||||
"""Toggle the web inspector."""
|
||||
if self.inspector.isVisible():
|
||||
self.inspector.hide()
|
||||
self.resize_completion()
|
||||
else:
|
||||
if not config.get('webkit', 'developer-extras-enabled'):
|
||||
self.status.disp_error("Please enable developer-extras before "
|
||||
"using the webinspector!")
|
||||
else:
|
||||
self.inspector.show()
|
||||
self.resize_completion()
|
||||
|
||||
@pyqtSlot()
|
||||
def update_inspector(self):
|
||||
"""Update the web inspector if the page changed."""
|
||||
self.inspector.setPage(self.tabs.currentWidget().page())
|
||||
if self.inspector.isVisible():
|
||||
# For some odd reason, we need to do this so the inspector actually
|
||||
# shows some content...
|
||||
self.inspector.hide()
|
||||
self.inspector.show()
|
||||
|
||||
@cmdutils.register(instance='mainwindow', name=['quit', 'q'], nargs=0)
|
||||
def close(self):
|
||||
"""Extend close() so we can register it as a command."""
|
||||
|
@ -55,6 +55,7 @@ class WebView(QWebView):
|
||||
work.
|
||||
progress: loading progress of this page.
|
||||
scroll_pos: The current scroll position as (x%, y%) tuple.
|
||||
inspector: The QWebInspector used for this webview.
|
||||
_url_text: The current URL as string.
|
||||
Accessed via url_text property.
|
||||
_load_status: loading status of this page (index into LoadStatus)
|
||||
@ -86,6 +87,7 @@ class WebView(QWebView):
|
||||
super().__init__(parent)
|
||||
self._load_status = LoadStatus.none
|
||||
self.tabbedbrowser = parent
|
||||
self.inspector = None
|
||||
self.scroll_pos = (-1, -1)
|
||||
self._old_scroll_pos = (-1, -1)
|
||||
self._shutdown_callback = None
|
||||
|
Loading…
Reference in New Issue
Block a user