| 484 | bool AdaptixWidget::IsSynchronized() { return this->synchronized; } |
| 485 | |
| 486 | void AdaptixWidget::Close() |
| 487 | { |
| 488 | if (TickWorker) |
| 489 | disconnect(TickWorker, nullptr, this, nullptr); |
| 490 | |
| 491 | if (TickThread) { |
| 492 | TickThread->quit(); |
| 493 | TickThread->wait(); |
| 494 | } |
| 495 | |
| 496 | delete TickWorker; |
| 497 | TickWorker = nullptr; |
| 498 | |
| 499 | delete TickThread; |
| 500 | TickThread = nullptr; |
| 501 | |
| 502 | if (ChannelWsWorker) { |
| 503 | disconnect(ChannelWsWorker, nullptr, this, nullptr); |
| 504 | disconnect(ChannelWsWorker, nullptr, ScriptManager, nullptr); |
| 505 | QMetaObject::invokeMethod(ChannelWsWorker, "stopWorker", Qt::BlockingQueuedConnection); |
| 506 | } |
| 507 | |
| 508 | if (ChannelThread) { |
| 509 | ChannelThread->quit(); |
| 510 | ChannelThread->wait(); |
| 511 | } |
| 512 | |
| 513 | delete ChannelWsWorker; |
| 514 | ChannelWsWorker = nullptr; |
| 515 | |
| 516 | delete ChannelThread; |
| 517 | ChannelThread = nullptr; |
| 518 | |
| 519 | this->ClearAdaptix(); |
| 520 | |
| 521 | delete AxConsoleDock; |
| 522 | delete LogsDock; |
| 523 | delete ChatDock; |
| 524 | delete ListenersDock; |
| 525 | delete SessionsTableDock; |
| 526 | delete SessionsGraphDock; |
| 527 | delete TasksDock; |
| 528 | delete TunnelsDock; |
| 529 | delete DownloadsDock; |
| 530 | delete ScreenshotsDock; |
| 531 | delete CredentialsDock; |
| 532 | delete TargetsDock; |
| 533 | |
| 534 | delete dockTop; |
| 535 | delete dockBottom; |
| 536 | delete mainDockWidget; |
| 537 | |
| 538 | delete dialogSyncPacket; |
| 539 | dialogSyncPacket = nullptr; |
| 540 | |
| 541 | delete profile; |
| 542 | profile = nullptr; |
| 543 | } |
no test coverage detected