| 462 | } |
| 463 | |
| 464 | void Project::reloadModel() |
| 465 | { |
| 466 | Q_D(Project); |
| 467 | |
| 468 | if (d->loading) { |
| 469 | d->scheduleReload = true; |
| 470 | return; |
| 471 | } |
| 472 | d->loading = true; |
| 473 | d->fileSet.clear(); |
| 474 | |
| 475 | // delete topItem and remove it from model |
| 476 | ProjectModel* model = Core::self()->projectController()->projectModel(); |
| 477 | model->removeRow( d->topItem->row() ); |
| 478 | d->topItem = nullptr; |
| 479 | |
| 480 | auto* iface = d->manager->extension<IProjectFileManager>(); |
| 481 | if (!d->importTopItem(iface)) |
| 482 | { |
| 483 | d->loading = false; |
| 484 | d->scheduleReload = false; |
| 485 | return; |
| 486 | } |
| 487 | |
| 488 | KJob* importJob = iface->createImportJob(d->topItem ); |
| 489 | setReloadJob(importJob); |
| 490 | d->fullReload = true; |
| 491 | Core::self()->runController()->registerJob( importJob ); |
| 492 | } |
| 493 | |
| 494 | void Project::setReloadJob(KJob* job) |
| 495 | { |