void ProjectTree::updateExternalFileWarning() { Core::IDocument *document = qobject_cast<Core::IDocument *>(sender()); if (!document || document->filePath().isEmpty()) return; Core::InfoBar *infoBar = document->infoBar(); Core::Id externalFileId(EXTERNAL_FILE_WARNING); if (!document->isModified()) { infoBar->removeInfo(externalFileId); return; } if (!infoBar->canInfoBeAdded(externalFileId)) return; const FileName fileName = document->filePath(); const QList<Project *> projects = SessionManager::projects(); if (projects.isEmpty()) return; foreach (Project *project, projects) { FileName projectDir = project->projectDirectory(); if (projectDir.isEmpty()) continue; if (fileName.isChildOf(projectDir)) return; // External file. Test if it under the same VCS QString topLevel; if (Core::VcsManager::findVersionControlForDirectory(projectDir.toString(), &topLevel) && fileName.isChildOf(FileName::fromString(topLevel))) { return; } }
void TabBar::addEditorTab(Core::IEditor *editor) { Core::IDocument *document = editor->document(); const int index = addTab(document->displayName()); setTabIcon(index, Core::FileIconProvider::icon(QFileInfo(document->filePath()))); setTabToolTip(index, document->filePath()); m_editors.append(editor); connect(document, &Core::IDocument::changed, [this, editor, document]() { const int index = m_editors.indexOf(editor); if (index == -1) return; QString tabText = document->displayName(); if (document->isModified()) tabText += QLatin1Char('*'); setTabText(index, tabText); }); }