This commit is contained in:
Kovid Goyal 2020-12-06 09:06:57 +05:30
parent dcbb893367
commit 289a5977af
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
20 changed files with 82 additions and 31 deletions

View File

@ -87,7 +87,7 @@ class TheAtlantic(BasicNewsRecipe):
def preprocess_html(self, soup): def preprocess_html(self, soup):
for img in soup.findAll('img', attrs={'data-srcset': True}): for img in soup.findAll('img', attrs={'data-srcset': True}):
#img['src'] = img['data-srcset'].split()[0] # img['src'] = img['data-srcset'].split()[0]
data_srcset = img['data-srcset'] data_srcset = img['data-srcset']
if ',' in data_srcset: if ',' in data_srcset:
img['src'] = data_srcset.split(',')[0] img['src'] = data_srcset.split(',')[0]

View File

@ -87,7 +87,7 @@ class TheAtlantic(BasicNewsRecipe):
def preprocess_html(self, soup): def preprocess_html(self, soup):
for img in soup.findAll('img', attrs={'data-srcset': True}): for img in soup.findAll('img', attrs={'data-srcset': True}):
#img['src'] = img['data-srcset'].split()[0] # img['src'] = img['data-srcset'].split()[0]
data_srcset = img['data-srcset'] data_srcset = img['data-srcset']
if ',' in data_srcset: if ',' in data_srcset:
img['src'] = data_srcset.split(',')[0] img['src'] = data_srcset.split(',')[0]

View File

@ -344,7 +344,8 @@ class LineEdit(QLineEdit, LineEditECM):
# See https://bugreports.qt.io/browse/QTBUG-46911 # See https://bugreports.qt.io/browse/QTBUG-46911
try: try:
if ev.type() == ev.ShortcutOverride and ( if ev.type() == ev.ShortcutOverride and (
ev.key() in (Qt.Key.Key_Left, Qt.Key.Key_Right) and (ev.modifiers() & ~Qt.KeyboardModifier.KeypadModifier) == Qt.KeyboardModifier.ControlModifier): ev.key() in (Qt.Key.Key_Left, Qt.Key.Key_Right) and (
ev.modifiers() & ~Qt.KeyboardModifier.KeypadModifier) == Qt.KeyboardModifier.ControlModifier):
ev.accept() ev.accept()
except AttributeError: except AttributeError:
pass pass

View File

@ -113,7 +113,10 @@ class RegexBuilder(QDialog, Ui_RegexBuilder):
if pos > loc: if pos > loc:
match_loc = i match_loc = i
break break
self.goto_loc(self.match_locs[match_loc][1], operation=QTextCursor.MoveOperation.Left, n=self.match_locs[match_loc][1] - self.match_locs[match_loc][0]) self.goto_loc(
self.match_locs[match_loc][1],
operation=QTextCursor.MoveOperation.Left,
n=self.match_locs[match_loc][1] - self.match_locs[match_loc][0])
def goto_next(self): def goto_next(self):
pos = self.preview.textCursor().position() pos = self.preview.textCursor().position()

View File

@ -153,7 +153,9 @@ class Config(QDialog):
self.gridLayout.addWidget(self.scrollArea, 1, 1, 1, 1) self.gridLayout.addWidget(self.scrollArea, 1, 1, 1, 1)
self.buttonBox = QDialogButtonBox(self) self.buttonBox = QDialogButtonBox(self)
self.buttonBox.setOrientation(Qt.Orientation.Horizontal) self.buttonBox.setOrientation(Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.RestoreDefaults) self.buttonBox.setStandardButtons(
QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.Ok|
QDialogButtonBox.StandardButton.RestoreDefaults)
self.buttonBox.setObjectName("buttonBox") self.buttonBox.setObjectName("buttonBox")
self.gridLayout.addWidget(self.buttonBox, 3, 1, 1, 1) self.gridLayout.addWidget(self.buttonBox, 3, 1, 1, 1)
self.help = QTextEdit(self) self.help = QTextEdit(self)

View File

