Use an enum for custom PixelMetrics.

This commit is contained in:
Florian Bruhin 2015-07-31 16:39:17 +02:00
parent 452c4115d3
commit 87d8bfd7a7

View File

@ -17,12 +17,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>. # along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
"""The tab widget used for TabbedBrowser from browser.py. """The tab widget used for TabbedBrowser from browser.py."""
Module attributes:
PM_TabBarPadding: The PixelMetric value for TabBarStyle to get the padding
between items.
"""
import functools import functools
@ -31,12 +26,13 @@ from PyQt5.QtWidgets import (QTabWidget, QTabBar, QSizePolicy, QCommonStyle,
QStyle, QStylePainter, QStyleOptionTab) QStyle, QStylePainter, QStyleOptionTab)
from PyQt5.QtGui import QIcon, QPalette, QColor from PyQt5.QtGui import QIcon, QPalette, QColor
from qutebrowser.utils import qtutils, objreg, utils from qutebrowser.utils import qtutils, objreg, utils, usertypes
from qutebrowser.config import config from qutebrowser.config import config
from qutebrowser.browser import webview from qutebrowser.browser import webview
PM_TabBarPadding = QStyle.PM_CustomBase PixelMetrics = usertypes.enum('PixelMetrics', ['padding'],
start=QStyle.PM_CustomBase, is_int=True)
class TabWidget(QTabWidget): class TabWidget(QTabWidget):
@ -342,7 +338,8 @@ class TabBar(QTabBar):
indicator_width = config.get('tabs', 'indicator-width') indicator_width = config.get('tabs', 'indicator-width')
if indicator_width != 0: if indicator_width != 0:
indicator_width += config.get('tabs', 'indicator-space') indicator_width += config.get('tabs', 'indicator-space')
padding_width = self.style().pixelMetric(PM_TabBarPadding, None, self) padding_width = self.style().pixelMetric(
PixelMetrics.padding, None, self)
height = self.fontMetrics().height() height = self.fontMetrics().height()
width = (self.fontMetrics().width('\u2026') + width = (self.fontMetrics().width('\u2026') +
icon_size.width() + padding_count * padding_width + icon_size.width() + padding_count * padding_width +
@ -596,7 +593,7 @@ class TabBarStyle(QCommonStyle):
metric == QStyle.PM_TabBarTabHSpace or metric == QStyle.PM_TabBarTabHSpace or
metric == QStyle.PM_TabBarTabVSpace): metric == QStyle.PM_TabBarTabVSpace):
return 0 return 0
elif metric == PM_TabBarPadding: elif metric == PixelMetrics.padding:
return 4 return 4
else: else:
return self._style.pixelMetric(metric, option, widget) return self._style.pixelMetric(metric, option, widget)
@ -631,7 +628,7 @@ class TabBarStyle(QCommonStyle):
Return: Return:
A (text_rect, icon_rect) tuple (both QRects). A (text_rect, icon_rect) tuple (both QRects).
""" """
padding = self.pixelMetric(PM_TabBarPadding, opt) padding = self.pixelMetric(PixelMetrics.padding, opt)
icon_rect = QRect() icon_rect = QRect()
text_rect = QRect(opt.rect) text_rect = QRect(opt.rect)
qtutils.ensure_valid(text_rect) qtutils.ensure_valid(text_rect)