-
Notifications
You must be signed in to change notification settings - Fork 585
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug when using CDockManager within CDockWidget #685
Comments
We also created nestedmanagers example project to let you easily reproduce the issue. |
Thank you for reporting a bug. Nesting dock managers or adding a dock manager to a dock widget is not an official feature of ADS. The nestedmanagers example is just a proof of concept what it is possible. If you would like to nest dock managers or use it this way, then you need to fix any issues by yourself - sorry. |
Please note the following: QtAds is currently not compatible with layered widgets created within dock panes since the problem will be absolutely the same. Here are some points:
|
What do you mean with layered widgets? Could you please elaborate? |
Assume someone would love to use fancy semitransparent top-level widget to display some info. This widget is tied to specific dockpane/widget. fancy-ticket-in-tabs.mp4And how it works with dockpanes in QtAds: fancy-ticket-in-docks.mp4The following test demonstrates how the patch from above affects QtAds behavior: fancy-ticket-in-fixed-docks.mp4 |
There is a bug we found in our project when using dock panes (aka
CDockWidget
) as a parent forCDockManager
.Please consider the following scenario:
TLDP
) represent specific object and contains corresponding set of tools (which are actually nested dock panes, akaNDP
).TLDPs
when working with different objects which activates itsNDPs
.NDPs
are also get shown/hidden when switching betweenTLDPs
. This was addressed in Hide the DockManager does not hide the floating widgets #380The actual problem is: when user activate floating
NDP
, switch to foreignTLDP2
and then switch back toTLDP1
QtAds subsystem get broken:NDP
is displayed incorrectly as a child ofTLDP1
in wrong position (out of visible area, need to scroll to find it) and is not available for relocation.NDPs
in the sameTLDP1
(available areas are not highlighted on the screen).The actual reason is incorrect switching between
TLDPs
withinCDockAreaWidget::setCurrentIndex
:This code internally caused changing of the top-level parent for floating dock panes (
CFloatingDockContainer
) and overlay objects (CDockOverlay
).We locally patched the code by replacing this line and the issue has gone:
Probably the same issue may occur due to the line
LayoutItem->widget()->setParent(nullptr)
inCDockAreaWidget::removeWidget(QWidget* Widget)
but we don't have such a use case in our project.Demo for the issue:
nestedmanager-bug.mp4
Behavior with the patched QtAds build:
nestedmanager-fixed-QtAds.mp4
The text was updated successfully, but these errors were encountered: