summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qtabbar_p.h
diff options
context:
space:
mode:
authorJordi Pujol Foyo <jordi@vikingsoftware.com>2019-03-06 16:46:21 +0100
committerJordi Pujol Foyo <jordi@vikingsoftware.com>2019-12-20 09:41:09 +0000
commit556712f511a02ff8101e648d2e6f0090231d4f3d (patch)
treeb1b1798d50177c9fdbf95b7d528e14c2506e9a8c /src/widgets/widgets/qtabbar_p.h
parent23d4c0c34b37d9d6d94fedd2fc7316c34a66f10d (diff)
Allow hiding tabs in QTabWidget / QTabBar
Add 2 methods to set/ask if a tab is hidden. [ChangeLog][QtWidgets][QTabWidget/QTabBar] Tabs can now be hidden with setTabVisible Fixes: QTBUG-63038 Change-Id: I7b07ecdb485e1f6c085d03515ef2b73baae889de Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Diffstat (limited to 'src/widgets/widgets/qtabbar_p.h')
-rw-r--r--src/widgets/widgets/qtabbar_p.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/widgets/widgets/qtabbar_p.h b/src/widgets/widgets/qtabbar_p.h
index 6f77579108..ac4cbd32a8 100644
--- a/src/widgets/widgets/qtabbar_p.h
+++ b/src/widgets/widgets/qtabbar_p.h
@@ -88,7 +88,7 @@ class Q_WIDGETS_EXPORT QTabBarPrivate : public QWidgetPrivate
Q_DECLARE_PUBLIC(QTabBar)
public:
QTabBarPrivate()
- :currentIndex(-1), pressedIndex(-1), shape(QTabBar::RoundedNorth), layoutDirty(false),
+ :currentIndex(-1), pressedIndex(-1), firstVisible(0), lastVisible(-1), shape(QTabBar::RoundedNorth), layoutDirty(false),
drawBase(true), scrollOffset(0), hoverIndex(-1), elideModeSetByUser(false), useScrollButtonsSetByUser(false), expanding(true), closeButtonOnTabs(false),
selectionBehaviorOnRemove(QTabBar::SelectRightTab), paintWithOffsets(true), movable(false),
dragInProgress(false), documentMode(false), autoHide(false), changeCurrentOnDrag(false),
@@ -97,6 +97,8 @@ public:
int currentIndex;
int pressedIndex;
+ int firstVisible;
+ int lastVisible;
QTabBar::Shape shape;
bool layoutDirty;
bool drawBase;
@@ -104,7 +106,7 @@ public:
struct Tab {
inline Tab(const QIcon &ico, const QString &txt)
- : enabled(true) , shortcutId(0), text(txt), icon(ico),
+ : enabled(true) , visible(true), shortcutId(0), text(txt), icon(ico),
leftWidget(nullptr), rightWidget(nullptr), lastTab(-1), dragOffset(0)
#if QT_CONFIG(animation)
, animation(nullptr)
@@ -112,6 +114,7 @@ public:
{}
bool operator==(const Tab &other) const { return &other == this; }
bool enabled;
+ bool visible;
int shortcutId;
QString text;
#ifndef QT_NO_TOOLTIP
@@ -170,6 +173,8 @@ public:
QList<Tab> tabList;
mutable QHash<QString, QSize> textSizes;
+ void calculateFirstLastVisible(int index, bool visible, bool remove);
+ int selectNewCurrentIndexFrom(int currentIndex);
int calculateNewPosition(int from, int to, int index) const;
void slide(int from, int to);
void init();