mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2024-11-15 21:25:44 +08:00
Fixed sizeHints and sizePolicies to properly support different font sizes i.e. set via QApplication::setFont
This commit is contained in:
parent
c5e7104413
commit
b776fc24a6
@ -113,7 +113,7 @@ CDockAreaTabBar::CDockAreaTabBar(CDockAreaWidget* parent) :
|
|||||||
d(new DockAreaTabBarPrivate(this))
|
d(new DockAreaTabBarPrivate(this))
|
||||||
{
|
{
|
||||||
d->DockArea = parent;
|
d->DockArea = parent;
|
||||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Ignored);
|
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||||
setFrameStyle(QFrame::NoFrame);
|
setFrameStyle(QFrame::NoFrame);
|
||||||
setWidgetResizable(true);
|
setWidgetResizable(true);
|
||||||
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
@ -565,6 +565,23 @@ bool CDockAreaTabBar::isTabOpen(int Index) const
|
|||||||
return !tab(Index)->isHidden();
|
return !tab(Index)->isHidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
QSize CDockAreaTabBar::minimumSizeHint() const
|
||||||
|
{
|
||||||
|
QSize Size = sizeHint();
|
||||||
|
Size.setWidth(Super::minimumSizeHint().width());// this defines the minimum width of a dock area
|
||||||
|
return Size;
|
||||||
|
}
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
QSize CDockAreaTabBar::sizeHint() const
|
||||||
|
{
|
||||||
|
QSize Size = Super::sizeHint();
|
||||||
|
Size.setHeight(d->TabsContainerWidget->sizeHint().height());
|
||||||
|
return Size;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ads
|
} // namespace ads
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
@ -156,6 +156,21 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool isTabOpen(int Index) const;
|
bool isTabOpen(int Index) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overrides the minimumSizeHint() function of QScrollArea
|
||||||
|
* The minimumSizeHint() is bigger than the sizeHint () for the scroll
|
||||||
|
* area because even if the scrollbars are invisible, the required speace
|
||||||
|
* is reserved in the minimumSizeHint(). This override simply returns
|
||||||
|
* sizeHint();
|
||||||
|
*/
|
||||||
|
virtual QSize minimumSizeHint() const override;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The function provides a sizeHint that matches the height of the
|
||||||
|
* internal viewport.
|
||||||
|
*/
|
||||||
|
virtual QSize sizeHint() const override;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
/**
|
/**
|
||||||
* This property sets the index of the tab bar's visible tab
|
* This property sets the index of the tab bar's visible tab
|
||||||
|
@ -130,6 +130,7 @@ DockAreaTitleBarPrivate::DockAreaTitleBarPrivate(CDockAreaTitleBar* _public) :
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
void DockAreaTitleBarPrivate::createButtons()
|
void DockAreaTitleBarPrivate::createButtons()
|
||||||
{
|
{
|
||||||
|
QSizePolicy ButtonSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
||||||
// Tabs menu button
|
// Tabs menu button
|
||||||
TabsMenuButton = new tTileBarButton();
|
TabsMenuButton = new tTileBarButton();
|
||||||
TabsMenuButton->setObjectName("tabsMenuButton");
|
TabsMenuButton->setObjectName("tabsMenuButton");
|
||||||
@ -145,7 +146,7 @@ void DockAreaTitleBarPrivate::createButtons()
|
|||||||
#ifndef QT_NO_TOOLTIP
|
#ifndef QT_NO_TOOLTIP
|
||||||
TabsMenuButton->setToolTip(QObject::tr("List all tabs"));
|
TabsMenuButton->setToolTip(QObject::tr("List all tabs"));
|
||||||
#endif
|
#endif
|
||||||
TabsMenuButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
TabsMenuButton->setSizePolicy(ButtonSizePolicy);
|
||||||
TopLayout->addWidget(TabsMenuButton, 0);
|
TopLayout->addWidget(TabsMenuButton, 0);
|
||||||
_this->connect(TabsMenuButton->menu(), SIGNAL(triggered(QAction*)),
|
_this->connect(TabsMenuButton->menu(), SIGNAL(triggered(QAction*)),
|
||||||
SLOT(onTabsMenuActionTriggered(QAction*)));
|
SLOT(onTabsMenuActionTriggered(QAction*)));
|
||||||
@ -159,7 +160,7 @@ void DockAreaTitleBarPrivate::createButtons()
|
|||||||
UndockButton->setToolTip(QObject::tr("Detach Group"));
|
UndockButton->setToolTip(QObject::tr("Detach Group"));
|
||||||
#endif
|
#endif
|
||||||
setTitleBarButtonIcon(UndockButton, QStyle::SP_TitleBarNormalButton);
|
setTitleBarButtonIcon(UndockButton, QStyle::SP_TitleBarNormalButton);
|
||||||
UndockButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
UndockButton->setSizePolicy(ButtonSizePolicy);
|
||||||
TopLayout->addWidget(UndockButton, 0);
|
TopLayout->addWidget(UndockButton, 0);
|
||||||
_this->connect(UndockButton, SIGNAL(clicked()), SLOT(onUndockButtonClicked()));
|
_this->connect(UndockButton, SIGNAL(clicked()), SLOT(onUndockButtonClicked()));
|
||||||
|
|
||||||
@ -179,7 +180,7 @@ void DockAreaTitleBarPrivate::createButtons()
|
|||||||
CloseButton->setToolTip(QObject::tr("Close Group"));
|
CloseButton->setToolTip(QObject::tr("Close Group"));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
CloseButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
CloseButton->setSizePolicy(ButtonSizePolicy);
|
||||||
CloseButton->setIconSize(QSize(16, 16));
|
CloseButton->setIconSize(QSize(16, 16));
|
||||||
if (testConfigFlag(CDockManager::DockAreaHasCloseButton))
|
if (testConfigFlag(CDockManager::DockAreaHasCloseButton))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user