| 503 | } |
| 504 | |
| 505 | bool Project::open( const Path& projectFile ) |
| 506 | { |
| 507 | Q_D(Project); |
| 508 | |
| 509 | d->initProject(projectFile); |
| 510 | if (!d->initProjectFiles()) |
| 511 | return false; |
| 512 | |
| 513 | KConfigGroup projectGroup = d->initKConfigObject(); |
| 514 | if (d->projectNameUsed(projectGroup)) |
| 515 | return false; |
| 516 | |
| 517 | d->projectPath = d->projectFile.parent(); |
| 518 | |
| 519 | IProjectFileManager* iface = d->fetchFileManager(projectGroup); |
| 520 | if (!iface) |
| 521 | return false; |
| 522 | |
| 523 | Q_ASSERT(d->manager); |
| 524 | |
| 525 | emit aboutToOpen(this); |
| 526 | if (!d->importTopItem(iface) ) { |
| 527 | return false; |
| 528 | } |
| 529 | |
| 530 | d->loading=true; |
| 531 | d->loadVersionControlPlugin(projectGroup); |
| 532 | d->progress->setBuzzy(); |
| 533 | KJob* importJob = iface->createImportJob(d->topItem ); |
| 534 | connect(importJob, &KJob::result, |
| 535 | this, [this] (KJob* job) { Q_D(Project); d->importDone(job); } ); |
| 536 | Core::self()->runController()->registerJob( importJob ); |
| 537 | return true; |
| 538 | } |
| 539 | |
| 540 | void Project::close() |
| 541 | { |