diff options
author | Jens Bache-Wiig <jens.bache-wiig@digia.com> | 2012-10-16 09:02:08 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-16 15:29:15 +0200 |
commit | 3928bd06068cdd301dd4b021af55baa2707fa959 (patch) | |
tree | 332400e8bb67ec9996e55101d656b9cfe73b9e92 /src | |
parent | 7501d55ae005cf9a155a6bcbeac468bfde40177d (diff) |
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 <jpnurmi@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/styles/qstyleoption.cpp | 17 | ||||
-rw-r--r-- | src/widgets/styles/qstyleoption.h | 3 | ||||
-rw-r--r-- | src/widgets/widgets/qtabbar.cpp | 1 |
3 files changed, 19 insertions, 2 deletions
diff --git a/src/widgets/styles/qstyleoption.cpp b/src/widgets/styles/qstyleoption.cpp index bc363d3a31..3017f30470 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 1f35ecb61f..7ca0ca2bf3 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 903f496ab7..f9325e6352 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<const QTabWidget *>(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)) |