@ -112,7 +112,8 @@ def key_sequence_to_dbus_shortcut(qks):
for mod, name in iteritems({Qt.Modifier.META:'Super', Qt.Modifier.CTRL:'Control', Qt.Modifier.ALT:'Alt', Qt.Modifier.SHIFT:'Shift'}): for mod, name in iteritems({Qt.Modifier.META:'Super', Qt.Modifier.CTRL:'Control', Qt.Modifier.ALT:'Alt', Qt.Modifier.SHIFT:'Shift'}):
if key & mod == mod: if key & mod == mod:
items.append(name) items.append(name)
key &= int(~(Qt.KeyboardModifier.ShiftModifier | Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.AltModifier | Qt.KeyboardModifier.MetaModifier | Qt.KeyboardModifier.KeypadModifier)) key &= int(~(Qt.KeyboardModifier.ShiftModifier | Qt.KeyboardModifier.ControlModifier |
Qt.KeyboardModifier.AltModifier | Qt.KeyboardModifier.MetaModifier | Qt.KeyboardModifier.KeypadModifier))
text = QKeySequence(key).toString() text = QKeySequence(key).toString()
if text: if text:
text = {'+':'plus', '-':'minus'}.get(text, text) text = {'+':'plus', '-':'minus'}.get(text, text)

View File

@ -211,7 +211,8 @@ class EximDialog(Dialog):
i.setIcon(QIcon(I('lt.png'))) i.setIcon(QIcon(I('lt.png')))
i.setSelected(True) i.setSelected(True)
self.update_disk_usage.connect(( self.update_disk_usage.connect((
lambda i, sz: self.lib_list.item(i).setText(self.export_lib_text(self.lib_list.item(i).data(Qt.ItemDataRole.UserRole), sz))), type=Qt.ConnectionType.QueuedConnection) lambda i, sz: self.lib_list.item(i).setText(self.export_lib_text(
self.lib_list.item(i).data(Qt.ItemDataRole.UserRole), sz))), type=Qt.ConnectionType.QueuedConnection)
def get_lib_sizes(self): def get_lib_sizes(self):
for i in range(self.lib_list.count()): for i in range(self.lib_list.count()):

View File

@ -41,7 +41,8 @@ class TrimImage(QDialog):
r.setShortcut(QKeySequence(QKeySequence.StandardKey.Redo)) r.setShortcut(QKeySequence(QKeySequence.StandardKey.Redo))
self.trim_action = ac = self.bar.addAction(QIcon(I('trim.png')), _('&Trim'), self.do_trim) self.trim_action = ac = self.bar.addAction(QIcon(I('trim.png')), _('&Trim'), self.do_trim)
ac.setShortcut(QKeySequence('Ctrl+T')) ac.setShortcut(QKeySequence('Ctrl+T'))
ac.setToolTip('%s [%s]' % (_('Trim image by removing borders outside the selected region'), ac.shortcut().toString(QKeySequence.SequenceFormat.NativeText))) ac.setToolTip('%s [%s]' % (_('Trim image by removing borders outside the selected region'),
ac.shortcut().toString(QKeySequence.SequenceFormat.NativeText)))
ac.setEnabled(False) ac.setEnabled(False)
c.selection_state_changed.connect(self.selection_changed) c.selection_state_changed.connect(self.selection_changed)
l.addWidget(c) l.addWidget(c)

View File

@ -154,7 +154,9 @@ class GestureManager(QObject):
if touch_supported: if touch_supported:
view.viewport().setAttribute(Qt.WidgetAttribute.WA_AcceptTouchEvents) view.viewport().setAttribute(Qt.WidgetAttribute.WA_AcceptTouchEvents)
self.state = State() self.state = State()
self.state.tapped.connect(self.handle_tap, type=Qt.ConnectionType.QueuedConnection) # has to be queued otherwise QApplication.keyboardModifiers() does not work self.state.tapped.connect(
self.handle_tap,
type=Qt.ConnectionType.QueuedConnection) # has to be queued otherwise QApplication.keyboardModifiers() does not work
self.state.flicking.connect(self.handle_flicking) self.state.flicking.connect(self.handle_flicking)
connect_lambda(self.state.tap_hold_started, self, lambda self, tp: self.handle_tap_hold('start', tp)) connect_lambda(self.state.tap_hold_started, self, lambda self, tp: self.handle_tap_hold('start', tp))
connect_lambda(self.state.tap_hold_updated, self, lambda self, tp: self.handle_tap_hold('update', tp)) connect_lambda(self.state.tap_hold_updated, self, lambda self, tp: self.handle_tap_hold('update', tp))

View File

