Always base tabbar on Fusion style.
Fixes crashes with qt5ct. Fixes #2477. Fixes #1554.
This commit is contained in:
parent
ca0e04fd0d
commit
66eb330a0a
@ -65,6 +65,7 @@ Fixed
|
|||||||
- Crash when using `:debug-log-filter` when `--filter` wasn't given on startup.
|
- Crash when using `:debug-log-filter` when `--filter` wasn't given on startup.
|
||||||
- Crash with some invalid setting values
|
- Crash with some invalid setting values
|
||||||
- Various rare crashes
|
- Various rare crashes
|
||||||
|
- Various styling issues with the tabbar and a crash with qt5ct
|
||||||
|
|
||||||
v0.10.1
|
v0.10.1
|
||||||
-------
|
-------
|
||||||
|
@ -24,7 +24,8 @@ import functools
|
|||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QSize, QRect, QTimer, QUrl
|
from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QSize, QRect, QTimer, QUrl
|
||||||
from PyQt5.QtWidgets import (QTabWidget, QTabBar, QSizePolicy, QCommonStyle,
|
from PyQt5.QtWidgets import (QTabWidget, QTabBar, QSizePolicy, QCommonStyle,
|
||||||
QStyle, QStylePainter, QStyleOptionTab)
|
QStyle, QStylePainter, QStyleOptionTab,
|
||||||
|
QStyleFactory)
|
||||||
from PyQt5.QtGui import QIcon, QPalette, QColor
|
from PyQt5.QtGui import QIcon, QPalette, QColor
|
||||||
|
|
||||||
from qutebrowser.utils import qtutils, objreg, utils, usertypes, log
|
from qutebrowser.utils import qtutils, objreg, utils, usertypes, log
|
||||||
@ -51,7 +52,7 @@ class TabWidget(QTabWidget):
|
|||||||
def __init__(self, win_id, parent=None):
|
def __init__(self, win_id, parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
bar = TabBar(win_id)
|
bar = TabBar(win_id)
|
||||||
self.setStyle(TabBarStyle(self.style()))
|
self.setStyle(TabBarStyle())
|
||||||
self.setTabBar(bar)
|
self.setTabBar(bar)
|
||||||
bar.tabCloseRequested.connect(self.tabCloseRequested)
|
bar.tabCloseRequested.connect(self.tabCloseRequested)
|
||||||
bar.tabMoved.connect(functools.partial(
|
bar.tabMoved.connect(functools.partial(
|
||||||
@ -269,7 +270,7 @@ class TabBar(QTabBar):
|
|||||||
def __init__(self, win_id, parent=None):
|
def __init__(self, win_id, parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self._win_id = win_id
|
self._win_id = win_id
|
||||||
self.setStyle(TabBarStyle(self.style()))
|
self.setStyle(TabBarStyle())
|
||||||
self.set_font()
|
self.set_font()
|
||||||
config_obj = objreg.get('config')
|
config_obj = objreg.get('config')
|
||||||
config_obj.changed.connect(self.set_font)
|
config_obj.changed.connect(self.set_font)
|
||||||
@ -554,20 +555,14 @@ class TabBarStyle(QCommonStyle):
|
|||||||
|
|
||||||
http://stackoverflow.com/a/17294081
|
http://stackoverflow.com/a/17294081
|
||||||
https://code.google.com/p/makehuman/source/browse/trunk/makehuman/lib/qtgui.py
|
https://code.google.com/p/makehuman/source/browse/trunk/makehuman/lib/qtgui.py
|
||||||
|
|
||||||
Attributes:
|
|
||||||
_style: The base/"parent" style.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, style):
|
def __init__(self):
|
||||||
"""Initialize all functions we're not overriding.
|
"""Initialize all functions we're not overriding.
|
||||||
|
|
||||||
This simply calls the corresponding function in self._style.
|
This simply calls the corresponding function in self._style.
|
||||||
|
|
||||||
Args:
|
|
||||||
style: The base/"parent" style.
|
|
||||||
"""
|
"""
|
||||||
self._style = style
|
self._style = QStyleFactory.create('Fusion')
|
||||||
for method in ['drawComplexControl', 'drawItemPixmap',
|
for method in ['drawComplexControl', 'drawItemPixmap',
|
||||||
'generatedIconPixmap', 'hitTestComplexControl',
|
'generatedIconPixmap', 'hitTestComplexControl',
|
||||||
'itemPixmapRect', 'itemTextRect', 'polish', 'styleHint',
|
'itemPixmapRect', 'itemTextRect', 'polish', 'styleHint',
|
||||||
|
Loading…
Reference in New Issue
Block a user