From b822e56f81acc6ae72c0af5f78a6b013e8c1f3c2 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 28 Nov 2017 18:28:37 +0000 Subject: [PATCH] Tweak RDStyle to apply a min/max width for tabs and elide text --- qrenderdoc/Styles/RDStyle/RDStyle.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/qrenderdoc/Styles/RDStyle/RDStyle.cpp b/qrenderdoc/Styles/RDStyle/RDStyle.cpp index c5a732c93..762c5599a 100644 --- a/qrenderdoc/Styles/RDStyle/RDStyle.cpp +++ b/qrenderdoc/Styles/RDStyle/RDStyle.cpp @@ -69,6 +69,8 @@ static const int MenuBarIconSize = 16; static const int TabWidgetBorder = 1; static const int TabMargin = 4; +static const int TabMinWidth = 120; +static const int TabMaxWidth = 250; }; namespace Animation @@ -593,6 +595,12 @@ QSize RDStyle::sizeFromContents(ContentsType type, const QStyleOption *opt, cons return ret; } + else if(type == CT_TabBarTab) + { + // have a maximum size for tabs + return size.boundedTo(QSize(Constants::TabMaxWidth, INT_MAX)) + .expandedTo(QSize(Constants::TabMinWidth, 0)); + } else if(type == CT_CheckBox || type == CT_RadioButton) { const QStyleOptionButton *button = qstyleoption_cast(opt); @@ -712,6 +720,9 @@ int RDStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QWid if(metric == PM_TabBarTabOverlap) return 0; + if(metric == PM_TabBarTabHSpace) + return Constants::TabMargin; + return RDTweakedNativeStyle::pixelMetric(metric, opt, widget); } @@ -768,6 +779,9 @@ int RDStyle::styleHint(StyleHint stylehint, const QStyleOption *opt, const QWidg if(stylehint == QStyle::SH_ItemView_ArrowKeysNavigateIntoChildren) return 1; + if(stylehint == QStyle::SH_TabBar_ElideMode) + return Qt::ElideRight; + return RDTweakedNativeStyle::styleHint(stylehint, opt, widget, returnData); }