MCPcopy Create free account
hub / github.com/KDE/kdevelop / openProjectForUrl

Method openProjectForUrl

kdevplatform/shell/projectcontroller.cpp:774–806  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

772
773
774void ProjectController::openProjectForUrl(const QUrl& sourceUrl) {
775 Q_D(ProjectController);
776
777 Q_ASSERT(!sourceUrl.isRelative());
778 QUrl dirUrl = sourceUrl;
779 if (sourceUrl.isLocalFile() && !QFileInfo(sourceUrl.toLocalFile()).isDir()) {
780 dirUrl = dirUrl.adjusted(QUrl::RemoveFilename);
781 }
782 QUrl testAt = dirUrl;
783
784 d->m_foundProjectFile = false;
785
786 while(!testAt.path().isEmpty()) {
787 KIO::ListJob* job = KIO::listDir(testAt);
788
789 connect(job, &KIO::ListJob::entries, this, &ProjectController::eventuallyOpenProjectFile);
790 KJobWidgets::setWindow(job, ICore::self()->uiController()->activeMainWindow());
791 job->exec();
792 if(d->m_foundProjectFile) {
793 //Fine! We have directly opened the project
794 d->m_foundProjectFile = false;
795 return;
796 }
797 QUrl oldTest = testAt.adjusted(QUrl::RemoveFilename);
798 if(oldTest == testAt)
799 break;
800 }
801
802 QUrl askForOpen = d->dialog->askProjectConfigLocation(false, dirUrl);
803
804 if(askForOpen.isValid())
805 openProject(askForOpen);
806}
807
808void ProjectController::openProject( const QUrl &projectFile )
809{

Callers 3

remoteArgumentsFunction · 0.80
mainFunction · 0.80
executeMethod · 0.80

Calls 10

isLocalFileMethod · 0.80
toLocalFileMethod · 0.80
uiControllerMethod · 0.80
execMethod · 0.80
QFileInfoClass · 0.50
isEmptyMethod · 0.45
pathMethod · 0.45
activeMainWindowMethod · 0.45
isValidMethod · 0.45

Tested by

no test coverage detected