@@ -95,6 +95,7 @@ struct DockWidgetPrivate
9595 CDockWidget::eMinimumSizeHintMode MinimumSizeHintMode = CDockWidget::MinimumSizeHintFromDockWidget;
9696 WidgetFactory* Factory = nullptr ;
9797 QPointer<CAutoHideTab> SideTabWidget;
98+ CDockWidget::eToolBarStyleSource ToolBarStyleSource = CDockWidget::ToolBarStyleFromDockManager;
9899
99100 /* *
100101 * Private data constructor
@@ -139,6 +140,11 @@ struct DockWidgetPrivate
139140 * returns true on success.
140141 */
141142 bool createWidgetFromFactory ();
143+
144+ /* *
145+ * Use the dock manager toolbar style and icon size for the different states
146+ */
147+ void setToolBarStyleFromDockManager ();
142148};
143149// struct DockWidgetPrivate
144150
@@ -331,6 +337,22 @@ bool DockWidgetPrivate::createWidgetFromFactory()
331337}
332338
333339
340+ // ============================================================================
341+ void DockWidgetPrivate::setToolBarStyleFromDockManager ()
342+ {
343+ if (!DockManager)
344+ {
345+ return ;
346+ }
347+ auto State = CDockWidget::StateDocked;
348+ _this->setToolBarIconSize (DockManager->dockWidgetToolBarIconSize (State), State);
349+ _this->setToolBarStyle (DockManager->dockWidgetToolBarStyle (State), State);
350+ State = CDockWidget::StateFloating;
351+ _this->setToolBarIconSize (DockManager->dockWidgetToolBarIconSize (State), State);
352+ _this->setToolBarStyle (DockManager->dockWidgetToolBarStyle (State), State);
353+ }
354+
355+
334356// ============================================================================
335357CDockWidget::CDockWidget (const QString &title, QWidget *parent) :
336358 QFrame (parent),
@@ -523,6 +545,15 @@ CDockManager* CDockWidget::dockManager() const
523545void CDockWidget::setDockManager (CDockManager* DockManager)
524546{
525547 d->DockManager = DockManager;
548+ if (!DockManager)
549+ {
550+ return ;
551+ }
552+
553+ if (ToolBarStyleFromDockManager == d->ToolBarStyleSource )
554+ {
555+ d->setToolBarStyleFromDockManager ();
556+ }
526557}
527558
528559
@@ -1284,6 +1315,24 @@ void CDockWidget::toggleAutoHide(SideBarLocation Location)
12841315}
12851316
12861317
1318+ // ============================================================================
1319+ void CDockWidget::setToolBarStyleSource (eToolBarStyleSource Source)
1320+ {
1321+ d->ToolBarStyleSource = Source;
1322+ if (ToolBarStyleFromDockManager == d->ToolBarStyleSource )
1323+ {
1324+ d->setToolBarStyleFromDockManager ();
1325+ }
1326+ }
1327+
1328+
1329+ // ============================================================================
1330+ CDockWidget::eToolBarStyleSource CDockWidget::toolBarStyleSource () const
1331+ {
1332+ return d->ToolBarStyleSource ;
1333+ }
1334+
1335+
12871336} // namespace ads
12881337
12891338// ---------------------------------------------------------------------------
0 commit comments