============================================================================
| 763 | |
| 764 | //============================================================================ |
| 765 | void CDockWidget::toggleViewInternal(bool Open) |
| 766 | { |
| 767 | CDockContainerWidget* DockContainer = dockContainer(); |
| 768 | CDockWidget* TopLevelDockWidgetBefore = DockContainer |
| 769 | ? DockContainer->topLevelDockWidget() : nullptr; |
| 770 | |
| 771 | d->Closed = !Open; |
| 772 | |
| 773 | if (Open) |
| 774 | { |
| 775 | d->showDockWidget(); |
| 776 | } |
| 777 | else |
| 778 | { |
| 779 | d->hideDockWidget(); |
| 780 | } |
| 781 | |
| 782 | d->ToggleViewAction->blockSignals(true); |
| 783 | d->ToggleViewAction->setChecked(Open); |
| 784 | d->ToggleViewAction->blockSignals(false); |
| 785 | if (d->DockArea) |
| 786 | { |
| 787 | d->DockArea->toggleDockWidgetView(this, Open); |
| 788 | if (d->DockArea->isAutoHide()) |
| 789 | { |
| 790 | d->DockArea->autoHideDockContainer()->toggleView(Open); |
| 791 | } |
| 792 | } |
| 793 | |
| 794 | if (Open && TopLevelDockWidgetBefore) |
| 795 | { |
| 796 | CDockWidget::emitTopLevelEventForWidget(TopLevelDockWidgetBefore, false); |
| 797 | } |
| 798 | |
| 799 | // Here we need to call the dockContainer() function again, because if |
| 800 | // this dock widget was unassigned before the call to showDockWidget() then |
| 801 | // it has a dock container now |
| 802 | DockContainer = dockContainer(); |
| 803 | CDockWidget* TopLevelDockWidgetAfter = DockContainer |
| 804 | ? DockContainer->topLevelDockWidget() : nullptr; |
| 805 | CDockWidget::emitTopLevelEventForWidget(TopLevelDockWidgetAfter, true); |
| 806 | CFloatingDockContainer* FloatingContainer = DockContainer |
| 807 | ? DockContainer->floatingWidget() : nullptr; |
| 808 | if (FloatingContainer) |
| 809 | { |
| 810 | FloatingContainer->updateWindowTitle(); |
| 811 | } |
| 812 | |
| 813 | if (!Open) |
| 814 | { |
| 815 | Q_EMIT closed(); |
| 816 | } |
| 817 | Q_EMIT viewToggled(Open); |
| 818 | } |
| 819 | |
| 820 | |
| 821 | //============================================================================ |
no test coverage detected