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

Method ProjectSet

kdevplatform/shell/watcheddocumentset.cpp:302–320  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

300}
301
302ProjectSet::ProjectSet(QObject* parent)
303 : WatchedDocumentSet(parent)
304{
305 // Multiple projects can share a project file manager, e.g. CMakeManager. When a project P that
306 // is being opened uses an already tracked project file manager, fileAdded() is invoked for each file
307 // that belongs to P. If P contains thousands of files with many problems, KDevelop UI freezes,
308 // because the ProblemReporterModel model is reset on each document set change.
309 // Suspend adding files while a project is being opened. Derived classes connect to the signal
310 // IProjectController::projectOpened and add all of the newly opened project's files at once, if needed.
311 const auto* const projectController = ICore::self()->projectController();
312 connect(projectController, &IProjectController::projectAboutToBeOpened, this, [this] {
313 m_pauseAddingFiles = true;
314 });
315 const auto projectOpeningOver = [this] {
316 m_pauseAddingFiles = false;
317 };
318 connect(projectController, &IProjectController::projectOpened, this, projectOpeningOver);
319 connect(projectController, &IProjectController::projectOpeningAborted, this, projectOpeningOver);
320}
321
322void ProjectSet::fileAdded(ProjectFileItem* file)
323{

Callers

nothing calls this directly

Calls 1

projectControllerMethod · 0.80

Tested by

no test coverage detected