From: Jens Bache-Wiig Date: Tue, 16 Oct 2012 07:02:08 +0000 (+0200) Subject: Add HasFrame feature to QStyleOptionTab X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3928bd06068cdd301dd4b021af55baa2707fa959;p=profile%2Fivi%2Fqtbase.git Add HasFrame feature to QStyleOptionTab This makes it possible for styles like Fusion to draw tabbars different when they have a frame. Change-Id: I1bb21198c0c3caf44c757f6f39310bf2509054bf Reviewed-by: J-P Nurmi --- diff --git a/src/widgets/styles/qstyleoption.cpp b/src/widgets/styles/qstyleoption.cpp index bc363d3..3017f30 100644 --- a/src/widgets/styles/qstyleoption.cpp +++ b/src/widgets/styles/qstyleoption.cpp @@ -1271,7 +1271,8 @@ QStyleOptionTab::QStyleOptionTab() row(0), position(Beginning), selectedPosition(NotAdjacent), cornerWidgets(QStyleOptionTab::NoCornerWidgets), - documentMode(false) + documentMode(false), + features(QStyleOptionTab::None) { } @@ -1284,7 +1285,8 @@ QStyleOptionTab::QStyleOptionTab(int version) row(0), position(Beginning), selectedPosition(NotAdjacent), cornerWidgets(QStyleOptionTab::NoCornerWidgets), - documentMode(false) + documentMode(false), + features(QStyleOptionTab::None) { } @@ -1438,6 +1440,17 @@ QStyleOptionTab::QStyleOptionTab(int version) */ /*! + \enum QStyleOptionTab::TabFeature + + Describes the various features that a tab button can have. + + \value None A normal tab button. + \value HasFrame The tab button is positioned on a tab frame + + \sa features +*/ + +/*! \variable QStyleOptionTab::leftButtonSize \brief the size for the left widget on the tab. diff --git a/src/widgets/styles/qstyleoption.h b/src/widgets/styles/qstyleoption.h index 1f35ecb..7ca0ca2 100644 --- a/src/widgets/styles/qstyleoption.h +++ b/src/widgets/styles/qstyleoption.h @@ -255,7 +255,9 @@ public: enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected }; enum CornerWidget { NoCornerWidgets = 0x00, LeftCornerWidget = 0x01, RightCornerWidget = 0x02 }; + enum TabFeature { None = 0x00, HasFrame = 0x01 }; Q_DECLARE_FLAGS(CornerWidgets, CornerWidget) + Q_DECLARE_FLAGS(TabFeatures, TabFeature) QTabBar::Shape shape; QString text; @@ -268,6 +270,7 @@ public: bool documentMode; QSize leftButtonSize; QSize rightButtonSize; + TabFeatures features; QStyleOptionTab(); QStyleOptionTab(const QStyleOptionTab &other) : QStyleOption(Version, Type) { *this = other; } diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp index 903f496..f9325e6 100644 --- a/src/widgets/widgets/qtabbar.cpp +++ b/src/widgets/widgets/qtabbar.cpp @@ -185,6 +185,7 @@ void QTabBar::initStyleOption(QStyleOptionTab *option, int tabIndex) const #ifndef QT_NO_TABWIDGET if (const QTabWidget *tw = qobject_cast(parentWidget())) { + option->features |= QStyleOptionTab::HasFrame; if (tw->cornerWidget(Qt::TopLeftCorner) || tw->cornerWidget(Qt::BottomLeftCorner)) option->cornerWidgets |= QStyleOptionTab::LeftCornerWidget; if (tw->cornerWidget(Qt::TopRightCorner) || tw->cornerWidget(Qt::BottomRightCorner))