| 462 | } |
| 463 | |
| 464 | void OnBrowserFilenameChanged(wxDataViewEvent& event) override |
| 465 | { |
| 466 | if (!(_filesystem->capabilities() & Filesystem::OP_MOVE)) |
| 467 | return; |
| 468 | |
| 469 | auto node = _filesystemModel->Find(event.GetItem()); |
| 470 | if (!node) |
| 471 | return; |
| 472 | |
| 473 | if (node->newname.empty()) |
| 474 | return; |
| 475 | if (node->newname == node->dirent->filename) |
| 476 | return; |
| 477 | |
| 478 | QueueJob( |
| 479 | [this, node]() mutable |
| 480 | { |
| 481 | auto oldPath = node->dirent->path; |
| 482 | auto newPath = oldPath.parent().concat(node->newname); |
| 483 | |
| 484 | newPath = ResolveFileConflicts_WT(newPath); |
| 485 | if (newPath.empty()) |
| 486 | return; |
| 487 | |
| 488 | _filesystem->moveFile(oldPath, newPath); |
| 489 | node->newname = ""; |
| 490 | |
| 491 | auto dirent = _filesystem->getDirent(newPath); |
| 492 | runOnUiThread( |
| 493 | [&]() |
| 494 | { |
| 495 | _filesystemModel->Delete(oldPath); |
| 496 | _filesystemModel->Add(dirent); |
| 497 | UpdateFilesystemData(); |
| 498 | }); |
| 499 | }); |
| 500 | } |
| 501 | |
| 502 | void OnBrowserRenameMenuItem(wxCommandEvent& event) override |
| 503 | { |
nothing calls this directly
no test coverage detected