diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-03-08 09:27:37 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-03-08 09:27:38 +0100 |
commit | 332ce6734d29fb03852d04de6bc648289ff1c35d (patch) | |
tree | 30713dba37e3a98c7606c18f044ab4a815863288 /src/widgets | |
parent | 2056bc6bc51efa1da61098ba3d213a4e25d9e7d8 (diff) | |
parent | caa5a20479bd58fda4380181691f772a1f3c1da4 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: Idf471ca5c6cf211813466b539ce45bdc1ae9b97c
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/itemviews/qheaderview.cpp | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qtabwidget.cpp | 36 |
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(); |