mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
Ebook viewer: remember inspector windows size
E-book viewer: Remember the size of the "Inspect" window used to examine the book's code. Fixes #1245068 [Feature request: web inspector window size and font size](https://bugs.launchpad.net/calibre/+bug/1245068)
This commit is contained in:
parent
9d5ea30749
commit
bf686caf97
@ -25,6 +25,7 @@ from calibre.gui2.viewer.position import PagePosition
|
|||||||
from calibre.gui2.viewer.config import config, ConfigDialog, load_themes
|
from calibre.gui2.viewer.config import config, ConfigDialog, load_themes
|
||||||
from calibre.gui2.viewer.image_popup import ImagePopup
|
from calibre.gui2.viewer.image_popup import ImagePopup
|
||||||
from calibre.gui2.viewer.table_popup import TablePopup
|
from calibre.gui2.viewer.table_popup import TablePopup
|
||||||
|
from calibre.gui2.viewer.inspector import WebInspector
|
||||||
from calibre.ebooks.oeb.display.webview import load_html
|
from calibre.ebooks.oeb.display.webview import load_html
|
||||||
from calibre.constants import isxp, iswindows
|
from calibre.constants import isxp, iswindows
|
||||||
# }}}
|
# }}}
|
||||||
@ -479,6 +480,7 @@ class DocumentView(QWebView): # {{{
|
|||||||
self.document = Document(self.shortcuts, parent=self,
|
self.document = Document(self.shortcuts, parent=self,
|
||||||
debug_javascript=debug_javascript)
|
debug_javascript=debug_javascript)
|
||||||
self.setPage(self.document)
|
self.setPage(self.document)
|
||||||
|
self.inspector = WebInspector(self, self.document)
|
||||||
self.manager = None
|
self.manager = None
|
||||||
self._reference_mode = False
|
self._reference_mode = False
|
||||||
self._ignore_scrollbar_signals = False
|
self._ignore_scrollbar_signals = False
|
||||||
@ -672,8 +674,7 @@ class DocumentView(QWebView): # {{{
|
|||||||
menu.addAction(self.manager.action_font_size_smaller)
|
menu.addAction(self.manager.action_font_size_smaller)
|
||||||
|
|
||||||
menu.addSeparator()
|
menu.addSeparator()
|
||||||
inspectAction = self.pageAction(self.document.InspectElement)
|
menu.addAction(_('Inspect'), self.inspect)
|
||||||
menu.addAction(inspectAction)
|
|
||||||
|
|
||||||
if not text and img.isNull() and self.manager is not None:
|
if not text and img.isNull() and self.manager is not None:
|
||||||
menu.addSeparator()
|
menu.addSeparator()
|
||||||
@ -686,6 +687,11 @@ class DocumentView(QWebView): # {{{
|
|||||||
|
|
||||||
menu.exec_(ev.globalPos())
|
menu.exec_(ev.globalPos())
|
||||||
|
|
||||||
|
def inspect(self):
|
||||||
|
self.inspector.show()
|
||||||
|
self.inspector.raise_()
|
||||||
|
self.pageAction(self.document.InspectElement).trigger()
|
||||||
|
|
||||||
def lookup(self, *args):
|
def lookup(self, *args):
|
||||||
if self.manager is not None:
|
if self.manager is not None:
|
||||||
t = unicode(self.selectedText()).strip()
|
t = unicode(self.selectedText()).strip()
|
||||||
|
52
src/calibre/gui2/viewer/inspector.py
Normal file
52
src/calibre/gui2/viewer/inspector.py
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# vim:fileencoding=utf-8
|
||||||
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
|
print_function)
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||||
|
|
||||||
|
from PyQt4.Qt import QDialog, QDialogButtonBox, QVBoxLayout, QIcon
|
||||||
|
from PyQt4.QtWebKit import QWebInspector
|
||||||
|
|
||||||
|
from calibre.gui2 import gprefs
|
||||||
|
|
||||||
|
class WebInspector(QDialog):
|
||||||
|
|
||||||
|
def __init__(self, parent, page):
|
||||||
|
QDialog.__init__(self, parent)
|
||||||
|
self.setWindowTitle(_('Inspect book code'))
|
||||||
|
self.setWindowIcon(QIcon(I('debug.png')))
|
||||||
|
l = QVBoxLayout()
|
||||||
|
self.setLayout(l)
|
||||||
|
|
||||||
|
self.inspector = QWebInspector(self)
|
||||||
|
self.inspector.setPage(page)
|
||||||
|
l.addWidget(self.inspector)
|
||||||
|
|
||||||
|
self.bb = bb = QDialogButtonBox(QDialogButtonBox.Close)
|
||||||
|
l.addWidget(bb)
|
||||||
|
bb.accepted.connect(self.accept)
|
||||||
|
bb.rejected.connect(self.reject)
|
||||||
|
|
||||||
|
self.resize(self.sizeHint())
|
||||||
|
|
||||||
|
geom = gprefs.get('viewer_inspector_geom', None)
|
||||||
|
if geom is not None:
|
||||||
|
self.restoreGeometry(geom)
|
||||||
|
|
||||||
|
def save_geometry(self):
|
||||||
|
gprefs['viewer_inspector_geom'] = bytearray(self.saveGeometry())
|
||||||
|
|
||||||
|
def closeEvent(self, ev):
|
||||||
|
self.save_geometry()
|
||||||
|
return QDialog.closeEvent(self, ev)
|
||||||
|
|
||||||
|
def accept(self):
|
||||||
|
self.save_geometry()
|
||||||
|
QDialog.accept(self)
|
||||||
|
|
||||||
|
def reject(self):
|
||||||
|
self.save_geometry()
|
||||||
|
QDialog.reject(self)
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user