22#include <QStyleOption>
26 , m_TabBarTabHSpace(-1)
30int ProxyStyle::styleHint(StyleHint hint,
const QStyleOption* option,
const QWidget* widget, QStyleHintReturn* returnData)
const
33 case QStyle::SH_Menu_Scrollable:
36 case QStyle::SH_TabBar_Alignment:
39 case QStyle::SH_TabBar_CloseButtonPosition:
40 if (qobject_cast<const TabBarHelper*>(widget)) {
41 return QTabBar::RightSide;
49 return QProxyStyle::styleHint(hint, option, widget, returnData);
55 case PM_TabBarTabHSpace:
56 if (m_TabBarTabHSpace == -1) {
57 m_TabBarTabHSpace = qMin(QProxyStyle::pixelMetric(PM_TabBarTabHSpace, option, widget), 14);
59 return m_TabBarTabHSpace;
62 return QProxyStyle::pixelMetric(metric, option, widget);
68 if (element == PE_FrameTabBarBase) {
69 auto *tabBar = qobject_cast<TabBarHelper*>(option->styleObject);
70 if (tabBar && tabBar->baseColor().isValid()) {
71 painter->setPen(QPen(tabBar->baseColor(), 0));
72 painter->drawLine(option->rect.topLeft(), option->rect.topRight());
77 QProxyStyle::drawPrimitive(element, option, painter, widget);
82 return baseStyle()->objectName();
int styleHint(StyleHint hint, const QStyleOption *option=nullptr, const QWidget *widget=nullptr, QStyleHintReturn *returnData=nullptr) const override
int pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const override
void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget=nullptr) const override