summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-03-08 09:27:37 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-03-08 09:27:38 +0100
commit332ce6734d29fb03852d04de6bc648289ff1c35d (patch)
tree30713dba37e3a98c7606c18f044ab4a815863288 /src/widgets
parent2056bc6bc51efa1da61098ba3d213a4e25d9e7d8 (diff)
parentcaa5a20479bd58fda4380181691f772a1f3c1da4 (diff)
Merge remote-tracking branch 'origin/5.11' into dev
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/itemviews/qheaderview.cpp6
-rw-r--r--src/widgets/widgets/qtabwidget.cpp36
2 files changed, 29 insertions, 13 deletions
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp
index 5cbf642802..b7048d1616 100644
--- a/src/widgets/itemviews/qheaderview.cpp
+++ b/src/widgets/itemviews/qheaderview.cpp
@@ -2191,7 +2191,11 @@ void QHeaderViewPrivate::_q_sectionsAboutToBeChanged(const QList<QPersistentMode
if (stretchLastSection && lastSectionLogicalIdx >= 0 && lastSectionLogicalIdx < sectionItems.count()) {
const int visual = visualIndex(lastSectionLogicalIdx);
if (visual >= 0 && visual < sectionItems.size()) {
- sectionItems[visual].size = lastSectionSize;
+ auto &itemRef = sectionItems[visual];
+ if (itemRef.size != lastSectionSize) {
+ length += lastSectionSize - itemRef.size;
+ itemRef.size = lastSectionSize;
+ }
}
}
for (int i = 0; i < sectionItems.size(); ++i) {
diff --git a/src/widgets/widgets/qtabwidget.cpp b/src/widgets/widgets/qtabwidget.cpp
index 60a924510a..894053ec19 100644
--- a/src/widgets/widgets/qtabwidget.cpp
+++ b/src/widgets/widgets/qtabwidget.cpp
@@ -195,6 +195,11 @@ public:
void _q_removeTab(int);
void _q_tabMoved(int from, int to);
void init();
+ bool isAutoHidden() const
+ {
+ // see QTabBarPrivate::autoHideTabs()
+ return (tabs->autoHide() && tabs->count() <= 1);
+ }
void initBasicStyleOption(QStyleOptionTabWidgetFrame *option) const;
@@ -841,11 +846,14 @@ QSize QTabWidget::sizeHint() const
that->setUpLayout(true);
}
QSize s(d->stack->sizeHint());
- QSize t(d->tabs->sizeHint());
- if(usesScrollButtons())
- t = t.boundedTo(QSize(200,200));
- else
- t = t.boundedTo(QDesktopWidgetPrivate::size());
+ QSize t;
+ if (!d->isAutoHidden()) {
+ t = d->tabs->sizeHint();
+ if (usesScrollButtons())
+ t = t.boundedTo(QSize(200,200));
+ else
+ t = t.boundedTo(QDesktopWidgetPrivate::size());
+ }
QSize sz = basicSize(d->pos == North || d->pos == South, lc, rc, s, t);
@@ -873,7 +881,9 @@ QSize QTabWidget::minimumSizeHint() const
that->setUpLayout(true);
}
QSize s(d->stack->minimumSizeHint());
- QSize t(d->tabs->minimumSizeHint());
+ QSize t;
+ if (!d->isAutoHidden())
+ t = d->tabs->minimumSizeHint();
QSize sz = basicSize(d->pos == North || d->pos == South, lc, rc, s, t);
@@ -908,12 +918,14 @@ int QTabWidget::heightForWidth(int width) const
QTabWidget *that = const_cast<QTabWidget*>(this);
that->setUpLayout(true);
}
- QSize t(d->tabs->sizeHint());
-
- if(usesScrollButtons())
- t = t.boundedTo(QSize(200,200));
- else
- t = t.boundedTo(QDesktopWidgetPrivate::size());
+ QSize t;
+ if (!d->isAutoHidden()) {
+ t = d->tabs->sizeHint();
+ if (usesScrollButtons())
+ t = t.boundedTo(QSize(200,200));
+ else
+ t = t.boundedTo(QDesktopWidgetPrivate::size());
+ }
const bool tabIsHorizontal = (d->pos == North || d->pos == South);
const int contentsWidth = width - padding.width();