| 354 | } |
| 355 | |
| 356 | DockWidget* DockWidget::splitInto(ads::DockWidgetArea dock_area, PlotWidget* plot) { |
| 357 | auto* parent_docker = qobject_cast<PlotDocker*>(dockManager()); |
| 358 | if (!parent_docker) { |
| 359 | return nullptr; |
| 360 | } |
| 361 | auto* new_widget = new DockWidget(plot, session_, catalog_, parent_docker, nullptr, false); |
| 362 | new_widget->setObjectWidgetFactory(object_widget_factory_); |
| 363 | auto* area = parent_docker->addDockWidget(dock_area, new_widget, dockAreaWidget()); |
| 364 | area->setAllowedAreas(ads::OuterDockAreas); |
| 365 | |
| 366 | connect(new_widget, &DockWidget::undoableChange, parent_docker, &PlotDocker::undoableChange); |
| 367 | connect(new_widget, &DockWidget::plotWidgetCreated, parent_docker, &PlotDocker::plotWidgetAdded); |
| 368 | connect(new_widget, &DockWidget::objectFamilyRequested, parent_docker, &PlotDocker::objectFamilyRequested); |
| 369 | connect(new_widget, &DockWidget::firstObjectTopicAdded, parent_docker, &PlotDocker::firstObjectTopicAdded); |
| 370 | emit undoableChange(); |
| 371 | emit parent_docker->dockAdded(new_widget); |
| 372 | if (new_widget->plotWidget() != nullptr) { |
| 373 | emit parent_docker->plotWidgetAdded(new_widget->plotWidget()); |
| 374 | } |
| 375 | return new_widget; |
| 376 | } |
| 377 | |
| 378 | PlotWidget* DockWidget::ensurePlotWidget() { |
| 379 | if (plot_widget_ == nullptr) { |
nothing calls this directly
no test coverage detected