forked from qt-creator/qt-creator
ADS: Integrate newest base repository commits
* Update to newest version of ADS * Fix memory leak in DockContainerWidget Base repository was merged until commit 59b4dfb89c0c9c0e6035fe580088432312ed2d09 Change-Id: I357b21888fe6f0ec2160c8688d84cb7ecdcad079 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
committed by
Henning Gründl
parent
d0fccdc025
commit
e16a302a43
@@ -64,6 +64,7 @@ public:
|
||||
= DockWidget::MinimumSizeHintFromDockWidget;
|
||||
WidgetFactory *m_factory = nullptr;
|
||||
QPointer<AutoHideTab> m_sideTabWidget;
|
||||
DockWidget::eToolBarStyleSource m_toolBarStyleSource = DockWidget::ToolBarStyleFromDockManager;
|
||||
|
||||
/**
|
||||
* Private data constructor
|
||||
@@ -106,6 +107,11 @@ public:
|
||||
* Creates the content widget with the registered widget factory and returns true on success.
|
||||
*/
|
||||
bool createWidgetFromFactory();
|
||||
|
||||
/**
|
||||
* Use the dock manager toolbar style and icon size for the different states
|
||||
*/
|
||||
void setToolBarStyleFromDockManager();
|
||||
}; // class DockWidgetPrivate
|
||||
|
||||
DockWidgetPrivate::DockWidgetPrivate(DockWidget *parent)
|
||||
@@ -246,6 +252,19 @@ bool DockWidgetPrivate::createWidgetFromFactory()
|
||||
return true;
|
||||
}
|
||||
|
||||
void DockWidgetPrivate::setToolBarStyleFromDockManager()
|
||||
{
|
||||
if (!m_dockManager)
|
||||
return;
|
||||
|
||||
auto state = DockWidget::StateDocked;
|
||||
q->setToolBarIconSize(m_dockManager->dockWidgetToolBarIconSize(state), state);
|
||||
q->setToolBarStyle(m_dockManager->dockWidgetToolBarStyle(state), state);
|
||||
state = DockWidget::StateFloating;
|
||||
q->setToolBarIconSize(m_dockManager->dockWidgetToolBarIconSize(state), state);
|
||||
q->setToolBarStyle(m_dockManager->dockWidgetToolBarStyle(state), state);
|
||||
}
|
||||
|
||||
DockWidget::DockWidget(const QString &uniqueId, QWidget *parent)
|
||||
: QFrame(parent)
|
||||
, d(new DockWidgetPrivate(this))
|
||||
@@ -381,6 +400,12 @@ DockManager *DockWidget::dockManager() const
|
||||
void DockWidget::setDockManager(DockManager *dockManager)
|
||||
{
|
||||
d->m_dockManager = dockManager;
|
||||
|
||||
if (!dockManager)
|
||||
return;
|
||||
|
||||
if (ToolBarStyleFromDockManager == d->m_toolBarStyleSource)
|
||||
d->setToolBarStyleFromDockManager();
|
||||
}
|
||||
|
||||
DockContainerWidget *DockWidget::dockContainer() const
|
||||
@@ -491,6 +516,18 @@ QAction *DockWidget::toggleViewAction() const
|
||||
return d->m_toggleViewAction;
|
||||
}
|
||||
|
||||
void DockWidget::setToggleViewAction(QAction *action)
|
||||
{
|
||||
if (!action)
|
||||
return;
|
||||
|
||||
d->m_toggleViewAction->setParent(nullptr);
|
||||
delete d->m_toggleViewAction;
|
||||
d->m_toggleViewAction = action;
|
||||
d->m_toggleViewAction->setParent(this);
|
||||
connect(d->m_toggleViewAction, &QAction::triggered, this, &DockWidget::toggleView);
|
||||
}
|
||||
|
||||
void DockWidget::setToggleViewActionMode(eToggleViewActionMode mode)
|
||||
{
|
||||
if (ActionModeToggle == mode) {
|
||||
@@ -693,6 +730,18 @@ void DockWidget::setToolBar(QToolBar *toolBar)
|
||||
setToolbarFloatingStyle(isFloating());
|
||||
}
|
||||
|
||||
void DockWidget::setToolBarStyleSource(eToolBarStyleSource source)
|
||||
{
|
||||
d->m_toolBarStyleSource = source;
|
||||
if (ToolBarStyleFromDockManager == d->m_toolBarStyleSource)
|
||||
d->setToolBarStyleFromDockManager();
|
||||
}
|
||||
|
||||
DockWidget::eToolBarStyleSource DockWidget::toolBarStyleSource() const
|
||||
{
|
||||
return d->m_toolBarStyleSource;
|
||||
}
|
||||
|
||||
void DockWidget::setToolBarStyle(Qt::ToolButtonStyle style, eState state)
|
||||
{
|
||||
if (StateFloating == state)
|
||||
|
||||
Reference in New Issue
Block a user