Skip to content

Commit ae72f5e

Browse files
Changed sizeHints(), sizePolicy() and used updateGeometry() to properly size the tabBar
1 parent 9d7c692 commit ae72f5e

File tree

4 files changed

+21
-8
lines changed

4 files changed

+21
-8
lines changed

src/DockAreaTabBar.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,23 +123,24 @@ CDockAreaTabBar::CDockAreaTabBar(CDockAreaWidget* parent) :
123123
d(new DockAreaTabBarPrivate(this))
124124
{
125125
d->DockArea = parent;
126-
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
126+
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
127127
setFrameStyle(QFrame::NoFrame);
128128
setWidgetResizable(true);
129129
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
130130
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
131131

132132
d->TabsContainerWidget = new QWidget();
133+
d->TabsContainerWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
133134
d->TabsContainerWidget->setObjectName("tabsContainerWidget");
134-
setWidget(d->TabsContainerWidget);
135-
136135
d->TabsLayout = new QBoxLayout(QBoxLayout::LeftToRight);
137136
d->TabsLayout->setContentsMargins(0, 0, 0, 0);
138137
d->TabsLayout->setSpacing(0);
139138
d->TabsLayout->addStretch(1);
140139
d->TabsContainerWidget->setLayout(d->TabsLayout);
140+
setWidget(d->TabsContainerWidget);
141141
}
142142

143+
143144
//============================================================================
144145
CDockAreaTabBar::~CDockAreaTabBar()
145146
{
@@ -350,6 +351,8 @@ void CDockAreaTabBar::insertTab(int Index, CDockWidgetTab* Tab)
350351
{
351352
setCurrentIndex(d->CurrentIndex + 1);
352353
}
354+
355+
updateGeometry();
353356
}
354357

355358

@@ -412,6 +415,8 @@ void CDockAreaTabBar::removeTab(CDockWidgetTab* Tab)
412415
{
413416
d->updateTabs();
414417
}
418+
419+
updateGeometry();
415420
}
416421

417422

@@ -620,17 +625,16 @@ bool CDockAreaTabBar::isTabOpen(int Index) const
620625
QSize CDockAreaTabBar::minimumSizeHint() const
621626
{
622627
QSize Size = sizeHint();
623-
Size.setWidth(Super::minimumSizeHint().width());// this defines the minimum width of a dock area
628+
//Size.setWidth(Super::minimumSizeHint().width());// this defines the minimum width of a dock area
629+
Size.setWidth(10);
624630
return Size;
625631
}
626632

627633

628634
//===========================================================================
629635
QSize CDockAreaTabBar::sizeHint() const
630636
{
631-
QSize Size = Super::sizeHint();
632-
Size.setHeight(d->TabsContainerWidget->sizeHint().height());
633-
return Size;
637+
return d->TabsContainerWidget->sizeHint();
634638
}
635639

636640

src/DockAreaTitleBar.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,12 @@ CDockAreaTitleBar::CDockAreaTitleBar(CDockAreaWidget* parent) :
253253
d->TopLayout->setContentsMargins(0, 0, 0, 0);
254254
d->TopLayout->setSpacing(0);
255255
setLayout(d->TopLayout);
256-
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
256+
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
257257

258258
d->createTabBar();
259+
d->TabBar->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
260+
auto horizontalSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
261+
d->TopLayout->addSpacerItem(horizontalSpacer);
259262
d->createButtons();
260263

261264
}

src/DockWidgetTab.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ void CDockWidgetTab::setActiveTab(bool active)
451451
d->TitleLabel->style()->unpolish(d->TitleLabel);
452452
d->TitleLabel->style()->polish(d->TitleLabel);
453453
update();
454+
updateGeometry();
454455

455456
emit activeTabChanged();
456457
}

src/stylesheets/default.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,8 @@ QScrollArea#dockWidgetScrollArea
9292
}
9393

9494

95+
ads--CDockAreaTitleBar
96+
{
97+
background: red;
98+
}
99+

0 commit comments

Comments
 (0)