@ -99,7 +99,8 @@ class HeaderView(QHeaderView): # {{{
style = self.style() style = self.style()
margin = 2 * style.pixelMetric(style.PM_HeaderMargin, None, self) margin = 2 * style.pixelMetric(style.PM_HeaderMargin, None, self)
if self.isSortIndicatorShown() and self.sortIndicatorSection() == logical_index: if self.isSortIndicatorShown() and self.sortIndicatorSection() == logical_index:
opt.sortIndicator = QStyleOptionHeader.SortIndicator.SortDown if self.sortIndicatorOrder() == Qt.SortOrder.AscendingOrder else QStyleOptionHeader.SortIndicator.SortUp opt.sortIndicator = QStyleOptionHeader.SortIndicator.SortDown if \
self.sortIndicatorOrder() == Qt.SortOrder.AscendingOrder else QStyleOptionHeader.SortIndicator.SortUp
margin += style.pixelMetric(style.PM_HeaderMarkSize, None, self) margin += style.pixelMetric(style.PM_HeaderMarkSize, None, self)
opt.text = unicode_type(model.headerData(logical_index, opt.orientation, Qt.ItemDataRole.DisplayRole) or '') opt.text = unicode_type(model.headerData(logical_index, opt.orientation, Qt.ItemDataRole.DisplayRole) or '')
if self.textElideMode() != Qt.TextElideMode.ElideNone: if self.textElideMode() != Qt.TextElideMode.ElideNone:
@ -472,7 +473,8 @@ class BooksView(QTableView): # {{{
ans.addSeparator() ans.addSeparator()
if hidden_cols: if hidden_cols:
m = ans.addMenu(_('Show column')) m = ans.addMenu(_('Show column'))
hcols = [(hcol, unicode_type(self.model().headerData(hidx, Qt.Orientation.Horizontal, Qt.ItemDataRole.DisplayRole) or '')) for hcol, hidx in iteritems(hidden_cols)] hcols = [(hcol, unicode_type(self.model().headerData(hidx, Qt.Orientation.Horizontal, Qt.ItemDataRole.DisplayRole) or ''))
for hcol, hidx in iteritems(hidden_cols)]
hcols.sort(key=lambda x: primary_sort_key(x[1])) hcols.sort(key=lambda x: primary_sort_key(x[1]))
for hcol, hname in hcols: for hcol, hname in hcols:
m.addAction(hname, partial(handler, action='show', column=hcol)) m.addAction(hname, partial(handler, action='show', column=hcol))

View File

@ -136,7 +136,9 @@ class PDFCovers(QDialog):
dpr = self.devicePixelRatio() dpr = self.devicePixelRatio()
for i, f in enumerate(sorted(files)): for i, f in enumerate(sorted(files)):
p = QPixmap(f).scaled(self.covers.iconSize()*dpr, aspectRatioMode=Qt.AspectRatioMode.IgnoreAspectRatio, transformMode=Qt.TransformationMode.SmoothTransformation) p = QPixmap(f).scaled(
self.covers.iconSize()*dpr, aspectRatioMode=Qt.AspectRatioMode.IgnoreAspectRatio,
transformMode=Qt.TransformationMode.SmoothTransformation)
p.setDevicePixelRatio(dpr) p.setDevicePixelRatio(dpr)
i = QListWidgetItem(_('page %d') % (self.first + i)) i = QListWidgetItem(_('page %d') % (self.first + i))
i.setData(Qt.ItemDataRole.DecorationRole, p) i.setData(Qt.ItemDataRole.DecorationRole, p)

View File

@ -236,7 +236,10 @@ class Preferences(QDialog):
self.l = l = QVBoxLayout(self) self.l = l = QVBoxLayout(self)
self.stack = QStackedWidget(self) self.stack = QStackedWidget(self)
self.bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Close | QDialogButtonBox.StandardButton.Apply | QDialogButtonBox.StandardButton.Discard | QDialogButtonBox.StandardButton.RestoreDefaults) self.bb = QDialogButtonBox(
QDialogButtonBox.StandardButton.Close | QDialogButtonBox.StandardButton.Apply |
QDialogButtonBox.StandardButton.Discard | QDialogButtonBox.StandardButton.RestoreDefaults
)
self.bb.button(self.bb.Apply).clicked.connect(self.accept) self.bb.button(self.bb.Apply).clicked.connect(self.accept)
self.bb.button(self.bb.Discard).clicked.connect(self.reject) self.bb.button(self.bb.Discard).clicked.connect(self.reject)
self.bb.button(self.bb.RestoreDefaults).setIcon(QIcon(I('clear_left.png'))) self.bb.button(self.bb.RestoreDefaults).setIcon(QIcon(I('clear_left.png')))

