Make resources of Python projects accessible from Qt Designer

Set node types for the various file types.

Fixes: QTCREATORBUG-23248
Change-Id: I0ce01f70103cf79fd6f8d07119cda7922367595c
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
This commit is contained in:
Friedemann Kleint
2019-11-27 15:37:59 +01:00
parent 50fad4f0f9
commit 0afc338f3c

View File

@@ -168,6 +168,21 @@ PythonProject::PythonProject(const FilePath &fileName)
connect(this, &PythonProject::projectFileIsDirty, this, [this]() { refresh(); });
}
static FileType getFileType(const QString &f)
{
const auto cs = HostOsInfo::isWindowsHost()
? Qt::CaseInsensitive : Qt::CaseSensitive;
if (f.endsWith(".pyproject", cs) || f.endsWith(".pyqtc", cs))
return FileType::Project;
if (f.endsWith(".qrc", cs))
return FileType::Resource;
if (f.endsWith(".ui", cs))
return FileType::Form;
if (f.endsWith(".qml", cs) || f.endsWith(".js", cs))
return FileType::QML;
return FileType::Source;
}
void PythonProject::refresh(Target *target)
{
ParseGuard guard = guardParsingRun();
@@ -178,8 +193,7 @@ void PythonProject::refresh(Target *target)
auto newRoot = std::make_unique<PythonProjectNode>(this);
for (const QString &f : qAsConst(m_files)) {
const QString displayName = baseDir.relativeFilePath(f);
const FileType fileType = f.endsWith(".pyproject") || f.endsWith(".pyqtc") ? FileType::Project
: FileType::Source;
const FileType fileType = getFileType(f);
newRoot->addNestedNode(std::make_unique<PythonFileNode>(FilePath::fromString(f),
displayName, fileType));
if (fileType == FileType::Source) {