Qt4Project: Handle special cases for renaming files

Task-number: QTCREATORBUG-9824
Change-Id: I1a237a57332c929844fdc230c96fba397d79d312
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Daniel Teske
2013-08-08 19:32:33 +02:00
parent abc4d5f9e2
commit ac94ae8112
2 changed files with 50 additions and 28 deletions

View File

@@ -1031,7 +1031,7 @@ bool Qt4PriFileNode::renameFile(const QString &filePath, const QString &newFileP
bool changeProFileOptional = deploysFolder(QFileInfo(filePath).absolutePath()); bool changeProFileOptional = deploysFolder(QFileInfo(filePath).absolutePath());
const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase(); const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
const Core::MimeType mt = mdb->findByFile(filePath); const Core::MimeType mt = mdb->findByFile(newFilePath);
QStringList dummy; QStringList dummy;
changeFiles(mt.type(), QStringList() << filePath, &dummy, RemoveFromProFile); changeFiles(mt.type(), QStringList() << filePath, &dummy, RemoveFromProFile);
@@ -1154,15 +1154,14 @@ void Qt4PriFileNode::changeFiles(const QString &mimeType,
includeFile = parser.parsedProBlock(contents, m_projectFilePath, 1); includeFile = parser.parsedProBlock(contents, m_projectFilePath, 1);
} }
const QStringList vars = varNames(mimeType);
QDir priFileDir = QDir(m_qt4ProFileNode->m_projectDir); QDir priFileDir = QDir(m_qt4ProFileNode->m_projectDir);
if (change == AddToProFile) { if (change == AddToProFile) {
// Use the first variable for adding. // Use the first variable for adding.
ProWriter::addFiles(includeFile, &lines, priFileDir, filePaths, vars.first()); ProWriter::addFiles(includeFile, &lines, priFileDir, filePaths, varNameForAdding(mimeType));
notChanged->clear(); notChanged->clear();
} else { // RemoveFromProFile } else { // RemoveFromProFile
*notChanged = ProWriter::removeFiles(includeFile, &lines, priFileDir, filePaths, vars); *notChanged = ProWriter::removeFiles(includeFile, &lines, priFileDir, filePaths, varNamesForRemoving());
} }
// save file // save file
@@ -1236,36 +1235,58 @@ QStringList Qt4PriFileNode::varNames(ProjectExplorer::FileType type)
//! \brief Qt4PriFileNode::varNames //! \brief Qt4PriFileNode::varNames
//! \param mimeType //! \param mimeType
//! \return the qmake variable name for the mime type //! \return the qmake variable name for the mime type
//! Note: For adding the first variable in the list is used //! Note: Only used for adding.
//! For removal all variables returned a searched for the file
//! //!
QStringList Qt4PriFileNode::varNames(const QString &mimeType) QString Qt4PriFileNode::varNameForAdding(const QString &mimeType)
{ {
QStringList vars;
if (mimeType == QLatin1String(ProjectExplorer::Constants::CPP_HEADER_MIMETYPE) if (mimeType == QLatin1String(ProjectExplorer::Constants::CPP_HEADER_MIMETYPE)
|| mimeType == QLatin1String(ProjectExplorer::Constants::C_HEADER_MIMETYPE)) { || mimeType == QLatin1String(ProjectExplorer::Constants::C_HEADER_MIMETYPE)) {
vars << QLatin1String("HEADERS"); return QLatin1String("HEADERS");
vars << QLatin1String("OBJECTIVE_HEADERS");
} else if (mimeType == QLatin1String(ProjectExplorer::Constants::CPP_SOURCE_MIMETYPE)
|| mimeType == QLatin1String(ProjectExplorer::Constants::C_SOURCE_MIMETYPE)) {
vars << QLatin1String("SOURCES");
} else if (mimeType == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)) {
vars << QLatin1String("OBJECTIVE_SOURCES");
} else if (mimeType == QLatin1String(ProjectExplorer::Constants::RESOURCE_MIMETYPE)) {
vars << QLatin1String("RESOURCES");
} else if (mimeType == QLatin1String(ProjectExplorer::Constants::FORM_MIMETYPE)) {
vars << QLatin1String("FORMS");
} else if (mimeType == QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE)) {
vars << QLatin1String("OTHER_FILES");
} else if (mimeType == QLatin1String(Constants::PROFILE_MIMETYPE)) {
vars << QLatin1String("SUBDIRS");
} else {
vars << QLatin1String("OTHER_FILES");
vars << QLatin1String("ICON");
} }
return vars;
if (mimeType == QLatin1String(ProjectExplorer::Constants::CPP_SOURCE_MIMETYPE)
|| mimeType == QLatin1String(ProjectExplorer::Constants::C_SOURCE_MIMETYPE)) {
return QLatin1String("SOURCES");
}
if (mimeType == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE))
return QLatin1String("OBJECTIVE_SOURCES");
if (mimeType == QLatin1String(ProjectExplorer::Constants::RESOURCE_MIMETYPE))
return QLatin1String("RESOURCES");
if (mimeType == QLatin1String(ProjectExplorer::Constants::FORM_MIMETYPE))
return QLatin1String("FORMS");
if (mimeType == QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE))
return QLatin1String("OTHER_FILES");
if (mimeType == QLatin1String(Constants::PROFILE_MIMETYPE))
return QLatin1String("SUBDIRS");
return QLatin1String("OTHER_FILES");
} }
//!
//! \brief Qt4PriFileNode::varNamesForRemoving
//! \return all qmake variables which are displayed in the project tree
//! Note: Only used for removing.
//!
QStringList Qt4PriFileNode::varNamesForRemoving()
{
QStringList vars;
vars << QLatin1String("HEADERS");
vars << QLatin1String("OBJECTIVE_HEADERS");
vars << QLatin1String("SOURCES");
vars << QLatin1String("OBJECTIVE_SOURCES");
vars << QLatin1String("RESOURCES");
vars << QLatin1String("FORMS");
vars << QLatin1String("OTHER_FILES");
vars << QLatin1String("SUBDIRS");
vars << QLatin1String("OTHER_FILES");
vars << QLatin1String("ICON");
return vars;
}
QStringList Qt4PriFileNode::dynamicVarNames(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative, QStringList Qt4PriFileNode::dynamicVarNames(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative,
QtSupport::BaseQtVersion *qtVersion) QtSupport::BaseQtVersion *qtVersion)

View File

@@ -172,7 +172,8 @@ public:
protected: protected:
void setIncludedInExactParse(bool b); void setIncludedInExactParse(bool b);
static QStringList varNames(ProjectExplorer::FileType type); static QStringList varNames(ProjectExplorer::FileType type);
static QStringList varNames(const QString &mimeType); static QStringList varNamesForRemoving();
static QString varNameForAdding(const QString &mimeType);
static QStringList dynamicVarNames(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative, QtSupport::BaseQtVersion *qtVersion); static QStringList dynamicVarNames(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative, QtSupport::BaseQtVersion *qtVersion);
static QSet<Utils::FileName> filterFilesProVariables(ProjectExplorer::FileType fileType, const QSet<Utils::FileName> &files); static QSet<Utils::FileName> filterFilesProVariables(ProjectExplorer::FileType fileType, const QSet<Utils::FileName> &files);
static QSet<Utils::FileName> filterFilesRecursiveEnumerata(ProjectExplorer::FileType fileType, const QSet<Utils::FileName> &files); static QSet<Utils::FileName> filterFilesRecursiveEnumerata(ProjectExplorer::FileType fileType, const QSet<Utils::FileName> &files);