View File

@ -42,7 +42,8 @@ class ChooseResources(QWidget):
@property @property
def resources(self): def resources(self):
return {i.data(Qt.ItemDataRole.UserRole):self.original_resources[i.data(Qt.ItemDataRole.UserRole)] for i in self if i.checkState() == Qt.CheckState.Checked} return {i.data(Qt.ItemDataRole.UserRole):self.original_resources[i.data(Qt.ItemDataRole.UserRole)]
for i in self if i.checkState() == Qt.CheckState.Checked}
@resources.setter @resources.setter
def resources(self, resources): def resources(self, resources):

View File

@ -697,7 +697,10 @@ class TextEdit(PlainTextEdit):
# problem as well, since they use the overridden createMimeDataFromSelection() method # problem as well, since they use the overridden createMimeDataFromSelection() method
# instead of the one from Qt (which makes copy() work), and allows proper customization # instead of the one from Qt (which makes copy() work), and allows proper customization
# of the shortcuts # of the shortcuts
if ev in (QKeySequence.StandardKey.Copy, QKeySequence.StandardKey.Cut, QKeySequence.StandardKey.Paste, QKeySequence.StandardKey.Undo, QKeySequence.StandardKey.Redo): if ev in (
QKeySequence.StandardKey.Copy, QKeySequence.StandardKey.Cut, QKeySequence.StandardKey.Paste,
QKeySequence.StandardKey.Undo, QKeySequence.StandardKey.Redo
):
ev.ignore() ev.ignore()
return True return True
# This is used to convert typed hex codes into unicode # This is used to convert typed hex codes into unicode
@ -803,7 +806,9 @@ class TextEdit(PlainTextEdit):
return self.smarts.set_text_alignment(self, formatting.partition('_')[-1]) return self.smarts.set_text_alignment(self, formatting.partition('_')[-1])
color = 'currentColor' color = 'currentColor'
if formatting in {'color', 'background-color'}: if formatting in {'color', 'background-color'}:
color = QColorDialog.getColor(QColor(Qt.GlobalColor.black if formatting == 'color' else Qt.GlobalColor.white), self, _('Choose color'), QColorDialog.ColorDialogOption.ShowAlphaChannel) color = QColorDialog.getColor(
QColor(Qt.GlobalColor.black if formatting == 'color' else Qt.GlobalColor.white),
self, _('Choose color'), QColorDialog.ColorDialogOption.ShowAlphaChannel)
if not color.isValid(): if not color.isValid():
return return
r, g, b, a = color.getRgb() r, g, b, a = color.getRgb()

View File

@ -954,7 +954,8 @@ class SavedSearches(QWidget):
self.upb = b = QToolButton(self) self.upb = b = QToolButton(self)
self.move_up_action = a = QAction(self) self.move_up_action = a = QAction(self)
a.setShortcut(QKeySequence('Alt+Up')) a.setShortcut(QKeySequence('Alt+Up'))
b.setIcon(QIcon(I('arrow-up.png'))), b.setToolTip(_('Move selected entries up') + ' [%s]' % a.shortcut().toString(QKeySequence.SequenceFormat.NativeText)) b.setIcon(QIcon(I('arrow-up.png')))
b.setToolTip(_('Move selected entries up') + ' [%s]' % a.shortcut().toString(QKeySequence.SequenceFormat.NativeText))
connect_lambda(a.triggered, self, lambda self: self.move_entry(-1)) connect_lambda(a.triggered, self, lambda self: self.move_entry(-1))
self.searches.addAction(a) self.searches.addAction(a)
connect_lambda(b.clicked, self, lambda self: self.move_entry(-1)) connect_lambda(b.clicked, self, lambda self: self.move_entry(-1))
@ -962,7 +963,8 @@ class SavedSearches(QWidget):
self.dnb = b = QToolButton(self) self.dnb = b = QToolButton(self)
self.move_down_action = a = QAction(self) self.move_down_action = a = QAction(self)
a.setShortcut(QKeySequence('Alt+Down')) a.setShortcut(QKeySequence('Alt+Down'))
b.setIcon(QIcon(I('arrow-down.png'))), b.setToolTip(_('Move selected entries down') + ' [%s]' % a.shortcut().toString(QKeySequence.SequenceFormat.NativeText)) b.setIcon(QIcon(I('arrow-down.png')))
b.setToolTip(_('Move selected entries down') + ' [%s]' % a.shortcut().toString(QKeySequence.SequenceFormat.NativeText))
connect_lambda(a.triggered, self, lambda self: self.move_entry(1)) connect_lambda(a.triggered, self, lambda self: self.move_entry(1))
self.searches.addAction(a) self.searches.addAction(a)
connect_lambda(b.clicked, self, lambda self: self.move_entry(1)) connect_lambda(b.clicked, self, lambda self: self.move_entry(1))

