Added proper support for closable feature, now the close button is disabled for floating widgets
This commit is contained in:
@@ -91,6 +91,17 @@ struct FloatingDockContainerPrivate
|
||||
{
|
||||
DraggingState = StateId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Disables the window close button if the content is not closable
|
||||
*/
|
||||
void disableCloseButton()
|
||||
{
|
||||
auto Flags = _this->windowFlags();
|
||||
Flags |= Qt::CustomizeWindowHint;
|
||||
Flags &= ~Qt::WindowCloseButtonHint;
|
||||
_this->setWindowFlags(Flags);
|
||||
}
|
||||
};
|
||||
// struct FloatingDockContainerPrivate
|
||||
|
||||
@@ -250,6 +261,10 @@ CFloatingDockContainer::CFloatingDockContainer(CDockAreaWidget* DockArea) :
|
||||
CFloatingDockContainer(DockArea->dockManager())
|
||||
{
|
||||
d->DockContainer->addDockArea(DockArea);
|
||||
if (!DockArea->features().testFlag(CDockWidget::DockWidgetClosable))
|
||||
{
|
||||
d->disableCloseButton();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -258,6 +273,10 @@ CFloatingDockContainer::CFloatingDockContainer(CDockWidget* DockWidget) :
|
||||
CFloatingDockContainer(DockWidget->dockManager())
|
||||
{
|
||||
d->DockContainer->addDockWidget(CenterDockWidgetArea, DockWidget);
|
||||
if (!DockWidget->features().testFlag(CDockWidget::DockWidgetClosable))
|
||||
{
|
||||
d->disableCloseButton();
|
||||
}
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@@ -515,6 +534,10 @@ bool CFloatingDockContainer::restoreState(QXmlStreamReader& Stream, bool Testing
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!d->DockContainer->features().testFlag(CDockWidget::DockWidgetClosable))
|
||||
{
|
||||
d->disableCloseButton();
|
||||
}
|
||||
onDockAreasAddedOrRemoved();
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user