| 414 | } |
| 415 | |
| 416 | void DockLayout::recreateDebuggerView(const QString& unique_name) |
| 417 | { |
| 418 | if (!g_debugger_window) |
| 419 | return; |
| 420 | |
| 421 | auto debugger_view_iterator = m_widgets.find(unique_name); |
| 422 | pxAssert(debugger_view_iterator != m_widgets.end()); |
| 423 | |
| 424 | DebuggerView* old_debugger_view = debugger_view_iterator->second; |
| 425 | |
| 426 | auto description_iterator = DockTables::DEBUGGER_VIEWS.find(old_debugger_view->metaObject()->className()); |
| 427 | pxAssert(description_iterator != DockTables::DEBUGGER_VIEWS.end()); |
| 428 | |
| 429 | const DockTables::DebuggerViewDescription& description = description_iterator->second; |
| 430 | |
| 431 | DebuggerViewParameters parameters; |
| 432 | parameters.unique_name = old_debugger_view->uniqueName(); |
| 433 | parameters.id = old_debugger_view->id(); |
| 434 | parameters.cpu = &DebugInterface::get(m_cpu); |
| 435 | parameters.cpu_override = old_debugger_view->cpuOverride(); |
| 436 | |
| 437 | DebuggerView* new_debugger_view = description.create_widget(parameters); |
| 438 | new_debugger_view->setCustomDisplayName(old_debugger_view->customDisplayName()); |
| 439 | new_debugger_view->setPrimary(old_debugger_view->isPrimary()); |
| 440 | debugger_view_iterator->second = new_debugger_view; |
| 441 | |
| 442 | if (m_is_active) |
| 443 | { |
| 444 | auto [controller, view] = DockUtils::dockWidgetFromName(unique_name); |
| 445 | if (view) |
| 446 | view->setWidget(new_debugger_view); |
| 447 | } |
| 448 | |
| 449 | delete old_debugger_view; |
| 450 | } |
| 451 | |
| 452 | void DockLayout::destroyDebuggerView(const QString& unique_name) |
| 453 | { |
no test coverage detected