View File

@ -205,7 +205,8 @@ class Central(QStackedWidget): # {{{
def eventFilter(self, obj, event): def eventFilter(self, obj, event):
base = super(Central, self) base = super(Central, self)
if obj is not self.editor_tabs.tabBar() or event.type() != QEvent.Type.MouseButtonPress or event.button() not in (Qt.MouseButton.RightButton, Qt.MouseButton.MidButton): if obj is not self.editor_tabs.tabBar() or event.type() != QEvent.Type.MouseButtonPress or event.button() not in (
Qt.MouseButton.RightButton, Qt.MouseButton.MidButton):
return base.eventFilter(obj, event) return base.eventFilter(obj, event)
index = self.editor_tabs.tabBar().tabAt(event.pos()) index = self.editor_tabs.tabBar().tabAt(event.pos())
if index < 0: if index < 0:
@ -808,20 +809,26 @@ class Main(MainWindow):
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, d) self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, d)
d = create(_('Live CSS'), 'live-css') d = create(_('Live CSS'), 'live-css')
d.setAllowedAreas(Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea | Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea) d.setAllowedAreas(
Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea |
Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea)
self.live_css = LiveCSS(self.preview, parent=d) self.live_css = LiveCSS(self.preview, parent=d)
d.setWidget(self.live_css) d.setWidget(self.live_css)
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, d) self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, d)
d.close() # Hidden by default d.close() # Hidden by default
d = create(_('Check book'), 'check-book') d = create(_('Check book'), 'check-book')
d.setAllowedAreas(Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea | Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea) d.setAllowedAreas(
Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea |
Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea)
d.setWidget(self.check_book) d.setWidget(self.check_book)
self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, d) self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, d)
d.close() # By default the check window is closed d.close() # By default the check window is closed
d = create(_('Inspector'), 'inspector') d = create(_('Inspector'), 'inspector')
d.setAllowedAreas(Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea | Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea) d.setAllowedAreas(
Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea |
Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea)
d.setWidget(self.preview.inspector) d.setWidget(self.preview.inspector)
self.preview.inspector.setParent(d) self.preview.inspector.setParent(d)
self.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, d) self.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, d)
@ -829,26 +836,34 @@ class Main(MainWindow):
QTimer.singleShot(10, self.preview.inspector.connect_to_dock) QTimer.singleShot(10, self.preview.inspector.connect_to_dock)
d = create(_('Table of Contents'), 'toc-viewer') d = create(_('Table of Contents'), 'toc-viewer')
d.setAllowedAreas(Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea | Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea) d.setAllowedAreas(
Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea |
Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea)
d.setWidget(self.toc_view) d.setWidget(self.toc_view)
self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, d) self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, d)
d.close() # Hidden by default d.close() # Hidden by default
d = create(_('Text search'), 'text-search') d = create(_('Text search'), 'text-search')
d.setAllowedAreas(Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea | Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea) d.setAllowedAreas(
Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea |
Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea)
d.setWidget(self.text_search) d.setWidget(self.text_search)
self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, d) self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, d)
d.close() # Hidden by default d.close() # Hidden by default
d = create(_('Checkpoints'), 'checkpoints') d = create(_('Checkpoints'), 'checkpoints')
d.setAllowedAreas(Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea | Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea) d.setAllowedAreas(
Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea |
Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea)
self.checkpoints = CheckpointView(self.boss.global_undo, parent=d) self.checkpoints = CheckpointView(self.boss.global_undo, parent=d)
d.setWidget(self.checkpoints) d.setWidget(self.checkpoints)
self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, d) self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, d)
d.close() # Hidden by default d.close() # Hidden by default
d = create(_('Saved searches'), 'saved-searches') d = create(_('Saved searches'), 'saved-searches')
d.setAllowedAreas(Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea | Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea) d.setAllowedAreas(
Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea |
Qt.DockWidgetArea.BottomDockWidgetArea | Qt.DockWidgetArea.TopDockWidgetArea)
d.setWidget(self.saved_searches) d.setWidget(self.saved_searches)
self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, d) self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, d)
d.close() # Hidden by default d.close() # Hidden by default

View File

@ -204,8 +204,10 @@ def create_profile():
class Page(QWebEnginePage): class Page(QWebEnginePage):
def javaScriptConsoleMessage(self, level, msg, linenumber, source_id): def javaScriptConsoleMessage(self, level, msg, linenumber, source_id):
prefix = {QWebEnginePage.JavaScriptConsoleMessageLevel.InfoMessageLevel: 'INFO', QWebEnginePage.JavaScriptConsoleMessageLevel.WarningMessageLevel: 'WARNING'}.get( prefix = {
level, 'ERROR') QWebEnginePage.JavaScriptConsoleMessageLevel.InfoMessageLevel: 'INFO',
QWebEnginePage.JavaScriptConsoleMessageLevel.WarningMessageLevel: 'WARNING'
}.get(level, 'ERROR')
if source_id == 'userscript:lookup.js': if source_id == 'userscript:lookup.js':
prints('%s: %s:%s: %s' % (prefix, source_id, linenumber, msg), file=sys.stderr) prints('%s: %s:%s: %s' % (prefix, source_id, linenumber, msg), file=sys.stderr)
sys.stderr.flush() sys.stderr.flush()

View File

@ -41,7 +41,11 @@ def insert_scripts(profile, *scripts):
sc.insert(script) sc.insert(script)
def create_script(name, src, world=QWebEngineScript.ScriptWorldId.ApplicationWorld, injection_point=QWebEngineScript.InjectionPoint.DocumentReady, on_subframes=True): def create_script(
name, src, world=QWebEngineScript.ScriptWorldId.ApplicationWorld,
injection_point=QWebEngineScript.InjectionPoint.DocumentReady,
on_subframes=True
):
script = QWebEngineScript() script = QWebEngineScript()
if isinstance(src, bytes): if isinstance(src, bytes):
src = src.decode('utf-8') src = src.decode('utf-8')

View File

@ -524,7 +524,8 @@ class EnLineEdit(LineEditECM, QLineEdit): # {{{
def event(self, ev): def event(self, ev):
# See https://bugreports.qt.io/browse/QTBUG-46911 # See https://bugreports.qt.io/browse/QTBUG-46911
if ev.type() == ev.ShortcutOverride and ( if ev.type() == ev.ShortcutOverride and (
hasattr(ev, 'key') and ev.key() in (Qt.Key.Key_Left, Qt.Key.Key_Right) and (ev.modifiers() & ~Qt.KeyboardModifier.KeypadModifier) == Qt.KeyboardModifier.ControlModifier): hasattr(ev, 'key') and ev.key() in (Qt.Key.Key_Left, Qt.Key.Key_Right) and (
ev.modifiers() & ~Qt.KeyboardModifier.KeypadModifier) == Qt.KeyboardModifier.ControlModifier):
ev.accept() ev.accept()
return QLineEdit.event(self, ev) return QLineEdit.event(self, ev)

View File

@ -389,7 +389,10 @@ class FlowLayout(QLayout): # {{{
return ans return ans
if wid is None: if wid is None:
return 0 return 0
return wid.style().layoutSpacing(QSizePolicy.ControlType.PushButton, QSizePolicy.ControlType.PushButton, Qt.Orientation.Horizontal if horizontal else Qt.Orientation.Vertical) return wid.style().layoutSpacing(
QSizePolicy.ControlType.PushButton,
QSizePolicy.ControlType.PushButton,
Qt.Orientation.Horizontal if horizontal else Qt.Orientation.Vertical)
lines, current_line = [], [] lines, current_line = [], []
gmap = {} gmap = {}