summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJens Bache-Wiig <jens.bache-wiig@digia.com>2012-10-16 09:02:08 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-10-16 15:29:15 +0200
commit3928bd06068cdd301dd4b021af55baa2707fa959 (patch)
tree332400e8bb67ec9996e55101d656b9cfe73b9e92 /src
parent7501d55ae005cf9a155a6bcbeac468bfde40177d (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.cpp17
-rw-r--r--src/widgets/styles/qstyleoption.h3
-rw-r--r--src/widgets/widgets/qtabbar.cpp1
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))