Merge remote-tracking branch 'origin/4.7'

Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri

Change-Id: I29916313f12e25f3942ac926f8e4d4490074978e
This commit is contained in:
Eike Ziller
2018-07-05 11:14:33 +02:00
108 changed files with 6218 additions and 3040 deletions

View File

@@ -129,28 +129,10 @@ void CompilerOptionsBuilder::enableExceptions()
add(QLatin1String("-fexceptions"));
}
static Utils::FileName absoluteDirectory(const QString &filePath)
{
return Utils::FileName::fromString(QFileInfo(filePath + '/').absolutePath());
}
static Utils::FileName projectTopLevelDirectory(const ProjectPart &projectPart)
{
if (!projectPart.project)
return Utils::FileName();
const Utils::FileName result = projectPart.project->projectDirectory();
const Utils::FileName vcsTopLevel = Utils::FileName::fromString(
Core::VcsManager::findTopLevelForDirectory(result.toString()));
if (result.isChildOf(vcsTopLevel))
return vcsTopLevel;
return result;
}
void CompilerOptionsBuilder::addHeaderPathOptions()
{
typedef ProjectPartHeaderPath HeaderPath;
const QString defaultPrefix = includeDirOption();
const Utils::FileName projectDirectory = projectTopLevelDirectory(m_projectPart);
QStringList result;
@@ -170,14 +152,7 @@ void CompilerOptionsBuilder::addHeaderPathOptions()
default: // This shouldn't happen, but let's be nice..:
// intentional fall-through:
case HeaderPath::IncludePath:
path = absoluteDirectory(headerPath.path);
if (projectDirectory.isEmpty()
|| path == projectDirectory
|| path.isChildOf(projectDirectory)) {
prefix = defaultPrefix;
} else {
prefix = SYSTEM_INCLUDE_PREFIX;
}
prefix = defaultPrefix;
break;
}

View File

@@ -96,7 +96,7 @@ class CppCurrentDocumentFilterTestCase
public:
CppCurrentDocumentFilterTestCase(const QString &fileName,
const ResultDataList &expectedResults)
: BasicLocatorFilterTest(PluginManager::getObject<CppCurrentDocumentFilter>())
: BasicLocatorFilterTest(CppTools::CppModelManager::instance()->currentDocumentFilter())
, m_editor(0)
, m_fileName(fileName)
{
@@ -158,9 +158,11 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data()
QTest::addColumn<QString>("searchText");
QTest::addColumn<ResultDataList>("expectedResults");
ILocatorFilter *cppFunctionsFilter = PluginManager::getObject<CppFunctionsFilter>();
ILocatorFilter *cppClassesFilter = PluginManager::getObject<CppClassesFilter>();
ILocatorFilter *cppLocatorFilter = PluginManager::getObject<CppLocatorFilter>();
CppModelManager *cppModelManager = CppModelManager::instance();
ILocatorFilter *cppFunctionsFilter = cppModelManager->functionsFilter();
ILocatorFilter *cppClassesFilter = cppModelManager->classesFilter();
ILocatorFilter *cppLocatorFilter = cppModelManager->locatorFilter();
MyTestDataDir testDirectory("testdata_basic");
const QString testFile = testDirectory.file("file1.cpp");

View File

@@ -390,6 +390,36 @@ void CppModelManager::setCurrentDocumentFilter(std::unique_ptr<Core::ILocatorFil
setFilter(d->m_currentDocumentFilter, std::move(filter));
}
Core::ILocatorFilter *CppModelManager::locatorFilter() const
{
return d->m_locatorFilter.get();
}
Core::ILocatorFilter *CppModelManager::classesFilter() const
{
return d->m_classesFilter.get();
}
Core::ILocatorFilter *CppModelManager::includesFilter() const
{
return d->m_includesFilter.get();
}
Core::ILocatorFilter *CppModelManager::functionsFilter() const
{
return d->m_functionsFilter.get();
}
Core::IFindFilter *CppModelManager::symbolsFindFilter() const
{
return d->m_symbolsFindFilter.get();
}
Core::ILocatorFilter *CppModelManager::currentDocumentFilter() const
{
return d->m_currentDocumentFilter.get();
}
FollowSymbolInterface &CppModelManager::followSymbolInterface() const
{
return d->m_activeModelManagerSupport->followSymbolInterface();

View File

@@ -219,6 +219,13 @@ public:
void setSymbolsFindFilter(std::unique_ptr<Core::IFindFilter> &&filter);
void setCurrentDocumentFilter(std::unique_ptr<Core::ILocatorFilter> &&filter);
Core::ILocatorFilter *locatorFilter() const;
Core::ILocatorFilter *classesFilter() const;
Core::ILocatorFilter *includesFilter() const;
Core::ILocatorFilter *functionsFilter() const;
Core::IFindFilter *symbolsFindFilter() const;
Core::ILocatorFilter *currentDocumentFilter() const;
void renameIncludes(const QString &oldFileName, const QString &newFileName);
signals: