forked from qt-creator/qt-creator
ProjectExplorer: Use FileName for Node::path
Change-Id: I4a41cfb629be8bb06b4b0616cd4475525e617a51 Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
033a628cdc
commit
88e7f935f4
@@ -87,9 +87,8 @@ bool checkPackageName(const QString &packageName)
|
||||
return QRegExp(packageNameRegExp).exactMatch(packageName);
|
||||
}
|
||||
|
||||
Project *androidProject(const QString &file)
|
||||
Project *androidProject(const Utils::FileName &fileName)
|
||||
{
|
||||
Utils::FileName fileName = Utils::FileName::fromString(file);
|
||||
foreach (Project *project, SessionManager::projects()) {
|
||||
if (!project->activeTarget())
|
||||
continue;
|
||||
@@ -476,8 +475,7 @@ bool AndroidManifestEditorWidget::eventFilter(QObject *obj, QEvent *event)
|
||||
|
||||
void AndroidManifestEditorWidget::updateTargetComboBox()
|
||||
{
|
||||
const QString docPath(m_textEditorWidget->textDocument()->filePath().toString());
|
||||
Project *project = androidProject(docPath);
|
||||
Project *project = androidProject(m_textEditorWidget->textDocument()->filePath());
|
||||
QStringList items;
|
||||
if (project) {
|
||||
Kit *kit = project->activeTarget()->kit();
|
||||
@@ -696,7 +694,6 @@ void AndroidManifestEditorWidget::updateInfoBar()
|
||||
|
||||
void AndroidManifestEditorWidget::updateSdkVersions()
|
||||
{
|
||||
const QString docPath(m_textEditorWidget->textDocument()->filePath().toString());
|
||||
QPair<int, int> apiLevels = AndroidManager::apiLevelRange();
|
||||
for (int i = apiLevels.first; i < apiLevels.second + 1; ++i)
|
||||
m_androidMinSdkVersion->addItem(tr("API %1: %2")
|
||||
|
@@ -272,7 +272,7 @@ void AutotoolsProject::buildFileNodeTree(const QDir &directory,
|
||||
// nodes later.
|
||||
QHash<QString, Node *> nodeHash;
|
||||
foreach (Node * node, nodes(m_rootNode))
|
||||
nodeHash.insert(node->path(), node);
|
||||
nodeHash.insert(node->path().toString(), node);
|
||||
|
||||
// Add the sources to the filenode project tree. Sources
|
||||
// inside the same directory are grouped into a folder-node.
|
||||
@@ -317,11 +317,12 @@ void AutotoolsProject::buildFileNodeTree(const QDir &directory,
|
||||
const QString filePath = directory.absoluteFilePath(file);
|
||||
if (nodeHash.contains(filePath)) {
|
||||
nodeHash.remove(filePath);
|
||||
} else if (file == QLatin1String("Makefile.am") || file == QLatin1String("configure.ac")) {
|
||||
fileNodes.append(new FileNode(Utils::FileName::fromString(filePath),
|
||||
ProjectFileType, false));
|
||||
} else {
|
||||
if (file == QLatin1String("Makefile.am") || file == QLatin1String("configure.ac"))
|
||||
fileNodes.append(new FileNode(filePath, ProjectFileType, false));
|
||||
else
|
||||
fileNodes.append(new FileNode(filePath, ResourceType, false));
|
||||
fileNodes.append(new FileNode(Utils::FileName::fromString(filePath),
|
||||
ResourceType, false));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -351,9 +352,9 @@ void AutotoolsProject::buildFileNodeTree(const QDir &directory,
|
||||
|
||||
FolderNode *AutotoolsProject::insertFolderNode(const QDir &nodeDir, QHash<QString, Node *> &nodes)
|
||||
{
|
||||
const QString nodePath = nodeDir.absolutePath();
|
||||
QFileInfo rootInfo(m_rootNode->path());
|
||||
const QString rootPath = rootInfo.absolutePath();
|
||||
const Utils::FileName nodePath = Utils::FileName::fromString(nodeDir.absolutePath());
|
||||
QFileInfo rootInfo = m_rootNode->path().toFileInfo();
|
||||
const Utils::FileName rootPath = Utils::FileName::fromString(rootInfo.absolutePath());
|
||||
|
||||
// Do not create a folder for the root node
|
||||
if (rootPath == nodePath)
|
||||
@@ -379,7 +380,7 @@ FolderNode *AutotoolsProject::insertFolderNode(const QDir &nodeDir, QHash<QStrin
|
||||
}
|
||||
|
||||
parentFolder->addFolderNodes(QList<FolderNode *>() << folder);
|
||||
nodes.insert(nodePath, folder);
|
||||
nodes.insert(nodePath.toString(), folder);
|
||||
|
||||
return folder;
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ using namespace AutotoolsProjectManager::Internal;
|
||||
using namespace ProjectExplorer;
|
||||
|
||||
AutotoolsProjectNode::AutotoolsProjectNode(AutotoolsProject *project, Core::IDocument *projectFile) :
|
||||
ProjectNode(projectFile->filePath().toString()),
|
||||
ProjectNode(projectFile->filePath()),
|
||||
m_project(project),
|
||||
m_projectFile(projectFile)
|
||||
{
|
||||
|
@@ -731,7 +731,7 @@ QStringList Parser::projectNodeFileList(const FolderNode *node) const
|
||||
if (file->isGenerated())
|
||||
continue;
|
||||
|
||||
list << file->path();
|
||||
list << file->path().toString();
|
||||
}
|
||||
|
||||
foreach (const FolderNode *folder, subFolderNodes) {
|
||||
@@ -756,7 +756,7 @@ QStringList Parser::addProjectNode(const ParserTreeItem::Ptr &item, const Projec
|
||||
if (!node)
|
||||
return projectList;
|
||||
|
||||
const QString &nodePath = node->path();
|
||||
const QString nodePath = node->path().toString();
|
||||
|
||||
// our own files
|
||||
QStringList fileList;
|
||||
@@ -770,8 +770,8 @@ QStringList Parser::addProjectNode(const ParserTreeItem::Ptr &item, const Projec
|
||||
d->cachedPrjFileLists[nodePath] = fileList;
|
||||
}
|
||||
if (fileList.count() > 0) {
|
||||
addProject(item, fileList, node->path());
|
||||
projectList << node->path();
|
||||
addProject(item, fileList, node->path().toString());
|
||||
projectList << node->path().toString();
|
||||
}
|
||||
|
||||
// subnodes
|
||||
@@ -779,7 +779,7 @@ QStringList Parser::addProjectNode(const ParserTreeItem::Ptr &item, const Projec
|
||||
|
||||
foreach (const ProjectNode *project, projectNodes) {
|
||||
ParserTreeItem::Ptr itemPrj(new ParserTreeItem());
|
||||
SymbolInformation information(project->displayName(), project->path());
|
||||
SymbolInformation information(project->displayName(), project->path().toString());
|
||||
|
||||
projectList += addProjectNode(itemPrj, project);
|
||||
|
||||
@@ -800,7 +800,7 @@ QStringList Parser::getAllFiles(const ProjectNode *node)
|
||||
if (!node)
|
||||
return fileList;
|
||||
|
||||
const QString &nodePath = node->path();
|
||||
const QString nodePath = node->path().toString();
|
||||
|
||||
CitCachedPrjFileLists cit = d->cachedPrjFileLists.find(nodePath);
|
||||
// try to improve parsing speed by internal cache
|
||||
@@ -827,7 +827,7 @@ void Parser::addFlatTree(const ParserTreeItem::Ptr &item, const ProjectNode *nod
|
||||
fileList.removeDuplicates();
|
||||
|
||||
if (fileList.count() > 0) {
|
||||
addProject(item, fileList, node->path());
|
||||
addProject(item, fileList, node->path().toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -85,7 +85,7 @@ void CMakeEditor::finalizeInitialization()
|
||||
info.setCustomButtonInfo(tr("Build now"), [document]() {
|
||||
foreach (Project *p, SessionManager::projects()) {
|
||||
if (CMakeProject *cmakeProject = qobject_cast<CMakeProject *>(p)) {
|
||||
if (cmakeProject->isProjectFile(document->filePath().toString())) {
|
||||
if (cmakeProject->isProjectFile(document->filePath())) {
|
||||
ProjectExplorerPlugin::buildProject(cmakeProject);
|
||||
break;
|
||||
}
|
||||
|
@@ -85,7 +85,7 @@ using namespace Utils;
|
||||
/*!
|
||||
\class CMakeProject
|
||||
*/
|
||||
CMakeProject::CMakeProject(CMakeManager *manager, const QString &fileName)
|
||||
CMakeProject::CMakeProject(CMakeManager *manager, const FileName &fileName)
|
||||
: m_manager(manager),
|
||||
m_activeTarget(0),
|
||||
m_fileName(fileName),
|
||||
@@ -96,7 +96,7 @@ CMakeProject::CMakeProject(CMakeManager *manager, const QString &fileName)
|
||||
setProjectContext(Core::Context(CMakeProjectManager::Constants::PROJECTCONTEXT));
|
||||
setProjectLanguages(Core::Context(ProjectExplorer::Constants::LANG_CXX));
|
||||
|
||||
m_projectName = QFileInfo(fileName).absoluteDir().dirName();
|
||||
m_projectName = fileName.parentDir().fileName();
|
||||
|
||||
m_file = new CMakeFile(this, fileName);
|
||||
|
||||
@@ -133,8 +133,8 @@ void CMakeProject::changeActiveBuildConfiguration(ProjectExplorer::BuildConfigur
|
||||
if (!cbpFileFi.exists()) {
|
||||
mode = CMakeOpenProjectWizard::NeedToCreate;
|
||||
} else {
|
||||
foreach (const QString &file, m_watchedFiles) {
|
||||
if (QFileInfo(file).lastModified() > cbpFileFi.lastModified()) {
|
||||
foreach (const FileName &file, m_watchedFiles) {
|
||||
if (file.toFileInfo().lastModified() > cbpFileFi.lastModified()) {
|
||||
mode = CMakeOpenProjectWizard::NeedToUpdate;
|
||||
break;
|
||||
}
|
||||
@@ -234,7 +234,7 @@ bool CMakeProject::parseCMakeLists()
|
||||
|
||||
CMakeBuildConfiguration *activeBC = static_cast<CMakeBuildConfiguration *>(activeTarget()->activeBuildConfiguration());
|
||||
foreach (Core::IDocument *document, Core::DocumentModel::openedDocuments())
|
||||
if (isProjectFile(document->filePath().toString()))
|
||||
if (isProjectFile(document->filePath()))
|
||||
document->infoBar()->removeInfo("CMakeEditor.RunCMake");
|
||||
|
||||
// Find cbp file
|
||||
@@ -268,14 +268,14 @@ bool CMakeProject::parseCMakeLists()
|
||||
|
||||
//qDebug()<<"Building Tree";
|
||||
QList<ProjectExplorer::FileNode *> fileList = cbpparser.fileList();
|
||||
QSet<QString> projectFiles;
|
||||
QSet<FileName> projectFiles;
|
||||
if (cbpparser.hasCMakeFiles()) {
|
||||
fileList.append(cbpparser.cmakeFileList());
|
||||
foreach (const ProjectExplorer::FileNode *node, cbpparser.cmakeFileList())
|
||||
projectFiles.insert(node->path());
|
||||
} else {
|
||||
// Manually add the CMakeLists.txt file
|
||||
QString cmakeListTxt = projectDirectory().toString() + QLatin1String("/CMakeLists.txt");
|
||||
FileName cmakeListTxt = projectDirectory().appendPath(QLatin1String("CMakeLists.txt"));
|
||||
bool generated = false;
|
||||
fileList.append(new ProjectExplorer::FileNode(cmakeListTxt, ProjectExplorer::ProjectFileType, generated));
|
||||
projectFiles.insert(cmakeListTxt);
|
||||
@@ -285,7 +285,7 @@ bool CMakeProject::parseCMakeLists()
|
||||
|
||||
m_files.clear();
|
||||
foreach (ProjectExplorer::FileNode *fn, fileList)
|
||||
m_files.append(fn->path());
|
||||
m_files.append(fn->path().toString());
|
||||
m_files.sort();
|
||||
|
||||
buildTree(m_rootNode, fileList);
|
||||
@@ -347,7 +347,7 @@ bool CMakeProject::parseCMakeLists()
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CMakeProject::isProjectFile(const QString &fileName)
|
||||
bool CMakeProject::isProjectFile(const FileName &fileName)
|
||||
{
|
||||
return m_watchedFiles.contains(fileName);
|
||||
}
|
||||
@@ -409,7 +409,7 @@ void CMakeProject::buildTree(CMakeProjectNode *rootNode, QList<ProjectExplorer::
|
||||
foreach (ProjectExplorer::FileNode *fn, added) {
|
||||
// qDebug()<<"added"<<fn->path();
|
||||
// Get relative path to rootNode
|
||||
QString parentDir = QFileInfo(fn->path()).absolutePath();
|
||||
QString parentDir = fn->path().toFileInfo().absolutePath();
|
||||
ProjectExplorer::FolderNode *folder = findOrCreateFolder(rootNode, parentDir);
|
||||
folder->addFileNodes(QList<ProjectExplorer::FileNode *>()<< fn);
|
||||
}
|
||||
@@ -432,13 +432,13 @@ void CMakeProject::buildTree(CMakeProjectNode *rootNode, QList<ProjectExplorer::
|
||||
|
||||
ProjectExplorer::FolderNode *CMakeProject::findOrCreateFolder(CMakeProjectNode *rootNode, QString directory)
|
||||
{
|
||||
QString relativePath = QDir(QFileInfo(rootNode->path()).path()).relativeFilePath(directory);
|
||||
FileName path = rootNode->path().parentDir();
|
||||
QDir rootParentDir(path.toString());
|
||||
QString relativePath = rootParentDir.relativeFilePath(directory);
|
||||
QStringList parts = relativePath.split(QLatin1Char('/'), QString::SkipEmptyParts);
|
||||
ProjectExplorer::FolderNode *parent = rootNode;
|
||||
QString path = QFileInfo(rootNode->path()).path();
|
||||
foreach (const QString &part, parts) {
|
||||
path += QLatin1Char('/');
|
||||
path += part;
|
||||
path.appendPath(part);
|
||||
// Find folder in subFolders
|
||||
bool found = false;
|
||||
foreach (ProjectExplorer::FolderNode *folder, parent->subFolderNodes()) {
|
||||
@@ -522,7 +522,6 @@ bool CMakeProject::fromMap(const QVariantMap &map)
|
||||
} else {
|
||||
// We have a user file, but we could still be missing the cbp file
|
||||
// or simply run createXml with the saved settings
|
||||
QFileInfo sourceFileInfo(m_fileName);
|
||||
CMakeBuildConfiguration *activeBC = qobject_cast<CMakeBuildConfiguration *>(activeTarget()->activeBuildConfiguration());
|
||||
if (!activeBC)
|
||||
return false;
|
||||
@@ -532,7 +531,7 @@ bool CMakeProject::fromMap(const QVariantMap &map)
|
||||
CMakeOpenProjectWizard::Mode mode = CMakeOpenProjectWizard::Nothing;
|
||||
if (!cbpFileFi.exists())
|
||||
mode = CMakeOpenProjectWizard::NeedToCreate;
|
||||
else if (cbpFileFi.lastModified() < sourceFileInfo.lastModified())
|
||||
else if (cbpFileFi.lastModified() < m_fileName.toFileInfo().lastModified())
|
||||
mode = CMakeOpenProjectWizard::NeedToUpdate;
|
||||
|
||||
if (mode != CMakeOpenProjectWizard::Nothing) {
|
||||
@@ -737,12 +736,12 @@ void CMakeProject::createUiCodeModelSupport()
|
||||
|
||||
// CMakeFile
|
||||
|
||||
CMakeFile::CMakeFile(CMakeProject *parent, QString fileName)
|
||||
CMakeFile::CMakeFile(CMakeProject *parent, const FileName &fileName)
|
||||
: Core::IDocument(parent), m_project(parent)
|
||||
{
|
||||
setId("Cmake.ProjectFile");
|
||||
setMimeType(QLatin1String(Constants::CMAKEPROJECTMIMETYPE));
|
||||
setFilePath(FileName::fromString(fileName));
|
||||
setFilePath(fileName);
|
||||
}
|
||||
|
||||
bool CMakeFile::save(QString *errorString, const QString &fileName, bool autoSave)
|
||||
@@ -873,7 +872,7 @@ void CMakeCbpParser::sortFiles()
|
||||
{
|
||||
QLoggingCategory log("qtc.cmakeprojectmanager.filetargetmapping");
|
||||
QList<FileName> fileNames = Utils::transform(m_fileList, [] (FileNode *node) {
|
||||
return FileName::fromString(node->path());
|
||||
return node->path();
|
||||
});
|
||||
|
||||
Utils::sort(fileNames);
|
||||
@@ -1203,7 +1202,8 @@ void CMakeCbpParser::parseAdd()
|
||||
void CMakeCbpParser::parseUnit()
|
||||
{
|
||||
//qDebug()<<stream.attributes().value("filename");
|
||||
QString fileName = attributes().value(QLatin1String("filename")).toString();
|
||||
FileName fileName =
|
||||
FileName::fromUserInput(attributes().value(QLatin1String("filename")).toString());
|
||||
m_parsingCmakeUnit = false;
|
||||
while (!atEnd()) {
|
||||
readNext();
|
||||
@@ -1214,7 +1214,7 @@ void CMakeCbpParser::parseUnit()
|
||||
m_cmakeFileList.append( new ProjectExplorer::FileNode(fileName, ProjectExplorer::ProjectFileType, false));
|
||||
} else {
|
||||
bool generated = false;
|
||||
QString onlyFileName = FileName::fromString(fileName).fileName();
|
||||
QString onlyFileName = fileName.fileName();
|
||||
if ( (onlyFileName.startsWith(QLatin1String("moc_")) && onlyFileName.endsWith(QLatin1String(".cxx")))
|
||||
|| (onlyFileName.startsWith(QLatin1String("ui_")) && onlyFileName.endsWith(QLatin1String(".h")))
|
||||
|| (onlyFileName.startsWith(QLatin1String("qrc_")) && onlyFileName.endsWith(QLatin1String(".cxx"))))
|
||||
|
@@ -44,6 +44,8 @@
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/editormanager/ieditor.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QFuture>
|
||||
#include <QXmlStreamReader>
|
||||
#include <QPushButton>
|
||||
@@ -92,7 +94,7 @@ class CMakeProject : public ProjectExplorer::Project
|
||||
// for changeBuildDirectory
|
||||
friend class CMakeBuildSettingsWidget;
|
||||
public:
|
||||
CMakeProject(CMakeManager *manager, const QString &filename);
|
||||
CMakeProject(CMakeManager *manager, const Utils::FileName &filename);
|
||||
~CMakeProject();
|
||||
|
||||
QString displayName() const;
|
||||
@@ -108,7 +110,7 @@ public:
|
||||
|
||||
CMakeBuildTarget buildTargetForTitle(const QString &title);
|
||||
|
||||
bool isProjectFile(const QString &fileName);
|
||||
bool isProjectFile(const Utils::FileName &fileName);
|
||||
|
||||
bool parseCMakeLists();
|
||||
|
||||
@@ -142,7 +144,7 @@ private:
|
||||
|
||||
CMakeManager *m_manager;
|
||||
ProjectExplorer::Target *m_activeTarget;
|
||||
QString m_fileName;
|
||||
Utils::FileName m_fileName;
|
||||
CMakeFile *m_file;
|
||||
QString m_projectName;
|
||||
|
||||
@@ -151,7 +153,7 @@ private:
|
||||
QStringList m_files;
|
||||
QList<CMakeBuildTarget> m_buildTargets;
|
||||
QFileSystemWatcher *m_watcher;
|
||||
QSet<QString> m_watchedFiles;
|
||||
QSet<Utils::FileName> m_watchedFiles;
|
||||
QFuture<void> m_codeModelFuture;
|
||||
};
|
||||
|
||||
@@ -185,7 +187,7 @@ private:
|
||||
|
||||
QList<ProjectExplorer::FileNode *> m_fileList;
|
||||
QList<ProjectExplorer::FileNode *> m_cmakeFileList;
|
||||
QSet<QString> m_processedUnits;
|
||||
QSet<Utils::FileName> m_processedUnits;
|
||||
bool m_parsingCmakeUnit;
|
||||
|
||||
CMakeBuildTarget m_buildTarget;
|
||||
@@ -200,7 +202,7 @@ class CMakeFile : public Core::IDocument
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CMakeFile(CMakeProject *parent, QString fileName);
|
||||
CMakeFile(CMakeProject *parent, const Utils::FileName &fileName);
|
||||
|
||||
bool save(QString *errorString, const QString &fileName, bool autoSave);
|
||||
|
||||
|
@@ -112,14 +112,15 @@ void CMakeManager::runCMake(ProjectExplorer::Project *project)
|
||||
|
||||
ProjectExplorer::Project *CMakeManager::openProject(const QString &fileName, QString *errorString)
|
||||
{
|
||||
if (!QFileInfo(fileName).isFile()) {
|
||||
Utils::FileName file = Utils::FileName::fromString(fileName);
|
||||
if (!file.toFileInfo().isFile()) {
|
||||
if (errorString)
|
||||
*errorString = tr("Failed opening project \"%1\": Project is not a file")
|
||||
.arg(fileName);
|
||||
.arg(file.toUserOutput());
|
||||
return 0;
|
||||
}
|
||||
|
||||
return new CMakeProject(this, fileName);
|
||||
return new CMakeProject(this, file);
|
||||
}
|
||||
|
||||
QString CMakeManager::mimeType() const
|
||||
|
@@ -33,7 +33,7 @@
|
||||
using namespace CMakeProjectManager;
|
||||
using namespace CMakeProjectManager::Internal;
|
||||
|
||||
CMakeProjectNode::CMakeProjectNode(const QString &fileName)
|
||||
CMakeProjectNode::CMakeProjectNode(const Utils::FileName &fileName)
|
||||
: ProjectExplorer::ProjectNode(fileName)
|
||||
{
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ class CMakeProjectNode : public ProjectExplorer::ProjectNode
|
||||
{
|
||||
friend class CMakeProject;
|
||||
public:
|
||||
CMakeProjectNode(const QString &fileName);
|
||||
CMakeProjectNode(const Utils::FileName &fileName);
|
||||
virtual bool showInSimpleTree() const;
|
||||
virtual QList<ProjectExplorer::ProjectAction> supportedActions(Node *node) const;
|
||||
|
||||
|
@@ -51,8 +51,10 @@ static const char setupUiC[] = "setupUi";
|
||||
// Find the generated "ui_form.h" header of the form via project.
|
||||
static QString generatedHeaderOf(const QString &uiFileName)
|
||||
{
|
||||
if (const ProjectExplorer::Project *uiProject = ProjectExplorer::SessionManager::projectForFile(uiFileName))
|
||||
if (const ProjectExplorer::Project *uiProject =
|
||||
ProjectExplorer::SessionManager::projectForFile(Utils::FileName::fromString(uiFileName))) {
|
||||
return uiProject->generatedUiHeader(uiFileName);
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
|
@@ -513,16 +513,17 @@ bool QtCreatorIntegration::navigateToSlot(const QString &objectName,
|
||||
{
|
||||
typedef QMap<int, Document::Ptr> DocumentMap;
|
||||
|
||||
const QString currentUiFile = FormEditorW::activeEditor()->document()->filePath().toString();
|
||||
const Utils::FileName currentUiFile = FormEditorW::activeEditor()->document()->filePath();
|
||||
#if 0
|
||||
return Designer::Internal::navigateToSlot(currentUiFile, objectName, signalSignature, parameterNames, errorMessage);
|
||||
return Designer::Internal::navigateToSlot(currentUiFile.toString(), objectName,
|
||||
signalSignature, parameterNames, errorMessage);
|
||||
#endif
|
||||
// TODO: we should pass to findDocumentsIncluding an absolute path to generated .h file from ui.
|
||||
// Currently we are guessing the name of ui_<>.h file and pass the file name only to the findDocumentsIncluding().
|
||||
// The idea is that the .pro file knows if the .ui files is inside, and the .pro file knows it will
|
||||
// be generating the ui_<>.h file for it, and the .pro file knows what the generated file's name and its absolute path will be.
|
||||
// So we should somehow get that info from project manager (?)
|
||||
const QFileInfo fi(currentUiFile);
|
||||
const QFileInfo fi = currentUiFile.toFileInfo();
|
||||
const QString uiFolder = fi.absolutePath();
|
||||
const QString uicedName = QLatin1String("ui_") + fi.completeBaseName() + QLatin1String(".h");
|
||||
|
||||
@@ -532,7 +533,7 @@ bool QtCreatorIntegration::navigateToSlot(const QString &objectName,
|
||||
const Project *uiProject = SessionManager::projectForFile(currentUiFile);
|
||||
if (uiProject) {
|
||||
for (Snapshot::const_iterator i = docTable.begin(), ei = docTable.end(); i != ei; ++i) {
|
||||
const Project *project = SessionManager::projectForFile(i.key().toString());
|
||||
const Project *project = SessionManager::projectForFile(i.key());
|
||||
if (project == uiProject)
|
||||
newDocTable.insert(i.value());
|
||||
}
|
||||
|
@@ -74,10 +74,10 @@ void QrcFilesVisitor::visitFolderNode(FolderNode *folderNode)
|
||||
{
|
||||
foreach (const FileNode *fileNode, folderNode->fileNodes()) {
|
||||
if (fileNode->fileType() == ResourceType)
|
||||
m_qrcFiles.append(fileNode->path());
|
||||
m_qrcFiles.append(fileNode->path().toString());
|
||||
}
|
||||
if (dynamic_cast<ResourceEditor::ResourceTopLevelNode *>(folderNode))
|
||||
m_qrcFiles.append(folderNode->path());
|
||||
m_qrcFiles.append(folderNode->path().toString());
|
||||
}
|
||||
|
||||
// ------------ ResourceHandler
|
||||
@@ -125,7 +125,8 @@ void ResourceHandler::updateResources(bool updateProjectResources)
|
||||
qDebug() << "ResourceHandler::updateResources()" << fileName;
|
||||
|
||||
// Filename could change in the meantime.
|
||||
Project *project = SessionManager::projectForFile(fileName);
|
||||
Project *project = SessionManager::projectForFile(
|
||||
Utils::FileName::fromUserInput(QDir::fromNativeSeparators(fileName)));
|
||||
const bool dirty = m_form->property("_q_resourcepathchanged").toBool();
|
||||
if (dirty)
|
||||
m_form->setDirty(true);
|
||||
|
@@ -94,15 +94,15 @@ GenericProject::GenericProject(Manager *manager, const QString &fileName)
|
||||
|
||||
m_rootNode = new GenericProjectNode(this, m_creatorIDocument);
|
||||
|
||||
FileNode *projectFilesNode = new FileNode(m_filesFileName,
|
||||
FileNode *projectFilesNode = new FileNode(Utils::FileName::fromString(m_filesFileName),
|
||||
ProjectFileType,
|
||||
/* generated = */ false);
|
||||
|
||||
FileNode *projectIncludesNode = new FileNode(m_includesFileName,
|
||||
FileNode *projectIncludesNode = new FileNode(Utils::FileName::fromString(m_includesFileName),
|
||||
ProjectFileType,
|
||||
/* generated = */ false);
|
||||
|
||||
FileNode *projectConfigNode = new FileNode(m_configFileName,
|
||||
FileNode *projectConfigNode = new FileNode(Utils::FileName::fromString(m_configFileName),
|
||||
ProjectFileType,
|
||||
/* generated = */ false);
|
||||
|
||||
|
@@ -43,7 +43,7 @@ namespace GenericProjectManager {
|
||||
namespace Internal {
|
||||
|
||||
GenericProjectNode::GenericProjectNode(GenericProject *project, Core::IDocument *projectFile)
|
||||
: ProjectNode(projectFile->filePath().toString())
|
||||
: ProjectNode(projectFile->filePath())
|
||||
, m_project(project)
|
||||
, m_projectFile(projectFile)
|
||||
{
|
||||
@@ -104,7 +104,7 @@ void GenericProjectNode::refresh(QSet<QString> oldFileList)
|
||||
QSet<QString> added = newFileList;
|
||||
added.subtract(oldFileList);
|
||||
|
||||
QString baseDir = QFileInfo(path()).absolutePath();
|
||||
QString baseDir = path().toFileInfo().absolutePath();
|
||||
FilesInPathHash filesInPaths = sortFilesIntoPaths(baseDir, added);
|
||||
|
||||
FilesInPathHashConstIt cend = filesInPaths.constEnd();
|
||||
@@ -120,7 +120,8 @@ void GenericProjectNode::refresh(QSet<QString> oldFileList)
|
||||
QList<FileNode *> fileNodes;
|
||||
foreach (const QString &file, it.value()) {
|
||||
FileType fileType = SourceType; // ### FIXME
|
||||
FileNode *fileNode = new FileNode(file, fileType, /*generated = */ false);
|
||||
FileNode *fileNode = new FileNode(Utils::FileName::fromString(file),
|
||||
fileType, /*generated = */ false);
|
||||
fileNodes.append(fileNode);
|
||||
}
|
||||
|
||||
@@ -138,10 +139,11 @@ void GenericProjectNode::refresh(QSet<QString> oldFileList)
|
||||
|
||||
QList<FileNode *> fileNodes;
|
||||
foreach (const QString &file, it.value()) {
|
||||
foreach (FileNode *fn, folder->fileNodes())
|
||||
if (fn->path() == file)
|
||||
foreach (FileNode *fn, folder->fileNodes()) {
|
||||
if (fn->path().toString() == file)
|
||||
fileNodes.append(fn);
|
||||
}
|
||||
}
|
||||
|
||||
folder->removeFileNodes(fileNodes);
|
||||
}
|
||||
@@ -173,8 +175,8 @@ FolderNode *GenericProjectNode::createFolderByName(const QStringList &components
|
||||
|
||||
const QString component = components.at(end - 1);
|
||||
|
||||
const QString baseDir = QFileInfo(path()).path();
|
||||
FolderNode *folder = new FolderNode(baseDir + QLatin1Char('/') + folderName);
|
||||
const Utils::FileName folderPath = path().parentDir().appendPath(folderName);
|
||||
FolderNode *folder = new FolderNode(folderPath);
|
||||
folder->setDisplayName(component);
|
||||
|
||||
FolderNode *parent = findFolderByName(components, end - 1);
|
||||
@@ -201,10 +203,11 @@ FolderNode *GenericProjectNode::findFolderByName(const QStringList &components,
|
||||
if (!parent)
|
||||
return 0;
|
||||
|
||||
const QString baseDir = QFileInfo(path()).path();
|
||||
foreach (FolderNode *fn, parent->subFolderNodes())
|
||||
if (fn->path() == baseDir + QLatin1Char('/') + folderName)
|
||||
const QString baseDir = path().toFileInfo().path();
|
||||
foreach (FolderNode *fn, parent->subFolderNodes()) {
|
||||
if (fn->path().toString() == baseDir + QLatin1Char('/') + folderName)
|
||||
return fn;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -85,7 +85,7 @@ private:
|
||||
QStandardItemModel m_deviceTypeModel;
|
||||
};
|
||||
|
||||
IosRunConfiguration::IosRunConfiguration(Target *parent, Core::Id id, const QString &path)
|
||||
IosRunConfiguration::IosRunConfiguration(Target *parent, Core::Id id, const FileName &path)
|
||||
: RunConfiguration(parent, id)
|
||||
, m_profilePath(path)
|
||||
{
|
||||
@@ -190,7 +190,7 @@ IosDeployStep *IosRunConfiguration::deployStep() const
|
||||
return step;
|
||||
}
|
||||
|
||||
QString IosRunConfiguration::profilePath() const
|
||||
FileName IosRunConfiguration::profilePath() const
|
||||
{
|
||||
return m_profilePath;
|
||||
}
|
||||
@@ -302,8 +302,7 @@ bool IosRunConfiguration::isEnabled() const
|
||||
QString IosRunConfiguration::disabledReason() const
|
||||
{
|
||||
if (m_parseInProgress)
|
||||
return tr("The .pro file \"%1\" is currently being parsed.")
|
||||
.arg(FileName::fromString(m_profilePath).fileName());
|
||||
return tr("The .pro file \"%1\" is currently being parsed.").arg(m_profilePath.fileName());
|
||||
if (!m_parseSuccess)
|
||||
return static_cast<QmakeProject *>(target()->project())
|
||||
->disabledReasonForRunConfiguration(m_profilePath);
|
||||
|
@@ -54,14 +54,14 @@ class IosRunConfiguration : public ProjectExplorer::RunConfiguration
|
||||
friend class IosRunConfigurationFactory;
|
||||
|
||||
public:
|
||||
IosRunConfiguration(ProjectExplorer::Target *parent, Core::Id id, const QString &path);
|
||||
IosRunConfiguration(ProjectExplorer::Target *parent, Core::Id id, const Utils::FileName &path);
|
||||
|
||||
QWidget *createConfigurationWidget() Q_DECL_OVERRIDE;
|
||||
Utils::OutputFormatter *createOutputFormatter() const Q_DECL_OVERRIDE;
|
||||
IosDeployStep *deployStep() const;
|
||||
|
||||
QStringList commandLineArguments();
|
||||
QString profilePath() const;
|
||||
Utils::FileName profilePath() const;
|
||||
QString applicationName() const;
|
||||
Utils::FileName bundleDirectory() const;
|
||||
Utils::FileName localExecutable() const;
|
||||
@@ -87,7 +87,7 @@ private:
|
||||
friend class IosRunConfigurationWidget;
|
||||
void updateDisplayNames();
|
||||
|
||||
QString m_profilePath;
|
||||
Utils::FileName m_profilePath;
|
||||
QStringList m_arguments;
|
||||
QString m_lastDisabledReason;
|
||||
bool m_lastIsEnabled;
|
||||
|
@@ -58,13 +58,13 @@ namespace Internal {
|
||||
#define IOS_PREFIX "Qt4ProjectManager.IosRunConfiguration"
|
||||
#define IOS_RC_ID_PREFIX IOS_PREFIX ":"
|
||||
|
||||
static QString pathFromId(Core::Id id)
|
||||
static Utils::FileName pathFromId(Core::Id id)
|
||||
{
|
||||
QString pathStr = id.toString();
|
||||
const QString prefix = QLatin1String(IOS_RC_ID_PREFIX);
|
||||
if (!pathStr.startsWith(prefix))
|
||||
return QString();
|
||||
return pathStr.mid(prefix.size());
|
||||
return Utils::FileName();
|
||||
return Utils::FileName::fromString(pathStr.mid(prefix.size()));
|
||||
}
|
||||
|
||||
IosRunConfigurationFactory::IosRunConfigurationFactory(QObject *parent)
|
||||
@@ -111,7 +111,7 @@ QList<Core::Id> IosRunConfigurationFactory::availableCreationIds(Target *parent,
|
||||
|
||||
QString IosRunConfigurationFactory::displayNameForId(Core::Id id) const
|
||||
{
|
||||
return QFileInfo(pathFromId(id)).completeBaseName();
|
||||
return pathFromId(id).toFileInfo().completeBaseName();
|
||||
}
|
||||
|
||||
RunConfiguration *IosRunConfigurationFactory::clone(Target *parent, RunConfiguration *source)
|
||||
@@ -133,10 +133,12 @@ bool IosRunConfigurationFactory::canHandle(Target *t) const
|
||||
QList<RunConfiguration *> IosRunConfigurationFactory::runConfigurationsForNode(Target *t, const Node *n)
|
||||
{
|
||||
QList<RunConfiguration *> result;
|
||||
foreach (RunConfiguration *rc, t->runConfigurations())
|
||||
if (IosRunConfiguration *qt4c = qobject_cast<IosRunConfiguration *>(rc))
|
||||
foreach (RunConfiguration *rc, t->runConfigurations()) {
|
||||
if (IosRunConfiguration *qt4c = qobject_cast<IosRunConfiguration *>(rc)) {
|
||||
if (qt4c->profilePath() == n->path())
|
||||
result << rc;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@@ -281,7 +281,7 @@ void EditorConfiguration::setUseGlobalSettings(bool use)
|
||||
d->m_defaultCodeStyle->setCurrentDelegate(use ? TextEditorSettings::codeStyle() : 0);
|
||||
foreach (Core::IEditor *editor, Core::DocumentModel::editorsForOpenedDocuments()) {
|
||||
if (TextEditorWidget *widget = qobject_cast<TextEditorWidget *>(editor->widget())) {
|
||||
Project *project = SessionManager::projectForFile(editor->document()->filePath().toString());
|
||||
Project *project = SessionManager::projectForFile(editor->document()->filePath());
|
||||
if (project && project->editorConfiguration() == this)
|
||||
switchSettings(widget);
|
||||
}
|
||||
@@ -407,7 +407,7 @@ TabSettings actualTabSettings(const QString &fileName,
|
||||
{
|
||||
if (baseTextdocument)
|
||||
return baseTextdocument->tabSettings();
|
||||
if (Project *project = SessionManager::projectForFile(fileName))
|
||||
if (Project *project = SessionManager::projectForFile(Utils::FileName::fromString(fileName)))
|
||||
return project->editorConfiguration()->codeStyle()->tabSettings();
|
||||
return TextEditorSettings::codeStyle()->tabSettings();
|
||||
}
|
||||
|
@@ -169,7 +169,7 @@ void JsonSummaryPage::addToProject(const JsonWizard::GeneratorFiles &files)
|
||||
QMessageBox::critical(m_wizard, tr("Failed to Add to Project"),
|
||||
tr("Failed to add subproject \"%1\"\nto project \"%2\".")
|
||||
.arg(QDir::toNativeSeparators(generatedProject))
|
||||
.arg(QDir::toNativeSeparators(folder->path())));
|
||||
.arg(folder->path().toUserOutput()));
|
||||
return;
|
||||
}
|
||||
m_wizard->removeAttributeFromAllFiles(GeneratedFile::OpenProjectAttribute);
|
||||
@@ -181,7 +181,7 @@ void JsonSummaryPage::addToProject(const JsonWizard::GeneratorFiles &files)
|
||||
QStringList nativeFilePaths = Utils::transform(filePaths, &QDir::toNativeSeparators);
|
||||
QMessageBox::critical(wizard(), tr("Failed to Add to Project"),
|
||||
tr("Failed to add one or more files to project\n\"%1\" (%2).")
|
||||
.arg(QDir::toNativeSeparators(folder->path()),
|
||||
.arg(folder->path().toUserOutput(),
|
||||
nativeFilePaths.join(QLatin1String(", "))));
|
||||
return;
|
||||
}
|
||||
|
@@ -93,10 +93,10 @@ void FindNodesForFileVisitor::visitProjectNode(ProjectNode *node)
|
||||
|
||||
void FindNodesForFileVisitor::visitFolderNode(FolderNode *node)
|
||||
{
|
||||
if (node->path() == m_path)
|
||||
if (node->path().toString() == m_path)
|
||||
m_nodes << node;
|
||||
foreach (FileNode *fileNode, node->fileNodes()) {
|
||||
if (fileNode->path() == m_path)
|
||||
if (fileNode->path().toString() == m_path)
|
||||
m_nodes << fileNode;
|
||||
}
|
||||
}
|
||||
@@ -124,7 +124,7 @@ void FindAllFilesVisitor::visitProjectNode(ProjectNode *projectNode)
|
||||
|
||||
void FindAllFilesVisitor::visitFolderNode(FolderNode *folderNode)
|
||||
{
|
||||
m_filePaths.append(folderNode->path());
|
||||
m_filePaths.append(folderNode->path().toString());
|
||||
foreach (const FileNode *fileNode, folderNode->fileNodes())
|
||||
m_filePaths.append(fileNode->path());
|
||||
m_filePaths.append(fileNode->path().toString());
|
||||
}
|
||||
|
@@ -1902,29 +1902,28 @@ void ProjectExplorerPlugin::runConfigurationConfigurationFinished()
|
||||
|
||||
static QString pathOrDirectoryFor(Node *node, bool dir)
|
||||
{
|
||||
QString path = node->path();
|
||||
Utils::FileName path = node->path();
|
||||
QString location;
|
||||
FolderNode *folder = dynamic_cast<FolderNode *>(node);
|
||||
if (node->nodeType() == VirtualFolderNodeType && folder) {
|
||||
// Virtual Folder case
|
||||
// If there are files directly below or no subfolders, take the folder path
|
||||
if (!folder->fileNodes().isEmpty() || folder->subFolderNodes().isEmpty()) {
|
||||
location = path;
|
||||
location = path.toString();
|
||||
} else {
|
||||
// Otherwise we figure out a commonPath from the subfolders
|
||||
QStringList list;
|
||||
foreach (FolderNode *f, folder->subFolderNodes())
|
||||
list << f->path() + QLatin1Char('/');
|
||||
list << f->path().toString() + QLatin1Char('/');
|
||||
location = Utils::commonPath(list);
|
||||
}
|
||||
|
||||
QFileInfo fi(location);
|
||||
while ((!fi.exists() || !fi.isDir())
|
||||
&& !fi.isRoot())
|
||||
while ((!fi.exists() || !fi.isDir()) && !fi.isRoot())
|
||||
fi.setFile(fi.absolutePath());
|
||||
location = fi.absoluteFilePath();
|
||||
} else {
|
||||
QFileInfo fi(path);
|
||||
QFileInfo fi = path.toFileInfo();
|
||||
// remove any /suffixes, which e.g. ResourceNode uses
|
||||
// Note this should be removed again by making node->path() a true path again
|
||||
// That requires changes in both the VirtualFolderNode and ResourceNode
|
||||
@@ -2827,7 +2826,7 @@ void ProjectExplorerPluginPrivate::updateContextMenuActions()
|
||||
m_removeFileAction->setVisible(!enableDelete || enableRemove);
|
||||
m_renameFileAction->setEnabled(actions.contains(Rename));
|
||||
|
||||
DocumentManager::populateOpenWithMenu(m_openWithMenu, ProjectTree::currentNode()->path());
|
||||
DocumentManager::populateOpenWithMenu(m_openWithMenu, ProjectTree::currentNode()->path().toString());
|
||||
}
|
||||
|
||||
if (actions.contains(HidePathActions)) {
|
||||
@@ -2945,17 +2944,17 @@ void ProjectExplorerPlugin::removeProject()
|
||||
ProjectNode *subProjectNode = dynamic_cast<ProjectNode*>(ProjectTree::currentNode()->projectNode());
|
||||
ProjectNode *projectNode = dynamic_cast<ProjectNode *>(subProjectNode->parentFolderNode());
|
||||
if (projectNode) {
|
||||
RemoveFileDialog removeFileDialog(subProjectNode->path(), ICore::mainWindow());
|
||||
RemoveFileDialog removeFileDialog(subProjectNode->path().toString(), ICore::mainWindow());
|
||||
removeFileDialog.setDeleteFileVisible(false);
|
||||
if (removeFileDialog.exec() == QDialog::Accepted)
|
||||
projectNode->removeSubProjects(QStringList() << subProjectNode->path());
|
||||
projectNode->removeSubProjects(QStringList() << subProjectNode->path().toString());
|
||||
}
|
||||
}
|
||||
|
||||
void ProjectExplorerPlugin::openFile()
|
||||
{
|
||||
QTC_ASSERT(ProjectTree::currentNode(), return);
|
||||
EditorManager::openEditor(ProjectTree::currentNode()->path());
|
||||
EditorManager::openEditor(ProjectTree::currentNode()->path().toString());
|
||||
}
|
||||
|
||||
void ProjectExplorerPlugin::searchOnFileSystem()
|
||||
@@ -2983,7 +2982,7 @@ void ProjectExplorerPlugin::removeFile()
|
||||
|
||||
FileNode *fileNode = dynamic_cast<FileNode*>(currentNode);
|
||||
|
||||
QString filePath = currentNode->path();
|
||||
QString filePath = currentNode->path().toString();
|
||||
RemoveFileDialog removeFileDialog(filePath, ICore::mainWindow());
|
||||
|
||||
if (removeFileDialog.exec() == QDialog::Accepted) {
|
||||
@@ -3012,7 +3011,7 @@ void ProjectExplorerPlugin::deleteFile()
|
||||
|
||||
FileNode *fileNode = dynamic_cast<FileNode*>(currentNode);
|
||||
|
||||
QString filePath = currentNode->path();
|
||||
QString filePath = currentNode->path().toString();
|
||||
QMessageBox::StandardButton button =
|
||||
QMessageBox::question(ICore::mainWindow(),
|
||||
tr("Delete File"),
|
||||
@@ -3055,7 +3054,7 @@ void ProjectExplorerPlugin::renameFile()
|
||||
|
||||
void ProjectExplorerPlugin::renameFile(Node *node, const QString &newFilePath)
|
||||
{
|
||||
QString orgFilePath = QFileInfo(node->path()).absoluteFilePath();
|
||||
QString orgFilePath = node->path().toFileInfo().absoluteFilePath();
|
||||
|
||||
if (FileUtils::renameFile(orgFilePath, newFilePath)) {
|
||||
// Tell the project plugin about rename
|
||||
|
@@ -199,7 +199,7 @@ bool ProjectFileWizardExtension::processProject(
|
||||
if (m_context->wizard->kind() == IWizardFactory::ProjectWizard) {
|
||||
if (!static_cast<ProjectNode *>(folder)->addSubProjects(QStringList(generatedProject))) {
|
||||
*errorMessage = tr("Failed to add subproject \"%1\"\nto project \"%2\".")
|
||||
.arg(generatedProject).arg(folder->path());
|
||||
.arg(generatedProject).arg(folder->path().toUserOutput());
|
||||
return false;
|
||||
}
|
||||
*removeOpenProjectAttribute = true;
|
||||
@@ -207,7 +207,7 @@ bool ProjectFileWizardExtension::processProject(
|
||||
QStringList filePaths = Utils::transform(files, &GeneratedFile::path);
|
||||
if (!folder->addFiles(filePaths)) {
|
||||
*errorMessage = tr("Failed to add one or more files to project\n\"%1\" (%2).").
|
||||
arg(folder->path(), filePaths.join(QLatin1Char(',')));
|
||||
arg(folder->path().toUserOutput(), filePaths.join(QLatin1Char(',')));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@@ -63,8 +63,8 @@ bool sortNodes(Node *n1, Node *n2)
|
||||
FileNode *file2 = dynamic_cast<FileNode*>(n2);
|
||||
if (file1 && file1->fileType() == ProjectFileType) {
|
||||
if (file2 && file2->fileType() == ProjectFileType) {
|
||||
const QString fileName1 = Utils::FileName::fromString(file1->path()).fileName();
|
||||
const QString fileName2 = Utils::FileName::fromString(file2->path()).fileName();
|
||||
const QString fileName1 = file1->path().fileName();
|
||||
const QString fileName2 = file2->path().fileName();
|
||||
|
||||
int result = caseFriendlyCompare(fileName1, fileName2);
|
||||
if (result != 0)
|
||||
@@ -89,7 +89,7 @@ bool sortNodes(Node *n1, Node *n2)
|
||||
if (result != 0)
|
||||
return result < 0;
|
||||
|
||||
result = caseFriendlyCompare(project1->path(), project2->path());
|
||||
result = caseFriendlyCompare(project1->path().toString(), project2->path().toString());
|
||||
if (result != 0)
|
||||
return result < 0;
|
||||
return project1 < project2; // sort by pointer value
|
||||
@@ -109,7 +109,7 @@ bool sortNodes(Node *n1, Node *n2)
|
||||
return true;
|
||||
if (folder1->priority() < folder2->priority())
|
||||
return false;
|
||||
int result = caseFriendlyCompare(folder1->path(), folder2->path());
|
||||
int result = caseFriendlyCompare(folder1->path().toString(), folder2->path().toString());
|
||||
if (result != 0)
|
||||
return result < 0;
|
||||
else
|
||||
@@ -128,7 +128,7 @@ bool sortNodes(Node *n1, Node *n2)
|
||||
FolderNode *folder1 = static_cast<FolderNode*>(n1);
|
||||
FolderNode *folder2 = static_cast<FolderNode*>(n2);
|
||||
|
||||
int result = caseFriendlyCompare(folder1->path(), folder2->path());
|
||||
int result = caseFriendlyCompare(folder1->path().toString(), folder2->path().toString());
|
||||
if (result != 0)
|
||||
return result < 0;
|
||||
else
|
||||
@@ -146,8 +146,8 @@ bool sortNodes(Node *n1, Node *n2)
|
||||
if (result != 0)
|
||||
return result < 0;
|
||||
|
||||
const QString filePath1 = n1->path();
|
||||
const QString filePath2 = n2->path();
|
||||
const QString filePath1 = n1->path().toString();
|
||||
const QString filePath2 = n2->path().toString();
|
||||
|
||||
const QString fileName1 = Utils::FileName::fromString(filePath1).fileName();
|
||||
const QString fileName2 = Utils::FileName::fromString(filePath2).fileName();
|
||||
@@ -288,7 +288,7 @@ QVariant FlatModel::data(const QModelIndex &index, int role) const
|
||||
break;
|
||||
}
|
||||
case Qt::EditRole: {
|
||||
result = Utils::FileName::fromString(node->path()).fileName();
|
||||
result = node->path().fileName();
|
||||
break;
|
||||
}
|
||||
case Qt::ToolTipRole: {
|
||||
@@ -299,7 +299,7 @@ QVariant FlatModel::data(const QModelIndex &index, int role) const
|
||||
if (folderNode)
|
||||
result = folderNode->icon();
|
||||
else
|
||||
result = Core::FileIconProvider::icon(node->path());
|
||||
result = Core::FileIconProvider::icon(node->path().toString());
|
||||
break;
|
||||
}
|
||||
case Qt::FontRole: {
|
||||
@@ -310,7 +310,7 @@ QVariant FlatModel::data(const QModelIndex &index, int role) const
|
||||
break;
|
||||
}
|
||||
case Project::FilePathRole: {
|
||||
result = node->path();
|
||||
result = node->path().toString();
|
||||
break;
|
||||
}
|
||||
case Project::EnabledRole: {
|
||||
@@ -354,11 +354,10 @@ bool FlatModel::setData(const QModelIndex &index, const QVariant &value, int rol
|
||||
|
||||
Node *node = nodeForIndex(index);
|
||||
|
||||
QString orgFilePath = QFileInfo(node->path()).absoluteFilePath();
|
||||
QString dir = QFileInfo(orgFilePath).absolutePath();
|
||||
QString newFilePath = dir + QLatin1Char('/') + value.toString();
|
||||
Utils::FileName orgFilePath = node->path();
|
||||
Utils::FileName newFilePath = orgFilePath.parentDir().appendPath(value.toString());
|
||||
|
||||
ProjectExplorerPlugin::renameFile(node, newFilePath);
|
||||
ProjectExplorerPlugin::renameFile(node, newFilePath.toString());
|
||||
emit renamed(orgFilePath, newFilePath);
|
||||
return true;
|
||||
}
|
||||
@@ -515,7 +514,7 @@ QMimeData *FlatModel::mimeData(const QModelIndexList &indexes) const
|
||||
foreach (const QModelIndex &index, indexes) {
|
||||
Node *node = nodeForIndex(index);
|
||||
if (dynamic_cast<FileNode *>(node))
|
||||
data->addFile(node->path());
|
||||
data->addFile(node->path().toString());
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
@@ -31,6 +31,8 @@
|
||||
#ifndef PROJECTMODELS_H
|
||||
#define PROJECTMODELS_H
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QAbstractItemModel>
|
||||
#include <QSet>
|
||||
|
||||
@@ -79,7 +81,7 @@ public:
|
||||
bool generatedFilesFilterEnabled();
|
||||
|
||||
signals:
|
||||
void renamed(const QString &oldName, const QString &newName);
|
||||
void renamed(const Utils::FileName &oldName, const Utils::FileName &newName);
|
||||
|
||||
public slots:
|
||||
void setProjectFilterEnabled(bool filter);
|
||||
|
@@ -65,8 +65,7 @@ using namespace ProjectExplorer;
|
||||
\sa ProjectExplorer::NodesWatcher, ProjectExplorer::NodesVisitor
|
||||
*/
|
||||
|
||||
Node::Node(NodeType nodeType,
|
||||
const QString &filePath, int line)
|
||||
Node::Node(NodeType nodeType, const Utils::FileName &filePath, int line)
|
||||
: m_nodeType(nodeType),
|
||||
m_line(line),
|
||||
m_projectNode(0),
|
||||
@@ -99,7 +98,7 @@ void Node::emitNodeSortKeyChanged()
|
||||
* This function does not emit any signals. That has to be done by the calling
|
||||
* class.
|
||||
*/
|
||||
void Node::setPath(const QString &path)
|
||||
void Node::setPath(const Utils::FileName &path)
|
||||
{
|
||||
if (m_path == path)
|
||||
return;
|
||||
@@ -120,7 +119,7 @@ void Node::setLine(int line)
|
||||
emitNodeUpdated();
|
||||
}
|
||||
|
||||
void Node::setPathAndLine(const QString &path, int line)
|
||||
void Node::setPathAndLine(const Utils::FileName &path, int line)
|
||||
{
|
||||
if (m_path == path
|
||||
&& m_line == line)
|
||||
@@ -157,7 +156,7 @@ FolderNode *Node::parentFolderNode() const
|
||||
/*!
|
||||
The path of the file or folder in the filesystem the node represents.
|
||||
*/
|
||||
QString Node::path() const
|
||||
Utils::FileName Node::path() const
|
||||
{
|
||||
return m_path;
|
||||
}
|
||||
@@ -169,12 +168,12 @@ int Node::line() const
|
||||
|
||||
QString Node::displayName() const
|
||||
{
|
||||
return Utils::FileName::fromString(path()).fileName();
|
||||
return path().fileName();
|
||||
}
|
||||
|
||||
QString Node::tooltip() const
|
||||
{
|
||||
return QDir::toNativeSeparators(path());
|
||||
return path().toUserOutput();
|
||||
}
|
||||
|
||||
bool Node::isEnabled() const
|
||||
@@ -220,7 +219,7 @@ void Node::setParentFolderNode(FolderNode *parentFolder)
|
||||
\sa ProjectExplorer::FolderNode, ProjectExplorer::ProjectNode
|
||||
*/
|
||||
|
||||
FileNode::FileNode(const QString &filePath,
|
||||
FileNode::FileNode(const Utils::FileName &filePath,
|
||||
const FileType fileType,
|
||||
bool generated, int line)
|
||||
: Node(FileNodeType, filePath, line),
|
||||
@@ -249,12 +248,12 @@ bool FileNode::isGenerated() const
|
||||
|
||||
\sa ProjectExplorer::FileNode, ProjectExplorer::ProjectNode
|
||||
*/
|
||||
FolderNode::FolderNode(const QString &folderPath, NodeType nodeType, const QString &displayName) :
|
||||
FolderNode::FolderNode(const Utils::FileName &folderPath, NodeType nodeType, const QString &displayName) :
|
||||
Node(nodeType, folderPath),
|
||||
m_displayName(displayName)
|
||||
{
|
||||
if (m_displayName.isEmpty())
|
||||
m_displayName = QDir::toNativeSeparators(folderPath);
|
||||
m_displayName = folderPath.toUserOutput();
|
||||
}
|
||||
|
||||
FolderNode::~FolderNode()
|
||||
@@ -349,7 +348,7 @@ bool FolderNode::renameFile(const QString &filePath, const QString &newFilePath)
|
||||
FolderNode::AddNewInformation FolderNode::addNewInformation(const QStringList &files, Node *context) const
|
||||
{
|
||||
Q_UNUSED(files);
|
||||
return AddNewInformation(Utils::FileName::fromString(path()).fileName(), context == this ? 120 : 100);
|
||||
return AddNewInformation(path().fileName(), context == this ? 120 : 100);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -517,7 +516,7 @@ bool FolderNode::showInSimpleTree() const
|
||||
|
||||
\sa ProjectExplorer::FileNode, ProjectExplorer::ProjectNode
|
||||
*/
|
||||
VirtualFolderNode::VirtualFolderNode(const QString &folderPath, int priority)
|
||||
VirtualFolderNode::VirtualFolderNode(const Utils::FileName &folderPath, int priority)
|
||||
: FolderNode(folderPath, VirtualFolderNodeType), m_priority(priority)
|
||||
{
|
||||
}
|
||||
@@ -544,18 +543,18 @@ int VirtualFolderNode::priority() const
|
||||
/*!
|
||||
Creates an uninitialized project node object.
|
||||
*/
|
||||
ProjectNode::ProjectNode(const QString &projectFilePath)
|
||||
ProjectNode::ProjectNode(const Utils::FileName &projectFilePath)
|
||||
: FolderNode(projectFilePath)
|
||||
{
|
||||
setNodeType(ProjectNodeType);
|
||||
// project node "manages" itself
|
||||
setProjectNode(this);
|
||||
setDisplayName(Utils::FileName::fromString(projectFilePath).fileName());
|
||||
setDisplayName(projectFilePath.fileName());
|
||||
}
|
||||
|
||||
QString ProjectNode::vcsTopic() const
|
||||
{
|
||||
const QString dir = QFileInfo(path()).absolutePath();
|
||||
const QString dir = path().toFileInfo().absolutePath();
|
||||
|
||||
if (Core::IVersionControl *const vc =
|
||||
Core::VcsManager::findVersionControlForDirectory(dir))
|
||||
@@ -686,7 +685,7 @@ void ProjectNode::removeProjectNodes(const QList<ProjectNode*> &subProjects)
|
||||
*/
|
||||
|
||||
SessionNode::SessionNode()
|
||||
: FolderNode(QLatin1String("session"))
|
||||
: FolderNode(Utils::FileName::fromString(QLatin1String("session")))
|
||||
{
|
||||
setNodeType(SessionNodeType);
|
||||
}
|
||||
|
@@ -33,6 +33,8 @@
|
||||
|
||||
#include "projectexplorer_export.h"
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QIcon>
|
||||
|
||||
#include <QObject>
|
||||
@@ -111,7 +113,7 @@ public:
|
||||
NodeType nodeType() const;
|
||||
ProjectNode *projectNode() const; // managing project
|
||||
FolderNode *parentFolderNode() const; // parent folder or project
|
||||
QString path() const; // file system path
|
||||
Utils::FileName path() const; // file system path
|
||||
int line() const;
|
||||
virtual QString displayName() const;
|
||||
virtual QString tooltip() const;
|
||||
@@ -119,13 +121,13 @@ public:
|
||||
|
||||
virtual QList<ProjectAction> supportedActions(Node *node) const;
|
||||
|
||||
void setPath(const QString &path);
|
||||
void setPath(const Utils::FileName &path);
|
||||
void setLine(int line);
|
||||
void setPathAndLine(const QString &path, int line);
|
||||
void setPathAndLine(const Utils::FileName &path, int line);
|
||||
void emitNodeUpdated();
|
||||
|
||||
protected:
|
||||
Node(NodeType nodeType, const QString &path, int line = -1);
|
||||
Node(NodeType nodeType, const Utils::FileName &path, int line = -1);
|
||||
|
||||
void setNodeType(NodeType type);
|
||||
void setProjectNode(ProjectNode *project);
|
||||
@@ -139,13 +141,13 @@ private:
|
||||
int m_line;
|
||||
ProjectNode *m_projectNode;
|
||||
FolderNode *m_folderNode;
|
||||
QString m_path;
|
||||
Utils::FileName m_path;
|
||||
};
|
||||
|
||||
class PROJECTEXPLORER_EXPORT FileNode : public Node
|
||||
{
|
||||
public:
|
||||
FileNode(const QString &filePath, const FileType fileType, bool generated, int line = -1);
|
||||
FileNode(const Utils::FileName &filePath, const FileType fileType, bool generated, int line = -1);
|
||||
|
||||
FileType fileType() const;
|
||||
bool isGenerated() const;
|
||||
@@ -163,7 +165,7 @@ private:
|
||||
class PROJECTEXPLORER_EXPORT FolderNode : public Node
|
||||
{
|
||||
public:
|
||||
explicit FolderNode(const QString &folderPath, NodeType nodeType = FolderNodeType,
|
||||
explicit FolderNode(const Utils::FileName &folderPath, NodeType nodeType = FolderNodeType,
|
||||
const QString &displayName = QString());
|
||||
virtual ~FolderNode();
|
||||
|
||||
@@ -220,7 +222,7 @@ private:
|
||||
class PROJECTEXPLORER_EXPORT VirtualFolderNode : public FolderNode
|
||||
{
|
||||
public:
|
||||
explicit VirtualFolderNode(const QString &folderPath, int priority);
|
||||
explicit VirtualFolderNode(const Utils::FileName &folderPath, int priority);
|
||||
virtual ~VirtualFolderNode();
|
||||
|
||||
int priority() const;
|
||||
@@ -260,7 +262,7 @@ public:
|
||||
protected:
|
||||
// this is just the in-memory representation, a subclass
|
||||
// will add the persistent stuff
|
||||
explicit ProjectNode(const QString &projectFilePath);
|
||||
explicit ProjectNode(const Utils::FileName &projectFilePath);
|
||||
|
||||
private:
|
||||
QList<ProjectNode*> m_subProjectNodes;
|
||||
|
@@ -177,7 +177,7 @@ Project *ProjectTree::projectForNode(Node *node)
|
||||
void ProjectTree::updateFromDocumentManager(bool invalidCurrentNode)
|
||||
{
|
||||
Core::IDocument *document = Core::EditorManager::currentDocument();
|
||||
const QString &fileName = document ? document->filePath().toString() : QString();
|
||||
const FileName fileName = document ? document->filePath() : FileName();
|
||||
|
||||
Node *currentNode = 0;
|
||||
if (!invalidCurrentNode && m_currentNode && m_currentNode->path() == fileName)
|
||||
|
@@ -217,7 +217,7 @@ int ProjectTreeWidget::expandedCount(Node *node)
|
||||
|
||||
void ProjectTreeWidget::rowsInserted(const QModelIndex &parent, int start, int end)
|
||||
{
|
||||
const QString &path = m_model->nodeForIndex(parent)->path();
|
||||
const QString path = m_model->nodeForIndex(parent)->path().toString();
|
||||
if (m_toExpand.contains(path)) {
|
||||
m_view->expand(parent);
|
||||
m_toExpand.remove(path);
|
||||
@@ -235,7 +235,7 @@ void ProjectTreeWidget::rowsInserted(const QModelIndex &parent, int start, int e
|
||||
}
|
||||
}
|
||||
|
||||
Node *ProjectTreeWidget::nodeForFile(const QString &fileName)
|
||||
Node *ProjectTreeWidget::nodeForFile(const Utils::FileName &fileName)
|
||||
{
|
||||
Node *bestNode = 0;
|
||||
int bestNodeExpandCount = INT_MAX;
|
||||
@@ -276,7 +276,7 @@ void ProjectTreeWidget::loadExpandData()
|
||||
|
||||
void ProjectTreeWidget::recursiveLoadExpandData(const QModelIndex &index, QSet<QString> &data)
|
||||
{
|
||||
const QString &path = m_model->nodeForIndex(index)->path();
|
||||
const QString path = m_model->nodeForIndex(index)->path().toString();
|
||||
if (data.contains(path)) {
|
||||
m_view->expand(index);
|
||||
data.remove(path);
|
||||
@@ -300,7 +300,7 @@ void ProjectTreeWidget::recursiveSaveExpandData(const QModelIndex &index, QStrin
|
||||
if (m_view->isExpanded(index) || index == m_view->rootIndex()) {
|
||||
// Note: We store the path of the node, which isn't unique for e.g. .pri files
|
||||
// but works for most nodes
|
||||
data->append(m_model->nodeForIndex(index)->path());
|
||||
data->append(m_model->nodeForIndex(index)->path().toString());
|
||||
int count = m_model->rowCount(index);
|
||||
for (int i = 0; i < count; ++i)
|
||||
recursiveSaveExpandData(index.child(i, 0), data);
|
||||
@@ -335,9 +335,9 @@ void ProjectTreeWidget::setAutoSynchronization(bool sync)
|
||||
|
||||
if (m_autoSync) {
|
||||
// sync from document manager
|
||||
QString fileName;
|
||||
Utils::FileName fileName;
|
||||
if (IDocument *doc = EditorManager::currentDocument())
|
||||
fileName = doc->filePath().toString();
|
||||
fileName = doc->filePath();
|
||||
if (!currentNode() || currentNode()->path() != fileName)
|
||||
setCurrentItem(ProjectTreeWidget::nodeForFile(fileName));
|
||||
}
|
||||
@@ -356,7 +356,7 @@ void ProjectTreeWidget::editCurrentItem()
|
||||
}
|
||||
|
||||
|
||||
void ProjectTreeWidget::renamed(const QString &oldPath, const QString &newPath)
|
||||
void ProjectTreeWidget::renamed(const Utils::FileName &oldPath, const Utils::FileName &newPath)
|
||||
{
|
||||
Q_UNUSED(oldPath);
|
||||
if (!currentNode() || currentNode()->path() != newPath) {
|
||||
@@ -452,7 +452,7 @@ void ProjectTreeWidget::openItem(const QModelIndex &mainIndex)
|
||||
Node *node = m_model->nodeForIndex(mainIndex);
|
||||
if (node->nodeType() != FileNodeType)
|
||||
return;
|
||||
IEditor *editor = EditorManager::openEditor(node->path());
|
||||
IEditor *editor = EditorManager::openEditor(node->path().toString());
|
||||
if (editor && node->line() >= 0)
|
||||
editor->gotoLine(node->line());
|
||||
}
|
||||
|
@@ -33,6 +33,8 @@
|
||||
|
||||
#include <coreplugin/inavigationwidgetfactory.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QWidget>
|
||||
#include <QModelIndex>
|
||||
#include <QSet>
|
||||
@@ -65,7 +67,7 @@ public:
|
||||
Node *currentNode();
|
||||
void sync(ProjectExplorer::Node *node);
|
||||
|
||||
static Node *nodeForFile(const QString &fileName);
|
||||
static Node *nodeForFile(const Utils::FileName &fileName);
|
||||
|
||||
public slots:
|
||||
void toggleAutoSynchronization();
|
||||
@@ -93,7 +95,7 @@ private:
|
||||
void recursiveSaveExpandData(const QModelIndex &index, QStringList *data);
|
||||
static int expandedCount(Node *node);
|
||||
void rowsInserted(const QModelIndex &parent, int start, int end);
|
||||
void renamed(const QString &oldPath, const QString &newPath);
|
||||
void renamed(const Utils::FileName &oldPath, const Utils::FileName &newPath);
|
||||
|
||||
QSet<QString> m_toExpand;
|
||||
QTreeView *m_view;
|
||||
@@ -106,7 +108,7 @@ private:
|
||||
QString m_modelId;
|
||||
bool m_autoSync;
|
||||
bool m_autoExpand;
|
||||
QString m_delayedRename;
|
||||
Utils::FileName m_delayedRename;
|
||||
|
||||
static QList<ProjectTreeWidget *> m_projectTreeWidgets;
|
||||
friend class ProjectTreeWidgetFactory;
|
||||
|
@@ -86,7 +86,7 @@ public:
|
||||
m_writer(0)
|
||||
{}
|
||||
|
||||
bool projectContainsFile(Project *p, const QString &fileName) const;
|
||||
bool projectContainsFile(Project *p, const FileName &fileName) const;
|
||||
void restoreValues(const PersistentSettingsReader &reader);
|
||||
void restoreDependencies(const PersistentSettingsReader &reader);
|
||||
void restoreStartupProject(const PersistentSettingsReader &reader);
|
||||
@@ -135,8 +135,8 @@ SessionManager::SessionManager(QObject *parent)
|
||||
connect(ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*)),
|
||||
this, SLOT(saveActiveMode(Core::IMode*)));
|
||||
|
||||
connect(EditorManager::instance(), SIGNAL(editorCreated(Core::IEditor*,QString)),
|
||||
this, SLOT(configureEditor(Core::IEditor*,QString)));
|
||||
connect(EditorManager::instance(), &EditorManager::editorCreated,
|
||||
this, &SessionManager::configureEditor);
|
||||
connect(this, SIGNAL(projectAdded(ProjectExplorer::Project*)),
|
||||
EditorManager::instance(), SLOT(updateWindowTitles()));
|
||||
connect(this, SIGNAL(projectRemoved(ProjectExplorer::Project*)),
|
||||
@@ -217,7 +217,7 @@ QList<Project *> SessionManager::dependencies(const Project *project)
|
||||
|
||||
QList<Project *> projects;
|
||||
foreach (const QString &dep, proDeps) {
|
||||
if (Project *pro = projectForFile(dep))
|
||||
if (Project *pro = projectForFile(Utils::FileName::fromString(dep)))
|
||||
projects += pro;
|
||||
}
|
||||
|
||||
@@ -469,7 +469,8 @@ QString SessionManagerPrivate::windowTitleAddition(const QString &filePath)
|
||||
if (projects.size() == 1)
|
||||
return projects.first()->displayName();
|
||||
return QString();
|
||||
} else if (Project *project = SessionManager::projectForFile(filePath)) {
|
||||
} else if (Project *project = SessionManager::projectForFile(
|
||||
Utils::FileName::fromString(filePath))) {
|
||||
return project->displayName();
|
||||
} else {
|
||||
return QString();
|
||||
@@ -537,16 +538,16 @@ QList<Project *> SessionManager::projectOrder(Project *project)
|
||||
return result;
|
||||
}
|
||||
|
||||
QList<Node *> SessionManager::nodesForFile(const QString &fileName)
|
||||
QList<Node *> SessionManager::nodesForFile(const Utils::FileName &fileName)
|
||||
{
|
||||
FindNodesForFileVisitor findNodes(fileName);
|
||||
FindNodesForFileVisitor findNodes(fileName.toString());
|
||||
sessionNode()->accept(&findNodes);
|
||||
return findNodes.nodes();
|
||||
}
|
||||
|
||||
// node for file returns a randomly selected node if there are multiple
|
||||
// prefer to use nodesForFile and figure out which node you want
|
||||
Node *SessionManager::nodeForFile(const QString &fileName)
|
||||
Node *SessionManager::nodeForFile(const Utils::FileName &fileName)
|
||||
{
|
||||
Node *node = 0;
|
||||
foreach (Node *n, nodesForFile(fileName)) {
|
||||
@@ -574,7 +575,7 @@ Project *SessionManager::projectForNode(Node *node)
|
||||
return Utils::findOrDefault(d->m_projects, Utils::equal(&Project::rootProjectNode, rootProjectNode));
|
||||
}
|
||||
|
||||
Project *SessionManager::projectForFile(const QString &fileName)
|
||||
Project *SessionManager::projectForFile(const Utils::FileName &fileName)
|
||||
{
|
||||
if (debug)
|
||||
qDebug() << "SessionManager::projectForFile(" << fileName << ")";
|
||||
@@ -587,18 +588,18 @@ Project *SessionManager::projectForFile(const QString &fileName)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool SessionManagerPrivate::projectContainsFile(Project *p, const QString &fileName) const
|
||||
bool SessionManagerPrivate::projectContainsFile(Project *p, const Utils::FileName &fileName) const
|
||||
{
|
||||
if (!m_projectFileCache.contains(p))
|
||||
m_projectFileCache.insert(p, p->files(Project::AllFiles));
|
||||
|
||||
return m_projectFileCache.value(p).contains(fileName);
|
||||
return m_projectFileCache.value(p).contains(fileName.toString());
|
||||
}
|
||||
|
||||
void SessionManager::configureEditor(IEditor *editor, const QString &fileName)
|
||||
{
|
||||
if (TextEditor::BaseTextEditor *textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor)) {
|
||||
Project *project = projectForFile(fileName);
|
||||
Project *project = projectForFile(Utils::FileName::fromString(fileName));
|
||||
// Global settings are the default.
|
||||
if (project)
|
||||
project->editorConfiguration()->configureEditor(textEditor);
|
||||
@@ -608,7 +609,7 @@ void SessionManager::configureEditor(IEditor *editor, const QString &fileName)
|
||||
void SessionManager::configureEditors(Project *project)
|
||||
{
|
||||
foreach (IDocument *document, DocumentModel::openedDocuments()) {
|
||||
if (d->projectContainsFile(project, document->filePath().toString())) {
|
||||
if (d->projectContainsFile(project, document->filePath())) {
|
||||
foreach (IEditor *editor, DocumentModel::editorsForDocument(document)) {
|
||||
if (TextEditor::BaseTextEditor *textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor)) {
|
||||
project->editorConfiguration()->configureEditor(textEditor);
|
||||
|
@@ -117,9 +117,9 @@ public:
|
||||
static SessionNode *sessionNode();
|
||||
|
||||
static Project *projectForNode(Node *node);
|
||||
static QList<Node *> nodesForFile(const QString &fileName);
|
||||
static Node *nodeForFile(const QString &fileName);
|
||||
static Project *projectForFile(const QString &fileName);
|
||||
static QList<Node *> nodesForFile(const Utils::FileName &fileName);
|
||||
static Node *nodeForFile(const Utils::FileName &fileName);
|
||||
static Project *projectForFile(const Utils::FileName &fileName);
|
||||
|
||||
static QStringList projectsForSessionName(const QString &session);
|
||||
|
||||
|
@@ -248,8 +248,10 @@ public:
|
||||
// QbsFileNode:
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
QbsFileNode::QbsFileNode(const QString &filePath, const ProjectExplorer::FileType fileType,
|
||||
bool generated, int line) :
|
||||
QbsFileNode::QbsFileNode(const Utils::FileName &filePath,
|
||||
const ProjectExplorer::FileType fileType,
|
||||
bool generated,
|
||||
int line) :
|
||||
ProjectExplorer::FileNode(filePath, fileType, generated, line)
|
||||
{ }
|
||||
|
||||
@@ -265,7 +267,7 @@ QString QbsFileNode::displayName() const
|
||||
// QbsBaseProjectNode:
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
QbsBaseProjectNode::QbsBaseProjectNode(const QString &path) :
|
||||
QbsBaseProjectNode::QbsBaseProjectNode(const Utils::FileName &path) :
|
||||
ProjectExplorer::ProjectNode(path)
|
||||
{ }
|
||||
|
||||
@@ -334,7 +336,7 @@ static QList<ProjectExplorer::ProjectAction> supportedNodeActions(ProjectExplore
|
||||
return actions;
|
||||
actions << ProjectExplorer::AddNewFile << ProjectExplorer::AddExistingFile;
|
||||
if (node->nodeType() == ProjectExplorer::FileNodeType
|
||||
&& !project->qbsProject().buildSystemFiles().contains(node->path())) {
|
||||
&& !project->qbsProject().buildSystemFiles().contains(node->path().toString())) {
|
||||
actions << ProjectExplorer::RemoveFile;
|
||||
actions << ProjectExplorer::Rename;
|
||||
}
|
||||
@@ -346,14 +348,14 @@ static QList<ProjectExplorer::ProjectAction> supportedNodeActions(ProjectExplore
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
QbsGroupNode::QbsGroupNode(const qbs::GroupData &grp, const QString &productPath) :
|
||||
QbsBaseProjectNode(QString())
|
||||
QbsBaseProjectNode(Utils::FileName())
|
||||
{
|
||||
if (m_groupIcon.isNull())
|
||||
m_groupIcon = QIcon(QString::fromLatin1(Constants::QBS_GROUP_ICON));
|
||||
|
||||
setIcon(m_groupIcon);
|
||||
|
||||
QbsFileNode *idx = new QbsFileNode(grp.location().filePath(),
|
||||
QbsFileNode *idx = new QbsFileNode(Utils::FileName::fromString(grp.location().filePath()),
|
||||
ProjectExplorer::ProjectFileType, false,
|
||||
grp.location().line());
|
||||
addFileNodes(QList<ProjectExplorer::FileNode *>() << idx);
|
||||
@@ -447,7 +449,7 @@ void QbsGroupNode::updateQbsGroupData(const qbs::GroupData &grp, const QString &
|
||||
m_productPath = productPath;
|
||||
m_qbsGroupData = grp;
|
||||
|
||||
setPath(grp.location().filePath());
|
||||
setPath(Utils::FileName::fromString(grp.location().filePath()));
|
||||
setDisplayName(grp.name());
|
||||
|
||||
QbsFileNode *idx = 0;
|
||||
@@ -457,7 +459,8 @@ void QbsGroupNode::updateQbsGroupData(const qbs::GroupData &grp, const QString &
|
||||
break;
|
||||
}
|
||||
QTC_ASSERT(idx, return);
|
||||
idx->setPathAndLine(grp.location().filePath(), grp.location().line());
|
||||
idx->setPathAndLine(Utils::FileName::fromString(grp.location().filePath()),
|
||||
grp.location().line());
|
||||
|
||||
setupFiles(this, grp.allFilePaths(), productPath, updateExisting);
|
||||
|
||||
@@ -511,7 +514,7 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root,
|
||||
}
|
||||
|
||||
foreach (FileTreeNode *c, fileTree->children) {
|
||||
QString path = c->path();
|
||||
Utils::FileName path = Utils::FileName::fromString(c->path());
|
||||
|
||||
// Handle files:
|
||||
if (c->isFile()) {
|
||||
@@ -542,7 +545,8 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root,
|
||||
break;
|
||||
}
|
||||
if (!fn) {
|
||||
fn = new FolderNode(c->path(), ProjectExplorer::FolderNodeType,
|
||||
fn = new FolderNode(Utils::FileName::fromString(c->path()),
|
||||
ProjectExplorer::FolderNodeType,
|
||||
displayNameFromPath(c->path(), baseDir));
|
||||
root->addFolderNodes(QList<FolderNode *>() << fn);
|
||||
} else {
|
||||
@@ -565,14 +569,14 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root,
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
QbsProductNode::QbsProductNode(const qbs::Project &project, const qbs::ProductData &prd) :
|
||||
QbsBaseProjectNode(prd.location().filePath())
|
||||
QbsBaseProjectNode(Utils::FileName::fromString(prd.location().filePath()))
|
||||
{
|
||||
if (m_productIcon.isNull())
|
||||
m_productIcon = generateIcon(QString::fromLatin1(Constants::QBS_PRODUCT_OVERLAY_ICON));
|
||||
|
||||
setIcon(m_productIcon);
|
||||
|
||||
ProjectExplorer::FileNode *idx = new QbsFileNode(prd.location().filePath(),
|
||||
auto idx = new QbsFileNode(Utils::FileName::fromString(prd.location().filePath()),
|
||||
ProjectExplorer::ProjectFileType, false,
|
||||
prd.location().line());
|
||||
addFileNodes(QList<ProjectExplorer::FileNode *>() << idx);
|
||||
@@ -658,7 +662,7 @@ void QbsProductNode::setQbsProductData(const qbs::Project &project, const qbs::P
|
||||
bool updateExisting = productWasEnabled != productIsEnabled;
|
||||
|
||||
setDisplayName(QbsProject::productDisplayName(project, prd));
|
||||
setPath(prd.location().filePath());
|
||||
setPath(Utils::FileName::fromString(prd.location().filePath()));
|
||||
const QString &productPath = QFileInfo(prd.location().filePath()).absolutePath();
|
||||
|
||||
// Find the QbsFileNode we added earlier:
|
||||
@@ -669,7 +673,8 @@ void QbsProductNode::setQbsProductData(const qbs::Project &project, const qbs::P
|
||||
break;
|
||||
}
|
||||
QTC_ASSERT(idx, return);
|
||||
idx->setPathAndLine(prd.location().filePath(), prd.location().line());
|
||||
idx->setPathAndLine(Utils::FileName::fromString(prd.location().filePath()),
|
||||
prd.location().line());
|
||||
|
||||
QList<ProjectExplorer::ProjectNode *> toAdd;
|
||||
QList<ProjectExplorer::ProjectNode *> toRemove = subProjectNodes();
|
||||
@@ -732,7 +737,7 @@ QbsGroupNode *QbsProductNode::findGroupNode(const QString &name)
|
||||
// QbsProjectNode:
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
QbsProjectNode::QbsProjectNode(const QString &path) :
|
||||
QbsProjectNode::QbsProjectNode(const Utils::FileName &path) :
|
||||
QbsBaseProjectNode(path)
|
||||
{
|
||||
ctor();
|
||||
@@ -751,7 +756,8 @@ void QbsProjectNode::update(const qbs::Project &qbsProject, const qbs::ProjectDa
|
||||
foreach (const qbs::ProjectData &subData, prjData.subProjects()) {
|
||||
QbsProjectNode *qn = findProjectNode(subData.name());
|
||||
if (!qn) {
|
||||
QbsProjectNode *subProject = new QbsProjectNode(subData.location().filePath());
|
||||
auto subProject =
|
||||
new QbsProjectNode(Utils::FileName::fromString(subData.location().filePath()));
|
||||
subProject->update(qbsProject, subData);
|
||||
toAdd << subProject;
|
||||
} else {
|
||||
@@ -830,9 +836,9 @@ QbsProjectNode *QbsProjectNode::findProjectNode(const QString &name)
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
QbsRootProjectNode::QbsRootProjectNode(QbsProject *project) :
|
||||
QbsProjectNode(project->projectFilePath().toString()),
|
||||
QbsProjectNode(project->projectFilePath()),
|
||||
m_project(project),
|
||||
m_buildSystemFiles(new ProjectExplorer::FolderNode(project->projectDirectory().toString(),
|
||||
m_buildSystemFiles(new ProjectExplorer::FolderNode(project->projectDirectory(),
|
||||
ProjectExplorer::FolderNodeType,
|
||||
QCoreApplication::translate("QbsRootProjectNode", "Qbs files")))
|
||||
{
|
||||
|
@@ -51,7 +51,7 @@ class QbsProjectFile;
|
||||
class QbsFileNode : public ProjectExplorer::FileNode
|
||||
{
|
||||
public:
|
||||
QbsFileNode(const QString &filePath, const ProjectExplorer::FileType fileType, bool generated,
|
||||
QbsFileNode(const Utils::FileName &filePath, const ProjectExplorer::FileType fileType, bool generated,
|
||||
int line);
|
||||
|
||||
QString displayName() const;
|
||||
@@ -66,7 +66,7 @@ class QbsGroupNode;
|
||||
class QbsBaseProjectNode : public ProjectExplorer::ProjectNode
|
||||
{
|
||||
public:
|
||||
explicit QbsBaseProjectNode(const QString &path);
|
||||
explicit QbsBaseProjectNode(const Utils::FileName &path);
|
||||
|
||||
bool showInSimpleTree() const;
|
||||
|
||||
@@ -155,7 +155,7 @@ private:
|
||||
class QbsProjectNode : public QbsBaseProjectNode
|
||||
{
|
||||
public:
|
||||
explicit QbsProjectNode(const QString &path);
|
||||
explicit QbsProjectNode(const Utils::FileName &path);
|
||||
~QbsProjectNode();
|
||||
|
||||
virtual QbsProject *project() const;
|
||||
|
@@ -73,13 +73,13 @@ namespace Internal {
|
||||
static Node *currentEditorNode()
|
||||
{
|
||||
Core::IDocument *doc = Core::EditorManager::currentDocument();
|
||||
return doc ? SessionManager::nodeForFile(doc->filePath().toString()) : 0;
|
||||
return doc ? SessionManager::nodeForFile(doc->filePath()) : 0;
|
||||
}
|
||||
|
||||
static QbsProject *currentEditorProject()
|
||||
{
|
||||
Core::IDocument *doc = Core::EditorManager::currentDocument();
|
||||
return doc ? qobject_cast<QbsProject *>(SessionManager::projectForFile(doc->filePath().toString())) : 0;
|
||||
return doc ? qobject_cast<QbsProject *>(SessionManager::projectForFile(doc->filePath())) : 0;
|
||||
}
|
||||
|
||||
QbsProjectManagerPlugin::QbsProjectManagerPlugin() :
|
||||
@@ -288,7 +288,7 @@ void QbsProjectManagerPlugin::updateBuildActions()
|
||||
&& !BuildManager::isBuilding(m_editorProject)
|
||||
&& !m_editorProject->isParsing();
|
||||
|
||||
fileName = Utils::FileName::fromString(m_editorNode->path()).fileName();
|
||||
fileName = m_editorNode->path().fileName();
|
||||
fileVisible = m_editorProject && m_editorNode && dynamic_cast<QbsBaseProjectNode *>(m_editorNode->projectNode());
|
||||
|
||||
QbsProductNode *productNode
|
||||
@@ -361,7 +361,7 @@ void QbsProjectManagerPlugin::buildFileContextMenu()
|
||||
QTC_ASSERT(m_selectedNode, return);
|
||||
QTC_ASSERT(m_selectedProject, return);
|
||||
|
||||
buildSingleFile(m_selectedProject, m_selectedNode->path());
|
||||
buildSingleFile(m_selectedProject, m_selectedNode->path().toString());
|
||||
}
|
||||
|
||||
void QbsProjectManagerPlugin::buildFile()
|
||||
@@ -369,7 +369,7 @@ void QbsProjectManagerPlugin::buildFile()
|
||||
if (!m_editorProject || !m_editorNode)
|
||||
return;
|
||||
|
||||
buildSingleFile(m_editorProject, m_editorNode->path());
|
||||
buildSingleFile(m_editorProject, m_editorNode->path().toString());
|
||||
}
|
||||
|
||||
void QbsProjectManagerPlugin::buildProductContextMenu()
|
||||
|
@@ -156,7 +156,7 @@ ChooseDirectoryPage::ChooseDirectoryPage(CreateAndroidManifestWizard *wizard)
|
||||
|
||||
void ChooseDirectoryPage::checkPackageSourceDir()
|
||||
{
|
||||
QString projectDir = QFileInfo(m_wizard->node()->path()).absolutePath();
|
||||
QString projectDir = m_wizard->node()->path().toFileInfo().absolutePath();
|
||||
QString newDir = m_androidPackageSourceDir->path();
|
||||
bool isComplete = QFileInfo(projectDir) != QFileInfo(newDir);
|
||||
|
||||
@@ -182,7 +182,7 @@ void ChooseDirectoryPage::initializePage()
|
||||
"The files in the Android package source directory are copied to the build directory's "
|
||||
"Android directory and the default files are overwritten."));
|
||||
|
||||
m_androidPackageSourceDir->setPath(QFileInfo(m_wizard->node()->path()).absolutePath().append(QLatin1String("/android")));
|
||||
m_androidPackageSourceDir->setPath(m_wizard->node()->path().toFileInfo().absolutePath().append(QLatin1String("/android")));
|
||||
connect(m_androidPackageSourceDir, SIGNAL(changed(QString)),
|
||||
this, SLOT(checkPackageSourceDir()));
|
||||
} else {
|
||||
@@ -343,13 +343,14 @@ void CreateAndroidManifestWizard::createAndroidTemplateFiles()
|
||||
if (m_node->singleVariableValue(QmakeProjectManager::AndroidPackageSourceDir).isEmpty()) {
|
||||
// and now time for some magic
|
||||
QString value = QLatin1String("$$PWD/")
|
||||
+ QDir(QFileInfo(m_node->path()).absolutePath()).relativeFilePath(m_directory);
|
||||
+ m_node->path().toFileInfo().absoluteDir().relativeFilePath(m_directory);
|
||||
bool result =
|
||||
m_node->setProVariable(QLatin1String("ANDROID_PACKAGE_SOURCE_DIR"), QStringList(value));
|
||||
|
||||
if (!result) {
|
||||
QMessageBox::warning(this, tr("Project File not Updated"),
|
||||
tr("Could not update the .pro file %1.").arg(m_node->path()));
|
||||
tr("Could not update the .pro file %1.")
|
||||
.arg(m_node->path().toUserOutput()));
|
||||
}
|
||||
}
|
||||
Core::EditorManager::openEditor(m_directory + QLatin1String("/AndroidManifest.xml"));
|
||||
|
@@ -142,12 +142,12 @@ QmakeAndroidBuildApkStep::QmakeAndroidBuildApkStep(ProjectExplorer::BuildStepLis
|
||||
ctor();
|
||||
}
|
||||
|
||||
QString QmakeAndroidBuildApkStep::proFilePathForInputFile() const
|
||||
Utils::FileName QmakeAndroidBuildApkStep::proFilePathForInputFile() const
|
||||
{
|
||||
ProjectExplorer::RunConfiguration *rc = target()->activeRunConfiguration();
|
||||
if (auto *arc = qobject_cast<QmakeAndroidRunConfiguration *>(rc))
|
||||
return arc->proFilePath();
|
||||
return QString();
|
||||
return Utils::FileName();
|
||||
}
|
||||
|
||||
QmakeAndroidBuildApkStep::QmakeAndroidBuildApkStep(ProjectExplorer::BuildStepList *bc, QmakeAndroidBuildApkStep *other)
|
||||
|
@@ -66,7 +66,7 @@ class QmakeAndroidBuildApkStep : public Android::AndroidBuildApkStep
|
||||
Q_OBJECT
|
||||
public:
|
||||
QmakeAndroidBuildApkStep(ProjectExplorer::BuildStepList *bc);
|
||||
QString proFilePathForInputFile() const;
|
||||
Utils::FileName proFilePathForInputFile() const;
|
||||
void setProFilePathForInputFile(const QString &path);
|
||||
|
||||
|
||||
|
@@ -59,7 +59,7 @@ static QString pathFromId(const Core::Id id)
|
||||
return id.suffixAfter(ANDROID_RC_ID_PREFIX);
|
||||
}
|
||||
|
||||
QmakeAndroidRunConfiguration::QmakeAndroidRunConfiguration(Target *parent, Core::Id id, const QString &path)
|
||||
QmakeAndroidRunConfiguration::QmakeAndroidRunConfiguration(Target *parent, Core::Id id, const Utils::FileName &path)
|
||||
: AndroidRunConfiguration(parent, id)
|
||||
, m_proFilePath(path)
|
||||
{
|
||||
@@ -88,7 +88,7 @@ void QmakeAndroidRunConfiguration::init()
|
||||
bool QmakeAndroidRunConfiguration::fromMap(const QVariantMap &map)
|
||||
{
|
||||
const QDir projectDir = QDir(target()->project()->projectDirectory().toString());
|
||||
m_proFilePath = QDir::cleanPath(projectDir.filePath(map.value(PRO_FILE_KEY).toString()));
|
||||
m_proFilePath = Utils::FileName::fromUserInput(projectDir.filePath(map.value(PRO_FILE_KEY).toString()));
|
||||
m_parseSuccess = static_cast<QmakeProject *>(target()->project())->validParse(m_proFilePath);
|
||||
m_parseInProgress = static_cast<QmakeProject *>(target()->project())->parseInProgress(m_proFilePath);
|
||||
|
||||
@@ -105,7 +105,7 @@ QVariantMap QmakeAndroidRunConfiguration::toMap() const
|
||||
|
||||
const QDir projectDir = QDir(target()->project()->projectDirectory().toString());
|
||||
QVariantMap map(RunConfiguration::toMap());
|
||||
map.insert(PRO_FILE_KEY, projectDir.relativeFilePath(m_proFilePath));
|
||||
map.insert(PRO_FILE_KEY, projectDir.relativeFilePath(m_proFilePath.toString()));
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ QString QmakeAndroidRunConfiguration::disabledReason() const
|
||||
{
|
||||
if (m_parseInProgress)
|
||||
return tr("The .pro file \"%1\" is currently being parsed.")
|
||||
.arg(Utils::FileName::fromString(m_proFilePath).fileName());
|
||||
.arg(m_proFilePath.fileName());
|
||||
|
||||
if (!m_parseSuccess)
|
||||
return static_cast<QmakeProject *>(target()->project())->disabledReasonForRunConfiguration(m_proFilePath);
|
||||
@@ -147,7 +147,7 @@ void QmakeAndroidRunConfiguration::proFileUpdated(QmakeProjectManager::QmakeProF
|
||||
emit enabledChanged();
|
||||
}
|
||||
|
||||
QString QmakeAndroidRunConfiguration::proFilePath() const
|
||||
Utils::FileName QmakeAndroidRunConfiguration::proFilePath() const
|
||||
{
|
||||
return m_proFilePath;
|
||||
}
|
||||
|
@@ -33,6 +33,8 @@
|
||||
|
||||
#include <android/androidrunconfiguration.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
namespace QmakeProjectManager { class QmakeProFileNode; }
|
||||
|
||||
namespace QmakeAndroidSupport {
|
||||
@@ -44,9 +46,10 @@ class QmakeAndroidRunConfiguration : public Android::AndroidRunConfiguration
|
||||
friend class QmakeAndroidRunConfigurationFactory;
|
||||
|
||||
public:
|
||||
QmakeAndroidRunConfiguration(ProjectExplorer::Target *parent, Core::Id id, const QString &path = QString());
|
||||
QmakeAndroidRunConfiguration(ProjectExplorer::Target *parent, Core::Id id,
|
||||
const Utils::FileName &path = Utils::FileName());
|
||||
|
||||
QString proFilePath() const;
|
||||
Utils::FileName proFilePath() const;
|
||||
|
||||
bool isEnabled() const;
|
||||
QString disabledReason() const;
|
||||
@@ -64,7 +67,7 @@ private slots:
|
||||
private:
|
||||
void init();
|
||||
|
||||
mutable QString m_proFilePath;
|
||||
mutable Utils::FileName m_proFilePath;
|
||||
bool m_parseSuccess;
|
||||
bool m_parseInProgress;
|
||||
};
|
||||
|
@@ -52,9 +52,9 @@ namespace Internal {
|
||||
|
||||
static const char ANDROID_RC_ID_PREFIX[] = "Qt4ProjectManager.AndroidRunConfiguration:";
|
||||
|
||||
static QString pathFromId(const Core::Id id)
|
||||
static Utils::FileName pathFromId(const Core::Id id)
|
||||
{
|
||||
return id.suffixAfter(ANDROID_RC_ID_PREFIX);
|
||||
return Utils::FileName::fromString(id.suffixAfter(ANDROID_RC_ID_PREFIX));
|
||||
}
|
||||
|
||||
QmakeAndroidRunConfigurationFactory::QmakeAndroidRunConfigurationFactory(QObject *parent)
|
||||
@@ -64,7 +64,7 @@ QmakeAndroidRunConfigurationFactory::QmakeAndroidRunConfigurationFactory(QObject
|
||||
|
||||
QString QmakeAndroidRunConfigurationFactory::displayNameForId(Core::Id id) const
|
||||
{
|
||||
return QFileInfo(pathFromId(id)).completeBaseName();
|
||||
return pathFromId(id).toFileInfo().completeBaseName();
|
||||
}
|
||||
|
||||
bool QmakeAndroidRunConfigurationFactory::canCreate(Target *parent, Core::Id id) const
|
||||
|
@@ -119,7 +119,8 @@ Utils::FileName QmakeAndroidSupport::androiddeployJsonPath(ProjectExplorer::Targ
|
||||
if (!buildApkStep) // should never happen
|
||||
return Utils::FileName();
|
||||
|
||||
const QmakeProFileNode *node = pro->rootQmakeProjectNode()->findProFileFor(buildApkStep->proFilePathForInputFile());
|
||||
const QmakeProFileNode *node =
|
||||
pro->rootQmakeProjectNode()->findProFileFor(buildApkStep->proFilePathForInputFile());
|
||||
if (!node) // should never happen
|
||||
return Utils::FileName();
|
||||
|
||||
|
@@ -72,9 +72,9 @@ const char USE_TERMINAL_KEY[] = "Qt4ProjectManager.Qt4RunConfiguration.UseTermin
|
||||
const char USE_DYLD_IMAGE_SUFFIX_KEY[] = "Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix";
|
||||
const char USER_WORKING_DIRECTORY_KEY[] = "Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory";
|
||||
|
||||
static QString pathFromId(Core::Id id)
|
||||
static Utils::FileName pathFromId(Core::Id id)
|
||||
{
|
||||
return id.suffixAfter(QMAKE_RC_PREFIX);
|
||||
return Utils::FileName::fromString(id.suffixAfter(QMAKE_RC_PREFIX));
|
||||
}
|
||||
|
||||
//
|
||||
@@ -123,7 +123,7 @@ QString DesktopQmakeRunConfiguration::disabledReason() const
|
||||
{
|
||||
if (m_parseInProgress)
|
||||
return tr("The .pro file \"%1\" is currently being parsed.")
|
||||
.arg(FileName::fromString(m_proFilePath).fileName());
|
||||
.arg(m_proFilePath.fileName());
|
||||
|
||||
if (!m_parseSuccess)
|
||||
return static_cast<QmakeProject *>(target()->project())->disabledReasonForRunConfiguration(m_proFilePath);
|
||||
@@ -425,7 +425,7 @@ QVariantMap DesktopQmakeRunConfiguration::toMap() const
|
||||
const QDir projectDir = QDir(target()->project()->projectDirectory().toString());
|
||||
QVariantMap map(LocalApplicationRunConfiguration::toMap());
|
||||
map.insert(QLatin1String(COMMAND_LINE_ARGUMENTS_KEY), m_commandLineArguments);
|
||||
map.insert(QLatin1String(PRO_FILE_KEY), projectDir.relativeFilePath(m_proFilePath));
|
||||
map.insert(QLatin1String(PRO_FILE_KEY), projectDir.relativeFilePath(m_proFilePath.toString()));
|
||||
map.insert(QLatin1String(USE_TERMINAL_KEY), m_runMode == ApplicationLauncher::Console);
|
||||
map.insert(QLatin1String(USE_DYLD_IMAGE_SUFFIX_KEY), m_isUsingDyldImageSuffix);
|
||||
map.insert(QLatin1String(USER_WORKING_DIRECTORY_KEY), m_userWorkingDirectory);
|
||||
@@ -436,7 +436,7 @@ bool DesktopQmakeRunConfiguration::fromMap(const QVariantMap &map)
|
||||
{
|
||||
const QDir projectDir = QDir(target()->project()->projectDirectory().toString());
|
||||
m_commandLineArguments = map.value(QLatin1String(COMMAND_LINE_ARGUMENTS_KEY)).toString();
|
||||
m_proFilePath = QDir::cleanPath(projectDir.filePath(map.value(QLatin1String(PRO_FILE_KEY)).toString()));
|
||||
m_proFilePath = Utils::FileName::fromUserInput(projectDir.filePath(map.value(QLatin1String(PRO_FILE_KEY)).toString()));
|
||||
m_runMode = map.value(QLatin1String(USE_TERMINAL_KEY), false).toBool()
|
||||
? ApplicationLauncher::Console : ApplicationLauncher::Gui;
|
||||
m_isUsingDyldImageSuffix = map.value(QLatin1String(USE_DYLD_IMAGE_SUFFIX_KEY), false).toBool();
|
||||
@@ -560,7 +560,7 @@ void DesktopQmakeRunConfiguration::addToBaseEnvironment(Environment &env) const
|
||||
env.prependOrSetLibrarySearchPath(qtVersion->qmakeProperty("QT_INSTALL_LIBS"));
|
||||
}
|
||||
|
||||
QString DesktopQmakeRunConfiguration::proFilePath() const
|
||||
Utils::FileName DesktopQmakeRunConfiguration::proFilePath() const
|
||||
{
|
||||
return m_proFilePath;
|
||||
}
|
||||
@@ -569,7 +569,7 @@ QString DesktopQmakeRunConfiguration::defaultDisplayName()
|
||||
{
|
||||
QString defaultName;
|
||||
if (!m_proFilePath.isEmpty())
|
||||
defaultName = QFileInfo(m_proFilePath).completeBaseName();
|
||||
defaultName = m_proFilePath.toFileInfo().completeBaseName();
|
||||
else
|
||||
defaultName = tr("Qt Run Configuration");
|
||||
return defaultName;
|
||||
@@ -691,7 +691,7 @@ QList<Core::Id> DesktopQmakeRunConfigurationFactory::availableCreationIds(Target
|
||||
|
||||
QString DesktopQmakeRunConfigurationFactory::displayNameForId(Core::Id id) const
|
||||
{
|
||||
return QFileInfo(pathFromId(id)).completeBaseName();
|
||||
return pathFromId(id).toFileInfo().completeBaseName();
|
||||
}
|
||||
|
||||
bool DesktopQmakeRunConfigurationFactory::canHandle(Target *t) const
|
||||
|
@@ -35,6 +35,7 @@
|
||||
|
||||
#include <projectexplorer/localapplicationrunconfiguration.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QStringList>
|
||||
#include <QLabel>
|
||||
@@ -86,7 +87,7 @@ public:
|
||||
bool isUsingDyldImageSuffix() const;
|
||||
void setUsingDyldImageSuffix(bool state);
|
||||
|
||||
QString proFilePath() const;
|
||||
Utils::FileName proFilePath() const;
|
||||
|
||||
QVariantMap toMap() const;
|
||||
|
||||
@@ -126,7 +127,7 @@ private:
|
||||
|
||||
void updateTarget();
|
||||
QString m_commandLineArguments;
|
||||
QString m_proFilePath; // Full path to the Application Pro File
|
||||
Utils::FileName m_proFilePath; // Full path to the Application Pro File
|
||||
|
||||
// Cached startup sub project information
|
||||
ProjectExplorer::ApplicationLauncher::Mode m_runMode;
|
||||
|
@@ -132,7 +132,7 @@ bool ExternalQtEditor::getEditorLaunchData(const QString &fileName,
|
||||
QString *errorMessage) const
|
||||
{
|
||||
// Get the binary either from the current Qt version of the project or Path
|
||||
if (Project *project = SessionManager::projectForFile(fileName)) {
|
||||
if (Project *project = SessionManager::projectForFile(Utils::FileName::fromString(fileName))) {
|
||||
if (const Target *target = project->activeTarget()) {
|
||||
if (const QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(target->kit())) {
|
||||
data->binary = (qtVersion->*commandAccessor)();
|
||||
|
@@ -85,7 +85,7 @@ LibraryDetailsController::LibraryDetailsController(
|
||||
|
||||
if (!Utils::HostOsInfo::isLinuxHost()) {
|
||||
// project for which we are going to insert the snippet
|
||||
const Project *project = SessionManager::projectForFile(proFile);
|
||||
const Project *project = SessionManager::projectForFile(Utils::FileName::fromString(proFile));
|
||||
if (project && project->activeTarget()) {
|
||||
// if its tool chain is maemo behave the same as we would be on linux
|
||||
ProjectExplorer::ToolChain *tc = ToolChainKitInformation::toolChain(project->activeTarget()->kit());
|
||||
@@ -884,7 +884,7 @@ QString PackageLibraryDetailsController::snippet() const
|
||||
|
||||
bool PackageLibraryDetailsController::isLinkPackageGenerated() const
|
||||
{
|
||||
const Project *project = SessionManager::projectForFile(proFile());
|
||||
const Project *project = SessionManager::projectForFile(Utils::FileName::fromString(proFile()));
|
||||
if (!project)
|
||||
return false;
|
||||
|
||||
@@ -892,7 +892,8 @@ bool PackageLibraryDetailsController::isLinkPackageGenerated() const
|
||||
if (!rootProject)
|
||||
return false;
|
||||
|
||||
const QmakeProFileNode *currentProject = rootProject->findProFileFor(proFile());
|
||||
const QmakeProFileNode *currentProject =
|
||||
rootProject->findProFileFor(Utils::FileName::fromString(proFile()));
|
||||
if (!currentProject)
|
||||
return false;
|
||||
|
||||
@@ -1013,13 +1014,11 @@ AddLibraryWizard::MacLibraryType InternalLibraryDetailsController::suggestedMacL
|
||||
QString InternalLibraryDetailsController::suggestedIncludePath() const
|
||||
{
|
||||
const int currentIndex = libraryDetailsWidget()->libraryComboBox->currentIndex();
|
||||
QString includePath;
|
||||
if (currentIndex >= 0) {
|
||||
QmakeProFileNode *proFileNode = m_proFileNodes.at(currentIndex);
|
||||
QFileInfo fi(proFileNode->path());
|
||||
includePath = fi.absolutePath();
|
||||
return proFileNode->path().toFileInfo().absolutePath();
|
||||
}
|
||||
return includePath;
|
||||
return QString();
|
||||
}
|
||||
|
||||
void InternalLibraryDetailsController::updateWindowsOptionsEnablement()
|
||||
@@ -1036,20 +1035,19 @@ void InternalLibraryDetailsController::updateProFile()
|
||||
m_proFileNodes.clear();
|
||||
libraryDetailsWidget()->libraryComboBox->clear();
|
||||
|
||||
const Project *project = SessionManager::projectForFile(proFile());
|
||||
const Project *project = SessionManager::projectForFile(Utils::FileName::fromString(proFile()));
|
||||
if (!project)
|
||||
return;
|
||||
|
||||
setIgnoreGuiSignals(true);
|
||||
|
||||
ProjectExplorer::ProjectNode *rootProject = project->rootProjectNode();
|
||||
QFileInfo fi(rootProject->path());
|
||||
m_rootProjectPath = fi.absolutePath();
|
||||
m_rootProjectPath = rootProject->path().toFileInfo().absolutePath();
|
||||
QDir rootDir(m_rootProjectPath);
|
||||
FindQmakeProFiles findQt4ProFiles;
|
||||
QList<QmakeProFileNode *> proFiles = findQt4ProFiles(rootProject);
|
||||
foreach (QmakeProFileNode *proFileNode, proFiles) {
|
||||
const QString proFilePath = proFileNode->path();
|
||||
const QString proFilePath = proFileNode->path().toString();
|
||||
if (proFileNode->projectType() == LibraryTemplate) {
|
||||
const QStringList configVar = proFileNode->variableValue(ConfigVar);
|
||||
if (!configVar.contains(QLatin1String("plugin"))) {
|
||||
@@ -1119,7 +1117,7 @@ QString InternalLibraryDetailsController::snippet() const
|
||||
const QString proRelavitePath = rootDir.relativeFilePath(proFile());
|
||||
|
||||
// project for which we insert the snippet
|
||||
const Project *project = SessionManager::projectForFile(proFile());
|
||||
const Project *project = SessionManager::projectForFile(Utils::FileName::fromString(proFile()));
|
||||
|
||||
// the build directory of the active build configuration
|
||||
QDir rootBuildDir = rootDir; // If the project is unconfigured use the project dir
|
||||
|
@@ -237,7 +237,7 @@ bool MakeStep::init()
|
||||
if (!relObjectsDir.isEmpty())
|
||||
relObjectsDir += QLatin1Char('/');
|
||||
QString objectFile = relObjectsDir +
|
||||
QFileInfo(bc->fileNodeBuild()->path()).baseName() +
|
||||
bc->fileNodeBuild()->path().toFileInfo().baseName() +
|
||||
subNode->objectExtension();
|
||||
Utils::QtcProcess::addArg(&args, objectFile);
|
||||
}
|
||||
|
@@ -60,6 +60,7 @@
|
||||
#include <cpptools/cpptoolsconstants.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/qtcprocess.h>
|
||||
#include <utils/stringutils.h>
|
||||
@@ -111,11 +112,11 @@ class SortByPath
|
||||
public:
|
||||
bool operator()(Node *a, Node *b)
|
||||
{ return operator()(a->path(), b->path()); }
|
||||
bool operator()(Node *a, const QString &b)
|
||||
bool operator()(Node *a, const FileName &b)
|
||||
{ return operator()(a->path(), b); }
|
||||
bool operator()(const QString &a, Node *b)
|
||||
bool operator()(const FileName &a, Node *b)
|
||||
{ return operator()(a, b->path()); }
|
||||
bool operator()(const QString &a, const QString &b)
|
||||
bool operator()(const FileName &a, const FileName &b)
|
||||
{ return a < b; }
|
||||
};
|
||||
|
||||
@@ -195,7 +196,7 @@ class EvalInput
|
||||
{
|
||||
public:
|
||||
QString projectDir;
|
||||
QString projectFilePath;
|
||||
FileName projectFilePath;
|
||||
QString buildDirectory;
|
||||
QtSupport::ProFileReader *readerExact;
|
||||
QtSupport::ProFileReader *readerCumulative;
|
||||
@@ -220,18 +221,18 @@ public:
|
||||
QmakeProjectType projectType;
|
||||
|
||||
QStringList subProjectsNotToDeploy;
|
||||
QHash<QString, ProFile*> includeFilesExact;
|
||||
QStringList newProjectFilesExact;
|
||||
QSet<QString> exactSubdirs;
|
||||
QHash<FileName, ProFile*> includeFilesExact;
|
||||
FileNameList newProjectFilesExact;
|
||||
QSet<FileName> exactSubdirs;
|
||||
ProFile *fileForCurrentProjectExact; // probably only used in parser thread
|
||||
QHash<QString, ProFile*> includeFilesCumlative;
|
||||
QStringList newProjectFilesCumlative;
|
||||
QHash<FileName, ProFile*> includeFilesCumlative;
|
||||
FileNameList newProjectFilesCumlative;
|
||||
ProFile *fileForCurrentProjectCumlative; // probably only used in parser thread
|
||||
TargetInformation targetInformation;
|
||||
InstallsList installsList;
|
||||
QHash<QmakeVariable, QStringList> newVarValues;
|
||||
bool isDeployable;
|
||||
QHash<QString, PriFileEvalResult> priFileResults;
|
||||
QHash<FileName, PriFileEvalResult> priFileResults;
|
||||
QStringList errors;
|
||||
};
|
||||
}
|
||||
@@ -242,7 +243,7 @@ QmakePriFile::QmakePriFile(QmakeProjectManager::QmakePriFileNode *qmakePriFile)
|
||||
{
|
||||
setId("Qmake.PriFile");
|
||||
setMimeType(QLatin1String(QmakeProjectManager::Constants::PROFILE_MIMETYPE));
|
||||
setFilePath(FileName::fromString(m_priFile->path()));
|
||||
setFilePath(m_priFile->path());
|
||||
}
|
||||
|
||||
bool QmakePriFile::save(QString *errorString, const QString &fileName, bool autoSave)
|
||||
@@ -297,19 +298,20 @@ bool QmakePriFile::reload(QString *errorString, ReloadFlag flag, ChangeType type
|
||||
|
||||
namespace QmakeProjectManager {
|
||||
|
||||
QmakePriFileNode::QmakePriFileNode(QmakeProject *project, QmakeProFileNode *qmakeProFileNode, const QString &filePath)
|
||||
QmakePriFileNode::QmakePriFileNode(QmakeProject *project, QmakeProFileNode *qmakeProFileNode,
|
||||
const FileName &filePath)
|
||||
: ProjectNode(filePath),
|
||||
m_project(project),
|
||||
m_qmakeProFileNode(qmakeProFileNode),
|
||||
m_projectFilePath(QDir::fromNativeSeparators(filePath)),
|
||||
m_projectDir(QFileInfo(filePath).absolutePath()),
|
||||
m_projectFilePath(filePath),
|
||||
m_projectDir(filePath.toFileInfo().absolutePath()),
|
||||
m_includedInExactParse(true)
|
||||
{
|
||||
Q_ASSERT(project);
|
||||
m_qmakePriFile = new QmakePriFile(this);
|
||||
Core::DocumentManager::addDocument(m_qmakePriFile);
|
||||
|
||||
setDisplayName(QFileInfo(filePath).completeBaseName());
|
||||
setDisplayName(filePath.toFileInfo().completeBaseName());
|
||||
setIcon(qmakeNodeStaticData()->projectIcon);
|
||||
}
|
||||
|
||||
@@ -321,7 +323,7 @@ QmakePriFileNode::~QmakePriFileNode()
|
||||
|
||||
void QmakePriFileNode::scheduleUpdate()
|
||||
{
|
||||
QtSupport::ProFileCacheManager::instance()->discardFile(m_projectFilePath);
|
||||
QtSupport::ProFileCacheManager::instance()->discardFile(m_projectFilePath.toString());
|
||||
m_qmakeProFileNode->scheduleUpdate(QmakeProFileNode::ParseLater);
|
||||
}
|
||||
|
||||
@@ -330,7 +332,7 @@ struct InternalNode
|
||||
{
|
||||
QList<InternalNode *> virtualfolders;
|
||||
QMap<QString, InternalNode *> subnodes;
|
||||
QStringList files;
|
||||
FileNameList files;
|
||||
FileType type;
|
||||
int priority;
|
||||
QString displayName;
|
||||
@@ -404,7 +406,7 @@ struct InternalNode
|
||||
}
|
||||
path += separator;
|
||||
} else { // key is filename
|
||||
currentNode->files.append(file.toString());
|
||||
currentNode->files.append(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -437,10 +439,12 @@ struct InternalNode
|
||||
FolderNode *createFolderNode(InternalNode *node)
|
||||
{
|
||||
FolderNode *newNode = 0;
|
||||
if (node->typeName.isEmpty())
|
||||
newNode = new FolderNode(node->fullPath);
|
||||
else
|
||||
newNode = new ProVirtualFolderNode(node->fullPath, node->priority, node->typeName);
|
||||
if (node->typeName.isEmpty()) {
|
||||
newNode = new FolderNode(FileName::fromString(node->fullPath));
|
||||
} else {
|
||||
newNode = new ProVirtualFolderNode(FileName::fromString(node->fullPath),
|
||||
node->priority, node->typeName);
|
||||
}
|
||||
|
||||
newNode->setDisplayName(node->displayName);
|
||||
if (!node->icon.isNull())
|
||||
@@ -460,7 +464,7 @@ struct InternalNode
|
||||
QMultiMap<QString, FolderNode *> existingFolderNodes;
|
||||
foreach (FolderNode *node, folder->subFolderNodes())
|
||||
if (node->nodeType() != ProjectNodeType && !dynamic_cast<ResourceEditor::ResourceTopLevelNode *>(node))
|
||||
existingFolderNodes.insert(node->path(), node);
|
||||
existingFolderNodes.insert(node->path().toString(), node);
|
||||
|
||||
QList<FolderNode *> foldersToRemove;
|
||||
QList<FolderNode *> foldersToAdd;
|
||||
@@ -551,7 +555,7 @@ struct InternalNode
|
||||
}
|
||||
|
||||
QList<FileNode*> filesToRemove;
|
||||
QStringList filesToAdd;
|
||||
FileNameList filesToAdd;
|
||||
|
||||
SortByPath sortByPath;
|
||||
Utils::sort(files, sortByPath);
|
||||
@@ -560,7 +564,7 @@ struct InternalNode
|
||||
ProjectExplorer::compareSortedLists(existingFileNodes, files, filesToRemove, filesToAdd, sortByPath);
|
||||
|
||||
QList<FileNode *> nodesToAdd;
|
||||
foreach (const QString &file, filesToAdd)
|
||||
foreach (const FileName &file, filesToAdd)
|
||||
nodesToAdd << new FileNode(file, type, false);
|
||||
|
||||
folder->removeFileNodes(filesToRemove);
|
||||
@@ -577,7 +581,7 @@ struct InternalNode
|
||||
}
|
||||
|
||||
QList<FolderNode *> resourcesToRemove;
|
||||
QStringList resourcesToAdd;
|
||||
FileNameList resourcesToAdd;
|
||||
|
||||
SortByPath sortByPath;
|
||||
Utils::sort(files, sortByPath);
|
||||
@@ -588,7 +592,7 @@ struct InternalNode
|
||||
QList<FolderNode *> nodesToAdd;
|
||||
nodesToAdd.reserve(resourcesToAdd.size());
|
||||
|
||||
foreach (const QString &file, resourcesToAdd)
|
||||
foreach (const FileName &file, resourcesToAdd)
|
||||
nodesToAdd.append(new ResourceEditor::ResourceTopLevelNode(file, folder));
|
||||
|
||||
folder->removeFolderNodes(resourcesToRemove);
|
||||
@@ -918,7 +922,7 @@ QList<ProjectAction> QmakePriFileNode::supportedActions(Node *node) const
|
||||
// work on a subset of the file types according to project type.
|
||||
|
||||
actions << AddNewFile;
|
||||
if (m_recursiveEnumerateFiles.contains(FileName::fromString(node->path())))
|
||||
if (m_recursiveEnumerateFiles.contains(node->path()))
|
||||
actions << EraseFile;
|
||||
else
|
||||
actions << RemoveFile;
|
||||
@@ -930,13 +934,13 @@ QList<ProjectAction> QmakePriFileNode::supportedActions(Node *node) const
|
||||
if (folder) {
|
||||
QStringList list;
|
||||
foreach (FolderNode *f, folder->subFolderNodes())
|
||||
list << f->path() + QLatin1Char('/');
|
||||
list << f->path().toString() + QLatin1Char('/');
|
||||
if (deploysFolder(Utils::commonPath(list)))
|
||||
addExistingFiles = false;
|
||||
}
|
||||
}
|
||||
|
||||
addExistingFiles = addExistingFiles && !deploysFolder(node->path());
|
||||
addExistingFiles = addExistingFiles && !deploysFolder(node->path().toString());
|
||||
|
||||
if (addExistingFiles)
|
||||
actions << AddExistingFile << AddExistingDirectory;
|
||||
@@ -1116,7 +1120,7 @@ bool QmakePriFileNode::renameFile(const QString &filePath, const QString &newFil
|
||||
FolderNode::AddNewInformation QmakePriFileNode::addNewInformation(const QStringList &files, Node *context) const
|
||||
{
|
||||
Q_UNUSED(files)
|
||||
return FolderNode::AddNewInformation(FileName::fromString(path()).fileName(), context && context->projectNode() == this ? 120 : 90);
|
||||
return FolderNode::AddNewInformation(path().fileName(), context && context->projectNode() == this ? 120 : 90);
|
||||
}
|
||||
|
||||
bool QmakePriFileNode::priFileWritable(const QString &path)
|
||||
@@ -1129,7 +1133,7 @@ bool QmakePriFileNode::priFileWritable(const QString &path)
|
||||
bool QmakePriFileNode::saveModifiedEditors()
|
||||
{
|
||||
Core::IDocument *document
|
||||
= Core::DocumentModel::documentForFilePath(m_projectFilePath);
|
||||
= Core::DocumentModel::documentForFilePath(m_projectFilePath.toString());
|
||||
if (!document || !document->isModified())
|
||||
return true;
|
||||
|
||||
@@ -1137,7 +1141,7 @@ bool QmakePriFileNode::saveModifiedEditors()
|
||||
return false;
|
||||
|
||||
// force instant reload of ourselves
|
||||
QtSupport::ProFileCacheManager::instance()->discardFile(m_projectFilePath);
|
||||
QtSupport::ProFileCacheManager::instance()->discardFile(m_projectFilePath.toString());
|
||||
m_project->qmakeProjectManager()->notifyChanged(m_projectFilePath);
|
||||
return true;
|
||||
}
|
||||
@@ -1235,9 +1239,9 @@ void QmakePriFileNode::changeFiles(const QString &mimeType,
|
||||
if (!saveModifiedEditors())
|
||||
return;
|
||||
|
||||
if (!ensureWriteableProFile(m_projectFilePath))
|
||||
if (!ensureWriteableProFile(m_projectFilePath.toString()))
|
||||
return;
|
||||
QPair<ProFile *, QStringList> pair = readProFile(m_projectFilePath);
|
||||
QPair<ProFile *, QStringList> pair = readProFile(m_projectFilePath.toString());
|
||||
ProFile *includeFile = pair.first;
|
||||
QStringList lines = pair.second;
|
||||
|
||||
@@ -1261,10 +1265,10 @@ void QmakePriFileNode::changeFiles(const QString &mimeType,
|
||||
|
||||
bool QmakePriFileNode::setProVariable(const QString &var, const QStringList &values, const QString &scope, int flags)
|
||||
{
|
||||
if (!ensureWriteableProFile(m_projectFilePath))
|
||||
if (!ensureWriteableProFile(m_projectFilePath.toString()))
|
||||
return false;
|
||||
|
||||
QPair<ProFile *, QStringList> pair = readProFile(m_projectFilePath);
|
||||
QPair<ProFile *, QStringList> pair = readProFile(m_projectFilePath.toString());
|
||||
ProFile *includeFile = pair.first;
|
||||
QStringList lines = pair.second;
|
||||
|
||||
@@ -1281,20 +1285,20 @@ bool QmakePriFileNode::setProVariable(const QString &var, const QStringList &val
|
||||
|
||||
void QmakePriFileNode::save(const QStringList &lines)
|
||||
{
|
||||
Core::DocumentManager::expectFileChange(m_projectFilePath);
|
||||
FileSaver saver(m_projectFilePath, QIODevice::Text);
|
||||
Core::DocumentManager::expectFileChange(m_projectFilePath.toString());
|
||||
FileSaver saver(m_projectFilePath.toString(), QIODevice::Text);
|
||||
saver.write(lines.join(QLatin1Char('\n')).toLocal8Bit());
|
||||
saver.finalize(Core::ICore::mainWindow());
|
||||
|
||||
m_project->qmakeProjectManager()->notifyChanged(m_projectFilePath);
|
||||
Core::DocumentManager::unexpectFileChange(m_projectFilePath);
|
||||
Core::DocumentManager::unexpectFileChange(m_projectFilePath.toString());
|
||||
// This is a hack.
|
||||
// We are saving twice in a very short timeframe, once the editor and once the ProFile.
|
||||
// So the modification time might not change between those two saves.
|
||||
// We manually tell each editor to reload it's file.
|
||||
// (The .pro files are notified by the file system watcher.)
|
||||
QStringList errorStrings;
|
||||
Core::IDocument *document = Core::DocumentModel::documentForFilePath(m_projectFilePath);
|
||||
Core::IDocument *document = Core::DocumentModel::documentForFilePath(m_projectFilePath.toString());
|
||||
if (document) {
|
||||
QString errorString;
|
||||
if (!document->reload(&errorString, Core::IDocument::FlagReload, Core::IDocument::TypeContents))
|
||||
@@ -1518,7 +1522,7 @@ namespace {
|
||||
};
|
||||
}
|
||||
|
||||
const QmakeProFileNode *QmakeProFileNode::findProFileFor(const QString &fileName) const
|
||||
const QmakeProFileNode *QmakeProFileNode::findProFileFor(const FileName &fileName) const
|
||||
{
|
||||
if (fileName == path())
|
||||
return this;
|
||||
@@ -1584,7 +1588,7 @@ bool QmakeProFileNode::isDeployable() const
|
||||
Implements abstract ProjectNode class
|
||||
*/
|
||||
QmakeProFileNode::QmakeProFileNode(QmakeProject *project,
|
||||
const QString &filePath)
|
||||
const FileName &filePath)
|
||||
: QmakePriFileNode(project, this, filePath),
|
||||
m_validParse(false),
|
||||
m_parseInProgress(true),
|
||||
@@ -1625,7 +1629,7 @@ bool QmakeProFileNode::showInSimpleTree() const
|
||||
FolderNode::AddNewInformation QmakeProFileNode::addNewInformation(const QStringList &files, Node *context) const
|
||||
{
|
||||
Q_UNUSED(files)
|
||||
return AddNewInformation(FileName::fromString(path()).fileName(), context && context->projectNode() == this ? 120 : 100);
|
||||
return AddNewInformation(path().fileName(), context && context->projectNode() == this ? 120 : 100);
|
||||
}
|
||||
|
||||
bool QmakeProFileNode::showInSimpleTree(QmakeProjectType projectType) const
|
||||
@@ -1765,17 +1769,17 @@ void QmakeProFileNode::setupReader()
|
||||
m_readerCumulative->setCumulative(true);
|
||||
}
|
||||
|
||||
static QStringList mergeList(const QStringList &listA, const QStringList &listB)
|
||||
static FileNameList mergeList(const FileNameList &listA, const FileNameList &listB)
|
||||
{
|
||||
QStringList result;
|
||||
FileNameList result;
|
||||
result.reserve(qMax(listA.size(), listB.size()));
|
||||
auto ait = listA.constBegin();
|
||||
auto aend = listA.constEnd();
|
||||
auto bit = listB.constBegin();
|
||||
auto bend = listB.constEnd();
|
||||
while (ait != aend && bit != bend) {
|
||||
const QString &a = *ait;
|
||||
const QString &b = *bit;
|
||||
const FileName &a = *ait;
|
||||
const FileName &b = *bit;
|
||||
if (a < b) {
|
||||
result.append(a);
|
||||
++ait;
|
||||
@@ -1802,7 +1806,7 @@ static QStringList mergeList(const QStringList &listA, const QStringList &listB)
|
||||
EvalResult *QmakeProFileNode::evaluate(const EvalInput &input)
|
||||
{
|
||||
EvalResult *result = new EvalResult;
|
||||
if (ProFile *pro = input.readerExact->parsedProFile(input.projectFilePath)) {
|
||||
if (ProFile *pro = input.readerExact->parsedProFile(input.projectFilePath.toString())) {
|
||||
bool exactOk = input.readerExact->accept(pro, QMakeEvaluator::LoadAll);
|
||||
bool cumulOk = input.readerCumulative->accept(pro, QMakeEvaluator::LoadPreFiles);
|
||||
pro->deref();
|
||||
@@ -1828,11 +1832,12 @@ EvalResult *QmakeProFileNode::evaluate(const EvalInput &input)
|
||||
result->exactSubdirs = result->newProjectFilesExact.toSet();
|
||||
}
|
||||
foreach (ProFile *includeFile, input.readerExact->includeFiles()) {
|
||||
if (includeFile->fileName() == input.projectFilePath) { // this file
|
||||
if (includeFile->fileName() == input.projectFilePath.toString()) { // this file
|
||||
result->fileForCurrentProjectExact = includeFile;
|
||||
} else {
|
||||
result->newProjectFilesExact << includeFile->fileName();
|
||||
result->includeFilesExact.insert(includeFile->fileName(), includeFile);
|
||||
const FileName includeFileName = FileName::fromString(includeFile->fileName());
|
||||
result->newProjectFilesExact << includeFileName;
|
||||
result->includeFilesExact.insert(includeFileName, includeFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1840,11 +1845,12 @@ EvalResult *QmakeProFileNode::evaluate(const EvalInput &input)
|
||||
if (result->projectType == SubDirsTemplate)
|
||||
result->newProjectFilesCumlative = subDirsPaths(input.readerCumulative, input.projectDir, 0, 0);
|
||||
foreach (ProFile *includeFile, input.readerCumulative->includeFiles()) {
|
||||
if (includeFile->fileName() == input.projectFilePath) {
|
||||
if (includeFile->fileName() == input.projectFilePath.toString()) {
|
||||
result->fileForCurrentProjectCumlative = includeFile;
|
||||
} else {
|
||||
result->newProjectFilesCumlative << includeFile->fileName();
|
||||
result->includeFilesCumlative.insert(includeFile->fileName(), includeFile);
|
||||
const FileName includeFileName = FileName::fromString(includeFile->fileName());
|
||||
result->newProjectFilesCumlative << includeFileName;
|
||||
result->includeFilesCumlative.insert(includeFileName, includeFile);
|
||||
}
|
||||
}
|
||||
SortByPath sortByPath;
|
||||
@@ -1874,7 +1880,7 @@ EvalResult *QmakeProFileNode::evaluate(const EvalInput &input)
|
||||
readerBuildPass->setExtraConfigs(basecfgs);
|
||||
|
||||
EvalResult::EvalResultState evalResultBuildPass = EvalResult::EvalOk;
|
||||
if (ProFile *pro = readerBuildPass->parsedProFile(input.projectFilePath)) {
|
||||
if (ProFile *pro = readerBuildPass->parsedProFile(input.projectFilePath.toString())) {
|
||||
if (!readerBuildPass->accept(pro, QMakeEvaluator::LoadAll))
|
||||
evalResultBuildPass = EvalResult::EvalPartial;
|
||||
pro->deref();
|
||||
@@ -1887,8 +1893,9 @@ EvalResult *QmakeProFileNode::evaluate(const EvalInput &input)
|
||||
readerBuildPass = 0;
|
||||
}
|
||||
}
|
||||
result->targetInformation = targetInformation(input.readerExact, readerBuildPass, input.buildDirectory, input.projectFilePath);
|
||||
result->installsList = installsList(readerBuildPass, input.projectFilePath, input.projectDir);
|
||||
result->targetInformation = targetInformation(input.readerExact, readerBuildPass,
|
||||
input.buildDirectory, input.projectFilePath.toString());
|
||||
result->installsList = installsList(readerBuildPass, input.projectFilePath.toString(), input.projectDir);
|
||||
|
||||
// update other variables
|
||||
result->newVarValues[DefinesVar] = input.readerExact->values(QLatin1String("DEFINES"));
|
||||
@@ -1979,8 +1986,8 @@ EvalResult *QmakeProFileNode::evaluate(const EvalInput &input)
|
||||
}
|
||||
|
||||
// extract values
|
||||
QStringList allFiles = mergeList(result->newProjectFilesExact, result->newProjectFilesCumlative);
|
||||
foreach (const QString &file, allFiles) {
|
||||
FileNameList allFiles = mergeList(result->newProjectFilesExact, result->newProjectFilesCumlative);
|
||||
foreach (const FileName &file, allFiles) {
|
||||
ProFile *fileExact = result->includeFilesExact.value(file);
|
||||
ProFile *fileCumlative = result->includeFilesCumlative.value(file);
|
||||
if (fileExact || fileCumlative) {
|
||||
@@ -2037,7 +2044,8 @@ void QmakeProFileNode::applyEvaluate(EvalResult *evalResult)
|
||||
setParseInProgressRecursive(false);
|
||||
|
||||
if (result->state == EvalResult::EvalFail) {
|
||||
QmakeProject::proFileParseError(QCoreApplication::translate("QmakeProFileNode", "Error while parsing file %1. Giving up.").arg(m_projectFilePath));
|
||||
QmakeProject::proFileParseError(QCoreApplication::translate("QmakeProFileNode", "Error while parsing file %1. Giving up.")
|
||||
.arg(m_projectFilePath.toUserOutput()));
|
||||
if (m_projectType == InvalidProject)
|
||||
return;
|
||||
|
||||
@@ -2094,8 +2102,8 @@ void QmakeProFileNode::applyEvaluate(EvalResult *evalResult)
|
||||
QList<ProjectNode*> toRemove;
|
||||
|
||||
QList<ProjectNode*>::const_iterator existingIt = existingProjectNodes.constBegin();
|
||||
QStringList::const_iterator newExactIt = result->newProjectFilesExact.constBegin();
|
||||
QStringList::const_iterator newCumlativeIt = result->newProjectFilesCumlative.constBegin();
|
||||
FileNameList::const_iterator newExactIt = result->newProjectFilesExact.constBegin();
|
||||
FileNameList::const_iterator newCumlativeIt = result->newProjectFilesCumlative.constBegin();
|
||||
|
||||
forever {
|
||||
bool existingAtEnd = (existingIt == existingProjectNodes.constEnd());
|
||||
@@ -2111,7 +2119,7 @@ void QmakeProFileNode::applyEvaluate(EvalResult *evalResult)
|
||||
// parsing, since the update call is diffrent for them
|
||||
// I believe this code to be correct, be careful in changing it
|
||||
|
||||
QString nodeToAdd;
|
||||
FileName nodeToAdd;
|
||||
if (! existingAtEnd
|
||||
&& (newExactAtEnd || (*existingIt)->path() < *newExactIt)
|
||||
&& (newCumlativeAtEnd || (*existingIt)->path() < *newCumlativeIt)) {
|
||||
@@ -2165,7 +2173,8 @@ void QmakeProFileNode::applyEvaluate(EvalResult *evalResult)
|
||||
// the .pro file is included in this .pro file
|
||||
// So to compare that later parse with the sync one
|
||||
QmakeProFileNode *proFileNode = static_cast<QmakeProFileNode *>(*existingIt);
|
||||
proFileNode->setIncludedInExactParse(result->exactSubdirs.contains(proFileNode->path()) && includedInExactParse());
|
||||
proFileNode->setIncludedInExactParse(result->exactSubdirs.contains(proFileNode->path())
|
||||
&& includedInExactParse());
|
||||
proFileNode->asyncUpdate();
|
||||
}
|
||||
++existingIt;
|
||||
@@ -2189,7 +2198,8 @@ void QmakeProFileNode::applyEvaluate(EvalResult *evalResult)
|
||||
|
||||
if (loop) {
|
||||
// Do nothing
|
||||
} else if (fileExact || fileCumlative) {
|
||||
} else {
|
||||
if (fileExact || fileCumlative) {
|
||||
QmakePriFileNode *qmakePriFileNode = new QmakePriFileNode(m_project, this, nodeToAdd);
|
||||
qmakePriFileNode->setParentFolderNode(this); // Needed for loop detection
|
||||
qmakePriFileNode->setIncludedInExactParse(fileExact != 0 && includedInExactParse());
|
||||
@@ -2198,11 +2208,14 @@ void QmakeProFileNode::applyEvaluate(EvalResult *evalResult)
|
||||
} else {
|
||||
QmakeProFileNode *qmakeProFileNode = new QmakeProFileNode(m_project, nodeToAdd);
|
||||
qmakeProFileNode->setParentFolderNode(this); // Needed for loop detection
|
||||
qmakeProFileNode->setIncludedInExactParse(result->exactSubdirs.contains(qmakeProFileNode->path()) && includedInExactParse());
|
||||
qmakeProFileNode->setIncludedInExactParse(
|
||||
result->exactSubdirs.contains(qmakeProFileNode->path())
|
||||
&& includedInExactParse());
|
||||
qmakeProFileNode->asyncUpdate();
|
||||
toAdd << qmakeProFileNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
} // for
|
||||
|
||||
foreach (ProjectNode *node, toRemove) {
|
||||
@@ -2314,12 +2327,12 @@ QStringList QmakeProFileNode::libDirectories(QtSupport::ProFileReader *reader)
|
||||
return result;
|
||||
}
|
||||
|
||||
QStringList QmakeProFileNode::subDirsPaths(QtSupport::ProFileReader *reader,
|
||||
FileNameList QmakeProFileNode::subDirsPaths(QtSupport::ProFileReader *reader,
|
||||
const QString &projectDir,
|
||||
QStringList *subProjectsNotToDeploy,
|
||||
QStringList *errors)
|
||||
{
|
||||
QStringList subProjectPaths;
|
||||
FileNameList subProjectPaths;
|
||||
|
||||
const QStringList subDirVars = reader->values(QLatin1String("SUBDIRS"));
|
||||
|
||||
@@ -2353,7 +2366,7 @@ QStringList QmakeProFileNode::subDirsPaths(QtSupport::ProFileReader *reader,
|
||||
|
||||
if (QFile::exists(realFile)) {
|
||||
realFile = QDir::cleanPath(realFile);
|
||||
subProjectPaths << realFile;
|
||||
subProjectPaths << FileName::fromString(realFile);
|
||||
if (subProjectsNotToDeploy && !subProjectsNotToDeploy->contains(realFile)
|
||||
&& reader->values(subDirVar + QLatin1String(".CONFIG"))
|
||||
.contains(QLatin1String("no_default_target"))) {
|
||||
@@ -2476,11 +2489,11 @@ QString QmakeProFileNode::uiDirectory(const QString &buildDir) const
|
||||
return buildDir;
|
||||
}
|
||||
|
||||
QString QmakeProFileNode::uiHeaderFile(const QString &uiDir, const QString &formFile)
|
||||
QString QmakeProFileNode::uiHeaderFile(const QString &uiDir, const FileName &formFile)
|
||||
{
|
||||
QString uiHeaderFilePath = uiDir;
|
||||
uiHeaderFilePath += QLatin1String("/ui_");
|
||||
uiHeaderFilePath += QFileInfo(formFile).completeBaseName();
|
||||
uiHeaderFilePath += formFile.toFileInfo().completeBaseName();
|
||||
uiHeaderFilePath += QLatin1String(".h");
|
||||
return QDir::cleanPath(uiHeaderFilePath);
|
||||
}
|
||||
@@ -2499,6 +2512,6 @@ void QmakeProFileNode::updateUiFiles(const QString &buildDir)
|
||||
// Find the UiDir, there can only ever be one
|
||||
const QString uiDir = uiDirectory(buildDir);
|
||||
foreach (const FileNode *uiFile, uiFiles)
|
||||
m_uiFiles.insert(uiFile->path(), uiHeaderFile(uiDir, uiFile->path()));
|
||||
m_uiFiles.insert(uiFile->path().toString(), uiHeaderFile(uiDir, uiFile->path()));
|
||||
}
|
||||
}
|
||||
|
@@ -151,7 +151,7 @@ public:
|
||||
class QMAKEPROJECTMANAGER_EXPORT QmakePriFileNode : public ProjectExplorer::ProjectNode
|
||||
{
|
||||
public:
|
||||
QmakePriFileNode(QmakeProject *project, QmakeProFileNode *qmakeProFileNode, const QString &filePath);
|
||||
QmakePriFileNode(QmakeProject *project, QmakeProFileNode *qmakeProFileNode, const Utils::FileName &filePath);
|
||||
~QmakePriFileNode();
|
||||
|
||||
void update(const Internal::PriFileEvalResult &result);
|
||||
@@ -226,7 +226,7 @@ private:
|
||||
|
||||
QmakeProject *m_project;
|
||||
QmakeProFileNode *m_qmakeProFileNode;
|
||||
QString m_projectFilePath;
|
||||
Utils::FileName m_projectFilePath;
|
||||
QString m_projectDir;
|
||||
|
||||
QMap<QString, QtSupport::UiCodeModelSupport *> m_uiCodeModelSupport;
|
||||
@@ -269,7 +269,7 @@ private:
|
||||
class ProVirtualFolderNode : public ProjectExplorer::VirtualFolderNode
|
||||
{
|
||||
public:
|
||||
explicit ProVirtualFolderNode(const QString &folderPath, int priority, const QString &typeName)
|
||||
explicit ProVirtualFolderNode(const Utils::FileName &folderPath, int priority, const QString &typeName)
|
||||
: VirtualFolderNode(folderPath, priority), m_typeName(typeName)
|
||||
{
|
||||
|
||||
@@ -349,8 +349,7 @@ struct QMAKEPROJECTMANAGER_EXPORT ProjectVersion {
|
||||
class QMAKEPROJECTMANAGER_EXPORT QmakeProFileNode : public QmakePriFileNode
|
||||
{
|
||||
public:
|
||||
QmakeProFileNode(QmakeProject *project,
|
||||
const QString &filePath);
|
||||
QmakeProFileNode(QmakeProject *project, const Utils::FileName &filePath);
|
||||
~QmakeProFileNode();
|
||||
|
||||
bool isParent(QmakeProFileNode *node);
|
||||
@@ -372,10 +371,10 @@ public:
|
||||
QString buildDir(QmakeBuildConfiguration *bc = 0) const;
|
||||
|
||||
QString uiDirectory(const QString &buildDir) const;
|
||||
static QString uiHeaderFile(const QString &uiDir, const QString &formFile);
|
||||
static QString uiHeaderFile(const QString &uiDir, const Utils::FileName &formFile);
|
||||
QHash<QString, QString> uiFiles() const;
|
||||
|
||||
const QmakeProFileNode *findProFileFor(const QString &string) const;
|
||||
const QmakeProFileNode *findProFileFor(const Utils::FileName &string) const;
|
||||
TargetInformation targetInformation() const;
|
||||
|
||||
InstallsList installsList() const;
|
||||
@@ -426,7 +425,7 @@ private:
|
||||
static QString mocDirPath(QtSupport::ProFileReader *reader, const QString &buildDir);
|
||||
static QStringList includePaths(QtSupport::ProFileReader *reader, const QString &buildDir, const QString &projectDir);
|
||||
static QStringList libDirectories(QtSupport::ProFileReader *reader);
|
||||
static QStringList subDirsPaths(QtSupport::ProFileReader *reader, const QString &projectDir, QStringList *subProjectsNotToDeploy, QStringList *errors);
|
||||
static Utils::FileNameList subDirsPaths(QtSupport::ProFileReader *reader, const QString &projectDir, QStringList *subProjectsNotToDeploy, QStringList *errors);
|
||||
|
||||
static TargetInformation targetInformation(QtSupport::ProFileReader *reader, QtSupport::ProFileReader *readerBuildPass, const QString &buildDir, const QString &projectFilePath);
|
||||
static InstallsList installsList(const QtSupport::ProFileReader *reader, const QString &projectFilePath, const QString &projectDir);
|
||||
|
@@ -256,21 +256,19 @@ void ProjectFilesVisitor::findProjectFiles(QmakeProFileNode *rootNode, QmakeProj
|
||||
|
||||
void ProjectFilesVisitor::visitProjectNode(ProjectNode *projectNode)
|
||||
{
|
||||
const QString path = projectNode->path();
|
||||
m_files->proFiles.append(path);
|
||||
m_files->proFiles.append(projectNode->path().toString());
|
||||
visitFolderNode(projectNode);
|
||||
}
|
||||
|
||||
void ProjectFilesVisitor::visitFolderNode(FolderNode *folderNode)
|
||||
{
|
||||
if (dynamic_cast<ResourceEditor::ResourceTopLevelNode *>(folderNode))
|
||||
m_files->files[ResourceType].push_back(folderNode->path());
|
||||
m_files->files[ResourceType].push_back(folderNode->path().toString());
|
||||
|
||||
foreach (FileNode *fileNode, folderNode->fileNodes()) {
|
||||
const QString path = fileNode->path();
|
||||
const int type = fileNode->fileType();
|
||||
QStringList &targetList = fileNode->isGenerated() ? m_files->generatedFiles[type] : m_files->files[type];
|
||||
targetList.push_back(path);
|
||||
targetList.push_back(fileNode->path().toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -413,7 +411,7 @@ bool QmakeProject::fromMap(const QVariantMap &map)
|
||||
|
||||
m_manager->registerProject(this);
|
||||
|
||||
m_rootProjectNode = new QmakeProFileNode(this, m_fileInfo->filePath().toString());
|
||||
m_rootProjectNode = new QmakeProFileNode(this, m_fileInfo->filePath());
|
||||
|
||||
// On active buildconfiguration changes, reevaluate the .pro files
|
||||
m_activeTarget = activeTarget();
|
||||
@@ -504,7 +502,7 @@ void QmakeProject::updateCppCodeModel()
|
||||
ProjectPart::Ptr templatePart(new ProjectPart);
|
||||
templatePart->project = this;
|
||||
templatePart->displayName = pro->displayName();
|
||||
templatePart->projectFile = pro->path();
|
||||
templatePart->projectFile = pro->path().toString();
|
||||
templatePart->selectedForBuilding = pro->includedInExactParse();
|
||||
|
||||
if (pro->variableValue(ConfigVar).contains(QLatin1String("qt")))
|
||||
@@ -834,7 +832,7 @@ void QmakeProject::decrementPendingEvaluateFutures()
|
||||
QtQuickApp qtQuickApp;
|
||||
|
||||
foreach (QmakeProFileNode *node, applicationProFiles(QmakeProject::ExactAndCumulativeParse)) {
|
||||
const QString path = node->path();
|
||||
const QString path = node->path().toString();
|
||||
|
||||
foreach (TemplateInfo info, QtQuickApp::templateInfos()) {
|
||||
qtQuickApp.setTemplateInfo(info);
|
||||
@@ -938,7 +936,7 @@ QStringList QmakeProject::files(FilesMode fileMode) const
|
||||
}
|
||||
|
||||
// Find the folder that contains a file a certain type (recurse down)
|
||||
static FolderNode *folderOf(FolderNode *in, FileType fileType, const QString &fileName)
|
||||
static FolderNode *folderOf(FolderNode *in, FileType fileType, const FileName &fileName)
|
||||
{
|
||||
foreach (FileNode *fn, in->fileNodes())
|
||||
if (fn->fileType() == fileType && fn->path() == fileName)
|
||||
@@ -951,7 +949,7 @@ static FolderNode *folderOf(FolderNode *in, FileType fileType, const QString &fi
|
||||
|
||||
// Find the QmakeProFileNode that contains a file of a certain type.
|
||||
// First recurse down to folder, then find the pro-file.
|
||||
static QmakeProFileNode *proFileNodeOf(QmakeProFileNode *in, FileType fileType, const QString &fileName)
|
||||
static QmakeProFileNode *proFileNodeOf(QmakeProFileNode *in, FileType fileType, const FileName &fileName)
|
||||
{
|
||||
for (FolderNode *folder = folderOf(in, fileType, fileName); folder; folder = folder->parentFolderNode())
|
||||
if (QmakeProFileNode *proFile = dynamic_cast<QmakeProFileNode *>(folder))
|
||||
@@ -959,7 +957,7 @@ static QmakeProFileNode *proFileNodeOf(QmakeProFileNode *in, FileType fileType,
|
||||
return 0;
|
||||
}
|
||||
|
||||
QString QmakeProject::generatedUiHeader(const QString &formFile) const
|
||||
QString QmakeProject::generatedUiHeader(const FileName &formFile) const
|
||||
{
|
||||
// Look in sub-profiles as SessionManager::projectForFile returns
|
||||
// the top-level project only.
|
||||
@@ -1074,7 +1072,7 @@ QmakeProFileNode *QmakeProject::rootQmakeProjectNode() const
|
||||
return m_rootProjectNode;
|
||||
}
|
||||
|
||||
bool QmakeProject::validParse(const QString &proFilePath) const
|
||||
bool QmakeProject::validParse(const FileName &proFilePath) const
|
||||
{
|
||||
if (!m_rootProjectNode)
|
||||
return false;
|
||||
@@ -1082,7 +1080,7 @@ bool QmakeProject::validParse(const QString &proFilePath) const
|
||||
return node && node->validParse();
|
||||
}
|
||||
|
||||
bool QmakeProject::parseInProgress(const QString &proFilePath) const
|
||||
bool QmakeProject::parseInProgress(const FileName &proFilePath) const
|
||||
{
|
||||
if (!m_rootProjectNode)
|
||||
return false;
|
||||
@@ -1117,7 +1115,7 @@ QList<QmakeProFileNode *> QmakeProject::allProFiles(const QList<QmakeProjectType
|
||||
return list;
|
||||
}
|
||||
|
||||
bool QmakeProject::hasApplicationProFile(const QString &path) const
|
||||
bool QmakeProject::hasApplicationProFile(const FileName &path) const
|
||||
{
|
||||
if (path.isEmpty())
|
||||
return false;
|
||||
@@ -1143,7 +1141,7 @@ QList<QmakeProFileNode *> QmakeProject::nodesWithQtcRunnable(QList<QmakeProFileN
|
||||
QList<Core::Id> QmakeProject::idsForNodes(Core::Id base, const QList<QmakeProFileNode *> &nodes)
|
||||
{
|
||||
return Utils::transform(nodes, [&base](QmakeProFileNode *node) {
|
||||
return base.withSuffix(node->path());
|
||||
return base.withSuffix(node->path().toString());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1165,7 +1163,7 @@ void QmakeProject::activeTargetWasChanged()
|
||||
scheduleAsyncUpdate();
|
||||
}
|
||||
|
||||
bool QmakeProject::hasSubNode(QmakePriFileNode *root, const QString &path)
|
||||
bool QmakeProject::hasSubNode(QmakePriFileNode *root, const FileName &path)
|
||||
{
|
||||
if (root->path() == path)
|
||||
return true;
|
||||
@@ -1180,7 +1178,7 @@ bool QmakeProject::hasSubNode(QmakePriFileNode *root, const QString &path)
|
||||
return false;
|
||||
}
|
||||
|
||||
void QmakeProject::findProFile(const QString& fileName, QmakeProFileNode *root, QList<QmakeProFileNode *> &list)
|
||||
void QmakeProject::findProFile(const FileName &fileName, QmakeProFileNode *root, QList<QmakeProFileNode *> &list)
|
||||
{
|
||||
if (hasSubNode(root, fileName))
|
||||
list.append(root);
|
||||
@@ -1190,13 +1188,13 @@ void QmakeProject::findProFile(const QString& fileName, QmakeProFileNode *root,
|
||||
findProFile(fileName, qt4proFileNode, list);
|
||||
}
|
||||
|
||||
void QmakeProject::notifyChanged(const QString &name)
|
||||
void QmakeProject::notifyChanged(const FileName &name)
|
||||
{
|
||||
if (files(QmakeProject::ExcludeGeneratedFiles).contains(name)) {
|
||||
if (files(QmakeProject::ExcludeGeneratedFiles).contains(name.toString())) {
|
||||
QList<QmakeProFileNode *> list;
|
||||
findProFile(name, rootQmakeProjectNode(), list);
|
||||
foreach (QmakeProFileNode *node, list) {
|
||||
QtSupport::ProFileCacheManager::instance()->discardFile(name);
|
||||
QtSupport::ProFileCacheManager::instance()->discardFile(name.toString());
|
||||
node->scheduleUpdate(QmakeProFileNode::ParseNow);
|
||||
}
|
||||
}
|
||||
@@ -1435,21 +1433,21 @@ bool QmakeProject::requiresTargetPanel() const
|
||||
// All the Qmake run configurations should share code.
|
||||
// This is a rather suboptimal way to do that for disabledReason()
|
||||
// but more pratical then duplicated the code everywhere
|
||||
QString QmakeProject::disabledReasonForRunConfiguration(const QString &proFilePath)
|
||||
QString QmakeProject::disabledReasonForRunConfiguration(const FileName &proFilePath)
|
||||
{
|
||||
if (!QFileInfo::exists(proFilePath))
|
||||
if (!proFilePath.exists())
|
||||
return tr("The .pro file \"%1\" does not exist.")
|
||||
.arg(FileName::fromString(proFilePath).fileName());
|
||||
.arg(proFilePath.fileName());
|
||||
|
||||
if (!m_rootProjectNode) // Shutting down
|
||||
return QString();
|
||||
|
||||
if (!m_rootProjectNode->findProFileFor(proFilePath))
|
||||
return tr("The .pro file \"%1\" is not part of the project.")
|
||||
.arg(FileName::fromString(proFilePath).fileName());
|
||||
.arg(proFilePath.fileName());
|
||||
|
||||
return tr("The .pro file \"%1\" could not be parsed.")
|
||||
.arg(FileName::fromString(proFilePath).fileName());
|
||||
.arg(proFilePath.fileName());
|
||||
}
|
||||
|
||||
QString QmakeProject::buildNameFor(const Kit *k)
|
||||
@@ -1477,14 +1475,14 @@ void QmakeProject::updateBuildSystemData()
|
||||
foreach (const QmakeProFileNode * const node, applicationProFiles()) {
|
||||
appTargetList.list << BuildTargetInfo(node->targetInformation().target,
|
||||
FileName::fromString(executableFor(node)),
|
||||
FileName::fromString(node->path()));
|
||||
node->path());
|
||||
}
|
||||
target->setApplicationTargets(appTargetList);
|
||||
}
|
||||
|
||||
void QmakeProject::collectData(const QmakeProFileNode *node, DeploymentData &deploymentData)
|
||||
{
|
||||
if (!node->isSubProjectDeployable(node->path()))
|
||||
if (!node->isSubProjectDeployable(node->path().toString()))
|
||||
return;
|
||||
|
||||
const InstallsList &installsList = node->installsList();
|
||||
|
@@ -80,22 +80,22 @@ public:
|
||||
|
||||
ProjectExplorer::ProjectNode *rootProjectNode() const;
|
||||
QmakeProFileNode *rootQmakeProjectNode() const;
|
||||
bool validParse(const QString &proFilePath) const;
|
||||
bool parseInProgress(const QString &proFilePath) const;
|
||||
bool validParse(const Utils::FileName &proFilePath) const;
|
||||
bool parseInProgress(const Utils::FileName &proFilePath) const;
|
||||
|
||||
virtual QStringList files(FilesMode fileMode) const;
|
||||
virtual QString generatedUiHeader(const QString &formFile) const;
|
||||
virtual QString generatedUiHeader(const Utils::FileName &formFile) const;
|
||||
|
||||
enum Parsing {ExactParse, ExactAndCumulativeParse };
|
||||
QList<QmakeProFileNode *> allProFiles(const QList<QmakeProjectType> &projectTypes = QList<QmakeProjectType>(),
|
||||
Parsing parse = ExactParse) const;
|
||||
QList<QmakeProFileNode *> applicationProFiles(Parsing parse = ExactParse) const;
|
||||
bool hasApplicationProFile(const QString &path) const;
|
||||
bool hasApplicationProFile(const Utils::FileName &path) const;
|
||||
|
||||
static QList<QmakeProFileNode *> nodesWithQtcRunnable(QList<QmakeProFileNode *> nodes);
|
||||
static QList<Core::Id> idsForNodes(Core::Id base, const QList<QmakeProFileNode *> &nodes);
|
||||
|
||||
void notifyChanged(const QString &name);
|
||||
void notifyChanged(const Utils::FileName &name);
|
||||
|
||||
/// \internal
|
||||
QtSupport::ProFileReader *createProFileReader(const QmakeProFileNode *qmakeProFileNode, QmakeBuildConfiguration *bc = 0);
|
||||
@@ -130,7 +130,7 @@ public:
|
||||
bool requiresTargetPanel() const;
|
||||
|
||||
/// \internal
|
||||
QString disabledReasonForRunConfiguration(const QString &proFilePath);
|
||||
QString disabledReasonForRunConfiguration(const Utils::FileName &proFilePath);
|
||||
|
||||
/// used by the default implementation of shadowBuildDirectory
|
||||
static QString buildNameFor(const ProjectExplorer::Kit *k);
|
||||
@@ -170,8 +170,8 @@ private:
|
||||
|
||||
static void collectAllProFiles(QList<QmakeProFileNode *> &list, QmakeProFileNode *node, Parsing parse,
|
||||
const QList<QmakeProjectManager::QmakeProjectType> &projectTypes);
|
||||
static void findProFile(const QString& fileName, QmakeProFileNode *root, QList<QmakeProFileNode *> &list);
|
||||
static bool hasSubNode(QmakePriFileNode *root, const QString &path);
|
||||
static void findProFile(const Utils::FileName &fileName, QmakeProFileNode *root, QList<QmakeProFileNode *> &list);
|
||||
static bool hasSubNode(QmakePriFileNode *root, const Utils::FileName &path);
|
||||
|
||||
static bool equalFileList(const QStringList &a, const QStringList &b);
|
||||
|
||||
|
@@ -79,7 +79,7 @@ void QmakeManager::unregisterProject(QmakeProject *project)
|
||||
m_projects.removeOne(project);
|
||||
}
|
||||
|
||||
void QmakeManager::notifyChanged(const QString &name)
|
||||
void QmakeManager::notifyChanged(const Utils::FileName &name)
|
||||
{
|
||||
foreach (QmakeProject *pro, m_projects)
|
||||
pro->notifyChanged(name);
|
||||
@@ -142,7 +142,7 @@ void QmakeManager::addLibraryContextMenu()
|
||||
{
|
||||
Node *node = ProjectTree::currentNode();
|
||||
if (dynamic_cast<QmakeProFileNode *>(node))
|
||||
addLibrary(node->path());
|
||||
addLibrary(node->path().toString());
|
||||
}
|
||||
|
||||
void QmakeManager::addLibrary(const QString &fileName, BaseTextEditor *editor)
|
||||
@@ -231,7 +231,7 @@ void QmakeManager::buildFileContextMenu()
|
||||
void QmakeManager::buildFile()
|
||||
{
|
||||
if (Core::IDocument *currentDocument= Core::EditorManager::currentDocument()) {
|
||||
const QString file = currentDocument->filePath().toString();
|
||||
const Utils::FileName file = currentDocument->filePath();
|
||||
FileNode *node = dynamic_cast<FileNode *>(SessionManager::nodeForFile(file));
|
||||
Project *project = SessionManager::projectForFile(file);
|
||||
|
||||
|
@@ -59,7 +59,7 @@ public:
|
||||
|
||||
void registerProject(QmakeProject *project);
|
||||
void unregisterProject(QmakeProject *project);
|
||||
void notifyChanged(const QString &name);
|
||||
void notifyChanged(const Utils::FileName &name);
|
||||
|
||||
virtual QString mimeType() const;
|
||||
ProjectExplorer::Project *openProject(const QString &fileName, QString *errorString);
|
||||
|
@@ -345,7 +345,7 @@ void QmakeProjectManagerPlugin::updateContextActions(ProjectExplorer::Node *node
|
||||
m_rebuildSubProjectAction->setParameter(subProjectName);
|
||||
m_cleanSubProjectAction->setParameter(subProjectName);
|
||||
m_buildSubProjectContextMenu->setParameter(subProjectName);
|
||||
m_buildFileAction->setParameter(buildFilePossible ? Utils::FileName::fromString(fileNode->path()).fileName() : QString());
|
||||
m_buildFileAction->setParameter(buildFilePossible ? fileNode->path().fileName() : QString());
|
||||
|
||||
QmakeBuildConfiguration *buildConfiguration = (qmakeProject && qmakeProject->activeTarget()) ?
|
||||
static_cast<QmakeBuildConfiguration *>(qmakeProject->activeTarget()->activeBuildConfiguration()) : 0;
|
||||
@@ -392,10 +392,10 @@ void QmakeProjectManagerPlugin::updateBuildFileAction()
|
||||
bool enabled = false;
|
||||
|
||||
if (Core::IDocument *currentDocument= Core::EditorManager::currentDocument()) {
|
||||
QString file = currentDocument->filePath().toString();
|
||||
Utils::FileName file = currentDocument->filePath();
|
||||
Node *node = SessionManager::nodeForFile(file);
|
||||
Project *project = SessionManager::projectForFile(file);
|
||||
m_buildFileAction->setParameter(Utils::FileName::fromString(file).fileName());
|
||||
m_buildFileAction->setParameter(file.fileName());
|
||||
visible = qobject_cast<QmakeProject *>(project)
|
||||
&& node
|
||||
&& dynamic_cast<QmakePriFileNode *>(node->projectNode());
|
||||
|
@@ -127,7 +127,7 @@ QString QMakeStep::allArguments(bool shorted)
|
||||
QmakeBuildConfiguration *bc = qmakeBuildConfiguration();
|
||||
QStringList arguments;
|
||||
if (bc->subNodeBuild())
|
||||
arguments << QDir::toNativeSeparators(bc->subNodeBuild()->path());
|
||||
arguments << bc->subNodeBuild()->path().toUserOutput();
|
||||
else if (shorted)
|
||||
arguments << project()->projectFilePath().fileName();
|
||||
else
|
||||
@@ -260,7 +260,7 @@ bool QMakeStep::init()
|
||||
QmakeProFileNode *node = static_cast<QmakeProject *>(qt4bc->target()->project())->rootQmakeProjectNode();
|
||||
if (qt4bc->subNodeBuild())
|
||||
node = qt4bc->subNodeBuild();
|
||||
QString proFile = node->path();
|
||||
QString proFile = node->path().toString();
|
||||
|
||||
QList<ProjectExplorer::Task> tasks = qtVersion->reportIssues(proFile, workingDirectory);
|
||||
Utils::sort(tasks);
|
||||
|
@@ -643,7 +643,7 @@ static inline Kit *getActiveKit(DesignDocument *designDocument)
|
||||
Project *currentProject = ProjectTree::currentProject();
|
||||
|
||||
if (!currentProject)
|
||||
currentProject = SessionManager::projectForFile(designDocument->fileName());
|
||||
currentProject = SessionManager::projectForFile(Utils::FileName::fromString(designDocument->fileName()));
|
||||
|
||||
if (!currentProject)
|
||||
return 0;
|
||||
|
@@ -45,6 +45,8 @@
|
||||
#include <projectexplorer/projectnodes.h>
|
||||
#include <projectexplorer/project.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
@@ -128,7 +130,8 @@ public:
|
||||
|
||||
if (path == QFileInfo(fileName()).path()) {
|
||||
// hack for the common case, next version should use the wizard
|
||||
ProjectExplorer::Node * oldFileNode = ProjectExplorer::SessionManager::nodeForFile(fileName());
|
||||
ProjectExplorer::Node * oldFileNode =
|
||||
ProjectExplorer::SessionManager::nodeForFile(Utils::FileName::fromString(fileName()));
|
||||
if (oldFileNode) {
|
||||
ProjectExplorer::FolderNode *containingFolder = oldFileNode->parentFolderNode();
|
||||
if (containingFolder)
|
||||
|
@@ -68,11 +68,11 @@ void setupFileFilterItem(QmlProjectManager::FileFilterBaseItem *fileFilterItem,
|
||||
|
||||
namespace QmlProjectManager {
|
||||
|
||||
QmlProjectItem *QmlProjectFileFormat::parseProjectFile(const QString &fileName, QString *errorMessage)
|
||||
QmlProjectItem *QmlProjectFileFormat::parseProjectFile(const Utils::FileName &fileName, QString *errorMessage)
|
||||
{
|
||||
QmlJS::SimpleReader simpleQmlJSReader;
|
||||
|
||||
const QmlJS::SimpleReaderNode::Ptr rootNode = simpleQmlJSReader.readFile(fileName);
|
||||
const QmlJS::SimpleReaderNode::Ptr rootNode = simpleQmlJSReader.readFile(fileName.toString());
|
||||
|
||||
if (!simpleQmlJSReader.errors().isEmpty() || !rootNode->isValid()) {
|
||||
qWarning() << "unable to parse:" << fileName;
|
||||
|
@@ -31,6 +31,8 @@
|
||||
#ifndef QMLPROJECTFILEFORMAT_H
|
||||
#define QMLPROJECTFILEFORMAT_H
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QString>
|
||||
|
||||
@@ -43,7 +45,7 @@ class QmlProjectFileFormat
|
||||
Q_DECLARE_TR_FUNCTIONS(QmlProjectManager::QmlProjectFileFormat)
|
||||
|
||||
public:
|
||||
static QmlProjectItem *parseProjectFile(const QString &fileName, QString *errorMessage = 0);
|
||||
static QmlProjectItem *parseProjectFile(const Utils::FileName &fileName, QString *errorMessage = 0);
|
||||
};
|
||||
|
||||
} // namespace QmlProjectManager
|
||||
|
@@ -58,7 +58,7 @@ namespace Internal {
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
QmlProject::QmlProject(Internal::Manager *manager, const QString &fileName)
|
||||
QmlProject::QmlProject(Internal::Manager *manager, const Utils::FileName &fileName)
|
||||
: m_manager(manager),
|
||||
m_fileName(fileName),
|
||||
m_defaultImport(UnknownImport),
|
||||
@@ -68,7 +68,7 @@ QmlProject::QmlProject(Internal::Manager *manager, const QString &fileName)
|
||||
setProjectContext(Context(QmlProjectManager::Constants::PROJECTCONTEXT));
|
||||
setProjectLanguages(Context(ProjectExplorer::Constants::LANG_QMLJS));
|
||||
|
||||
QFileInfo fileInfo(m_fileName);
|
||||
QFileInfo fileInfo = m_fileName.toFileInfo();
|
||||
m_projectName = fileInfo.completeBaseName();
|
||||
|
||||
m_file = new Internal::QmlProjectFile(this, fileName);
|
||||
@@ -129,7 +129,7 @@ QDir QmlProject::projectDir() const
|
||||
return projectFilePath().toFileInfo().dir();
|
||||
}
|
||||
|
||||
QString QmlProject::filesFileName() const
|
||||
Utils::FileName QmlProject::filesFileName() const
|
||||
{ return m_fileName; }
|
||||
|
||||
static QmlProject::QmlImport detectImport(const QString &qml) {
|
||||
@@ -157,7 +157,9 @@ void QmlProject::parseProject(RefreshOptions options)
|
||||
this, SLOT(refreshFiles(QSet<QString>,QSet<QString>)));
|
||||
|
||||
} else {
|
||||
MessageManager::write(tr("Error while loading project file %1.").arg(m_fileName), MessageManager::NoModeSwitch);
|
||||
MessageManager::write(tr("Error while loading project file %1.")
|
||||
.arg(m_fileName.toUserOutput()),
|
||||
MessageManager::NoModeSwitch);
|
||||
MessageManager::write(errorMessage);
|
||||
}
|
||||
}
|
||||
@@ -172,7 +174,8 @@ void QmlProject::parseProject(RefreshOptions options)
|
||||
Utils::FileReader reader;
|
||||
QString errorMessage;
|
||||
if (!reader.fetch(mainFilePath, &errorMessage)) {
|
||||
MessageManager::write(tr("Warning while loading project file %1.").arg(m_fileName));
|
||||
MessageManager::write(tr("Warning while loading project file %1.")
|
||||
.arg(m_fileName.toUserOutput()));
|
||||
MessageManager::write(errorMessage);
|
||||
} else {
|
||||
m_defaultImport = detectImport(QString::fromUtf8(reader.data()));
|
||||
@@ -211,7 +214,7 @@ void QmlProject::refresh(RefreshOptions options)
|
||||
|
||||
QStringList QmlProject::convertToAbsoluteFiles(const QStringList &paths) const
|
||||
{
|
||||
const QDir projectDir(QFileInfo(m_fileName).dir());
|
||||
const QDir projectDir(m_fileName.toFileInfo().dir());
|
||||
QStringList absolutePaths;
|
||||
foreach (const QString &file, paths) {
|
||||
QFileInfo fileInfo(projectDir, file);
|
||||
|
@@ -56,10 +56,10 @@ class QMLPROJECTMANAGER_EXPORT QmlProject : public ProjectExplorer::Project
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QmlProject(Internal::Manager *manager, const QString &filename);
|
||||
QmlProject(Internal::Manager *manager, const Utils::FileName &filename);
|
||||
virtual ~QmlProject();
|
||||
|
||||
QString filesFileName() const;
|
||||
Utils::FileName filesFileName() const;
|
||||
|
||||
QString displayName() const;
|
||||
Core::IDocument *document() const;
|
||||
@@ -111,7 +111,7 @@ private:
|
||||
QmlJS::ModelManagerInterface *modelManager() const;
|
||||
|
||||
Internal::Manager *m_manager;
|
||||
QString m_fileName;
|
||||
Utils::FileName m_fileName;
|
||||
Internal::QmlProjectFile *m_file;
|
||||
QString m_projectName;
|
||||
QmlImport m_defaultImport;
|
||||
|
@@ -36,7 +36,7 @@
|
||||
namespace QmlProjectManager {
|
||||
namespace Internal {
|
||||
|
||||
QmlProjectFile::QmlProjectFile(QmlProject *parent, const QString &fileName)
|
||||
QmlProjectFile::QmlProjectFile(QmlProject *parent, const Utils::FileName &fileName)
|
||||
: Core::IDocument(parent),
|
||||
m_project(parent)
|
||||
{
|
||||
@@ -44,7 +44,7 @@ QmlProjectFile::QmlProjectFile(QmlProject *parent, const QString &fileName)
|
||||
QTC_CHECK(!fileName.isEmpty());
|
||||
setId("Qml.ProjectFile");
|
||||
setMimeType(QLatin1String(Constants::QMLPROJECT_MIMETYPE));
|
||||
setFilePath(Utils::FileName::fromString(fileName));
|
||||
setFilePath(fileName);
|
||||
}
|
||||
|
||||
QmlProjectFile::~QmlProjectFile()
|
||||
|
@@ -44,7 +44,7 @@ class QmlProjectFile : public Core::IDocument
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QmlProjectFile(QmlProject *parent, const QString &fileName);
|
||||
QmlProjectFile(QmlProject *parent, const Utils::FileName &fileName);
|
||||
virtual ~QmlProjectFile();
|
||||
|
||||
virtual bool save(QString *errorString, const QString &fileName, bool autoSave);
|
||||
|
@@ -57,7 +57,7 @@ ProjectExplorer::Project *Manager::openProject(const QString &fileName, QString
|
||||
return 0;
|
||||
}
|
||||
|
||||
return new QmlProject(this, fileName);
|
||||
return new QmlProject(this, Utils::FileName::fromString(fileName));
|
||||
}
|
||||
|
||||
void Manager::registerProject(QmlProject *project)
|
||||
@@ -68,8 +68,9 @@ void Manager::unregisterProject(QmlProject *project)
|
||||
|
||||
void Manager::notifyChanged(const QString &fileName)
|
||||
{
|
||||
const Utils::FileName file = Utils::FileName::fromString(fileName);
|
||||
foreach (QmlProject *project, m_projects) {
|
||||
if (fileName == project->filesFileName())
|
||||
if (file == project->filesFileName())
|
||||
project->refresh(QmlProject::Files);
|
||||
}
|
||||
}
|
||||
|
@@ -42,7 +42,7 @@ namespace QmlProjectManager {
|
||||
namespace Internal {
|
||||
|
||||
QmlProjectNode::QmlProjectNode(QmlProject *project, Core::IDocument *projectFile)
|
||||
: ProjectExplorer::ProjectNode(projectFile->filePath().toString()),
|
||||
: ProjectExplorer::ProjectNode(projectFile->filePath()),
|
||||
m_project(project),
|
||||
m_projectFile(projectFile)
|
||||
{
|
||||
@@ -80,7 +80,7 @@ void QmlProjectNode::refresh()
|
||||
/* generated = */ false);
|
||||
|
||||
QStringList files = m_project->files();
|
||||
files.removeAll(m_project->filesFileName());
|
||||
files.removeAll(m_project->filesFileName().toString());
|
||||
|
||||
addFileNodes(QList<FileNode *>()
|
||||
<< projectFilesNode);
|
||||
@@ -114,7 +114,8 @@ void QmlProjectNode::refresh()
|
||||
QList<FileNode *> fileNodes;
|
||||
foreach (const QString &file, it.value()) {
|
||||
FileType fileType = SourceType; // ### FIXME
|
||||
FileNode *fileNode = new FileNode(file, fileType, /*generated = */ false);
|
||||
FileNode *fileNode = new FileNode(Utils::FileName::fromString(file),
|
||||
fileType, /*generated = */ false);
|
||||
fileNodes.append(fileNode);
|
||||
}
|
||||
|
||||
@@ -129,7 +130,7 @@ ProjectExplorer::FolderNode *QmlProjectNode::findOrCreateFolderByName(const QStr
|
||||
if (! end)
|
||||
return 0;
|
||||
|
||||
QString baseDir = QFileInfo(path()).path();
|
||||
Utils::FileName folderPath = path().parentDir();
|
||||
|
||||
QString folderName;
|
||||
for (int i = 0; i < end; ++i) {
|
||||
@@ -145,7 +146,8 @@ ProjectExplorer::FolderNode *QmlProjectNode::findOrCreateFolderByName(const QStr
|
||||
else if (FolderNode *folder = m_folderByName.value(folderName))
|
||||
return folder;
|
||||
|
||||
FolderNode *folder = new FolderNode(baseDir + QLatin1Char('/') + folderName);
|
||||
folderPath.appendPath(folderName);
|
||||
FolderNode *folder = new FolderNode(folderPath);
|
||||
folder->setDisplayName(component);
|
||||
|
||||
m_folderByName.insert(folderName, folder);
|
||||
|
@@ -35,7 +35,7 @@
|
||||
using namespace Qnx;
|
||||
using namespace Qnx::Internal;
|
||||
|
||||
BarDescriptorFileNode::BarDescriptorFileNode(const QString &filePath)
|
||||
BarDescriptorFileNode::BarDescriptorFileNode(const Utils::FileName &filePath)
|
||||
: ProjectExplorer::FileNode(filePath, ProjectExplorer::ProjectFileType, false)
|
||||
{
|
||||
}
|
||||
|
@@ -41,7 +41,7 @@ namespace Internal {
|
||||
class BarDescriptorFileNode : public ProjectExplorer::FileNode
|
||||
{
|
||||
public:
|
||||
explicit BarDescriptorFileNode(const QString &filePath);
|
||||
explicit BarDescriptorFileNode(const Utils::FileName &filePath);
|
||||
|
||||
QList<ProjectExplorer::ProjectAction> supportedActions(Node *node) const;
|
||||
};
|
||||
|
@@ -150,7 +150,7 @@ void BarDescriptorFileNodeManager::updateBarDescriptorNodes(ProjectExplorer::Pro
|
||||
if (!projectNode)
|
||||
continue;
|
||||
|
||||
if (!QFileInfo::exists(package.appDescriptorPath())) {
|
||||
if (!package.appDescriptorPath().exists()) {
|
||||
if (!attemptCreate)
|
||||
continue;
|
||||
|
||||
@@ -165,7 +165,8 @@ void BarDescriptorFileNodeManager::updateBarDescriptorNodes(ProjectExplorer::Pro
|
||||
if (existingNode) {
|
||||
if (existingNode->path() != package.appDescriptorPath()) {
|
||||
// Reload the new bar-descriptor document in the existing editor (if there is one)
|
||||
Core::IDocument *oldDocument = Core::DocumentModel::documentForFilePath(existingNode->path());
|
||||
Core::IDocument *oldDocument = Core::DocumentModel::documentForFilePath(
|
||||
existingNode->path().toString());
|
||||
if (oldDocument) {
|
||||
QString errorMessage;
|
||||
|
||||
@@ -173,7 +174,7 @@ void BarDescriptorFileNodeManager::updateBarDescriptorNodes(ProjectExplorer::Pro
|
||||
Core::MessageManager::write(tr("Cannot save bar descriptor file: %1").arg(errorMessage));
|
||||
continue;
|
||||
} else {
|
||||
oldDocument->setFilePath(Utils::FileName::fromString(package.appDescriptorPath()));
|
||||
oldDocument->setFilePath(package.appDescriptorPath());
|
||||
|
||||
if (!oldDocument->reload(&errorMessage, Core::IDocument::FlagReload, Core::IDocument::TypeContents))
|
||||
Core::MessageManager::write(tr("Cannot reload bar descriptor file: %1").arg(errorMessage));
|
||||
@@ -190,17 +191,17 @@ void BarDescriptorFileNodeManager::updateBarDescriptorNodes(ProjectExplorer::Pro
|
||||
}
|
||||
|
||||
bool BarDescriptorFileNodeManager::createBarDescriptor(ProjectExplorer::Project *project,
|
||||
const QString &barDescriptorPath,
|
||||
const Utils::FileName &barDescriptorPath,
|
||||
ProjectExplorer::ProjectNode *projectNode)
|
||||
{
|
||||
const QString projectName = QFileInfo(projectNode->path()).completeBaseName();
|
||||
const QString projectName = projectNode->path().toFileInfo().completeBaseName();
|
||||
|
||||
QmakeProjectManager::QmakeProFileNode *proFileNode =
|
||||
dynamic_cast<QmakeProjectManager::QmakeProFileNode*>(projectNode);
|
||||
QTC_ASSERT(proFileNode, return false);
|
||||
const QString targetName = proFileNode->targetInformation().target;
|
||||
|
||||
const QFile barDescriptorFile(barDescriptorPath);
|
||||
const QFile barDescriptorFile(barDescriptorPath.toString());
|
||||
if (barDescriptorFile.exists())
|
||||
return false;
|
||||
|
||||
@@ -261,13 +262,13 @@ bool BarDescriptorFileNodeManager::createBarDescriptor(ProjectExplorer::Project
|
||||
return true;
|
||||
}
|
||||
|
||||
void BarDescriptorFileNodeManager::updateBarDescriptor(const QString &barDescriptorPath,
|
||||
void BarDescriptorFileNodeManager::updateBarDescriptor(const Utils::FileName &barDescriptorPath,
|
||||
ProjectExplorer::Target *target,
|
||||
bool skipConfirmation)
|
||||
{
|
||||
BarDescriptorDocument doc;
|
||||
QString errorString;
|
||||
if (!doc.open(&errorString, barDescriptorPath)) {
|
||||
if (!doc.open(&errorString, barDescriptorPath.toString())) {
|
||||
QMessageBox::warning(Core::ICore::mainWindow(), tr("Error"),
|
||||
tr("Cannot open BAR application descriptor file"));
|
||||
return;
|
||||
@@ -335,8 +336,9 @@ BarDescriptorFileNode *BarDescriptorFileNodeManager::findBarDescriptorFileNode(P
|
||||
return 0;
|
||||
}
|
||||
|
||||
ProjectExplorer::ProjectNode *BarDescriptorFileNodeManager::findProjectNode(ProjectExplorer::ProjectNode *parent,
|
||||
const QString &projectFilePath) const
|
||||
ProjectExplorer::ProjectNode *BarDescriptorFileNodeManager::findProjectNode(
|
||||
ProjectExplorer::ProjectNode *parent,
|
||||
const Utils::FileName &projectFilePath) const
|
||||
{
|
||||
QTC_ASSERT(parent, return 0);
|
||||
|
||||
|
@@ -35,6 +35,10 @@
|
||||
|
||||
#include <QObject>
|
||||
|
||||
namespace Utils {
|
||||
class FileName;
|
||||
}
|
||||
|
||||
namespace ProjectExplorer {
|
||||
class DeployConfiguration;
|
||||
class Project;
|
||||
@@ -64,12 +68,12 @@ private slots:
|
||||
private:
|
||||
BarDescriptorFileNode *findBarDescriptorFileNode(ProjectExplorer::ProjectNode *parent) const;
|
||||
ProjectExplorer::ProjectNode *findProjectNode(ProjectExplorer::ProjectNode *parent,
|
||||
const QString &projectFilePath) const;
|
||||
const Utils::FileName &projectFilePath) const;
|
||||
|
||||
void updateBarDescriptorNodes(ProjectExplorer::Project *project, bool attemptCreate);
|
||||
bool createBarDescriptor(ProjectExplorer::Project *project, const QString &barDescriptorPath,
|
||||
bool createBarDescriptor(ProjectExplorer::Project *project, const Utils::FileName &barDescriptorPath,
|
||||
ProjectExplorer::ProjectNode *projectNode);
|
||||
void updateBarDescriptor(const QString &barDescriptorPath, ProjectExplorer::Target *target,
|
||||
void updateBarDescriptor(const Utils::FileName &barDescriptorPath, ProjectExplorer::Target *target,
|
||||
bool skipConfirmation = false);
|
||||
|
||||
void removeBarDescriptorNodes(ProjectExplorer::Project *project);
|
||||
|
@@ -225,7 +225,7 @@ RunControl::StopResult BlackBerryApplicationRunner::stop()
|
||||
args << QLatin1String("-device") << m_sshParams.host;
|
||||
if (!m_sshParams.password.isEmpty())
|
||||
args << QLatin1String("-password") << m_sshParams.password;
|
||||
args << m_barPackage;
|
||||
args << m_barPackage.toUserOutput();
|
||||
|
||||
if (!m_stopProcess) {
|
||||
m_stopProcess = new QProcess(this);
|
||||
@@ -322,7 +322,7 @@ void BlackBerryApplicationRunner::checkQmlJsDebugArguments()
|
||||
connect(m_checkQmlJsDebugArgumentsProcess, SIGNAL(finished(int)), this, SLOT(checkQmlJsDebugArgumentsManifestLoaded()));
|
||||
|
||||
QStringList args;
|
||||
args << QLatin1String("-listManifest") << QDir::toNativeSeparators(m_barPackage);
|
||||
args << QLatin1String("-listManifest") << m_barPackage.toUserOutput();
|
||||
if (debugCheckQmlJSArgs)
|
||||
qDebug() << "get manifest:" << nativePackagerCmd << args.join(QLatin1Char(' '));
|
||||
m_checkQmlJsDebugArgumentsProcess->start(nativePackagerCmd, args);
|
||||
@@ -379,7 +379,7 @@ void BlackBerryApplicationRunner::checkQmlJsDebugArgumentsManifestLoaded()
|
||||
args << QLatin1String("-device") << m_sshParams.host;
|
||||
if (!m_sshParams.password.isEmpty())
|
||||
args << QLatin1String("-password") << m_sshParams.password;
|
||||
args << QLatin1String("-package") << QDir::toNativeSeparators(m_barPackage);
|
||||
args << QLatin1String("-package") << m_barPackage.toUserOutput();
|
||||
args << QLatin1String("-putFile");
|
||||
args << manifestFile->fileName();
|
||||
args << QLatin1String("app/META-INF/MANIFEST.MF");
|
||||
@@ -416,7 +416,7 @@ void BlackBerryApplicationRunner::launchApplication()
|
||||
args << QLatin1String("-device") << m_sshParams.host;
|
||||
if (!m_sshParams.password.isEmpty())
|
||||
args << QLatin1String("-password") << m_sshParams.password;
|
||||
args << QLatin1String("-package") << QDir::toNativeSeparators(m_barPackage);
|
||||
args << QLatin1String("-package") << m_barPackage.toUserOutput();
|
||||
|
||||
if (!m_launchProcess) {
|
||||
m_launchProcess = new QProcess(this);
|
||||
@@ -460,7 +460,7 @@ void BlackBerryApplicationRunner::determineRunningState()
|
||||
args << QLatin1String("-device") << m_sshParams.host;
|
||||
if (!m_sshParams.password.isEmpty())
|
||||
args << QLatin1String("-password") << m_sshParams.password;
|
||||
args << m_barPackage;
|
||||
args << m_barPackage.toUserOutput();
|
||||
|
||||
if (!m_runningStateProcess) {
|
||||
m_runningStateProcess = new QProcess(this);
|
||||
|
@@ -41,6 +41,7 @@
|
||||
|
||||
#include <ssh/sshconnection.h>
|
||||
#include <utils/environment.h>
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QProcess>
|
||||
@@ -126,7 +127,7 @@ private:
|
||||
Utils::Environment m_environment;
|
||||
QString m_deployCmd;
|
||||
BlackBerryDeviceConfiguration::ConstPtr m_device;
|
||||
QString m_barPackage;
|
||||
Utils::FileName m_barPackage;
|
||||
QSsh::SshConnectionParameters m_sshParams;
|
||||
|
||||
QProcess *m_launchProcess;
|
||||
|
@@ -254,7 +254,7 @@ bool BlackBerryCreatePackageStep::init()
|
||||
return false;
|
||||
}
|
||||
|
||||
const QString buildDir = QFileInfo(info.packagePath()).absolutePath();
|
||||
const QString buildDir = info.packagePath().toFileInfo().absolutePath();
|
||||
QDir dir(buildDir);
|
||||
if (!dir.exists()) {
|
||||
if (!dir.mkpath(buildDir)) {
|
||||
@@ -263,7 +263,7 @@ bool BlackBerryCreatePackageStep::init()
|
||||
}
|
||||
}
|
||||
|
||||
const QString appDescriptorPath = info.appDescriptorPath();
|
||||
const Utils::FileName appDescriptorPath = info.appDescriptorPath();
|
||||
if (!doUpdateAppDescriptorFile(appDescriptorPath, PlaceHolders))
|
||||
// If there is an error, prepareAppDescriptorFile() will raise it
|
||||
return false;
|
||||
@@ -295,8 +295,8 @@ bool BlackBerryCreatePackageStep::init()
|
||||
args << QLatin1String("-storepass");
|
||||
args << m_keystorePassword;
|
||||
}
|
||||
args << QLatin1String("-package") << QnxUtils::addQuotes(QDir::toNativeSeparators(info.packagePath()));
|
||||
args << QnxUtils::addQuotes(QDir::toNativeSeparators(appDescriptorPath));
|
||||
args << QLatin1String("-package") << QnxUtils::addQuotes(info.packagePath().toUserOutput());
|
||||
args << QnxUtils::addQuotes(appDescriptorPath.toUserOutput());
|
||||
|
||||
addCommand(packageCmd.toString(), args);
|
||||
}
|
||||
@@ -428,16 +428,16 @@ void BlackBerryCreatePackageStep::updateAppDescriptorFile()
|
||||
doUpdateAppDescriptorFile(info.appDescriptorPath(), QtEnvironment);
|
||||
}
|
||||
|
||||
bool BlackBerryCreatePackageStep::doUpdateAppDescriptorFile(const QString &appDescriptorPath,
|
||||
bool BlackBerryCreatePackageStep::doUpdateAppDescriptorFile(const Utils::FileName &appDescriptorPath,
|
||||
QFlags<EditMode> types,
|
||||
bool skipConfirmation)
|
||||
{
|
||||
Core::FileChangeBlocker fb(appDescriptorPath);
|
||||
Core::FileChangeBlocker fb(appDescriptorPath.toString());
|
||||
BarDescriptorDocument doc;
|
||||
QString errorString;
|
||||
if (!doc.open(&errorString, appDescriptorPath)) {
|
||||
if (!doc.open(&errorString, appDescriptorPath.toString())) {
|
||||
raiseError(tr("Error opening BAR application descriptor file \"%1\" - %2")
|
||||
.arg(QDir::toNativeSeparators(appDescriptorPath))
|
||||
.arg(appDescriptorPath.toUserOutput())
|
||||
.arg(errorString));
|
||||
return false;
|
||||
}
|
||||
@@ -548,7 +548,7 @@ bool BlackBerryCreatePackageStep::doUpdateAppDescriptorFile(const QString &appDe
|
||||
|
||||
if (!doc.save(&errorString)) {
|
||||
raiseError(tr("Error saving BAR application descriptor file \"%1\" - %2")
|
||||
.arg(QDir::toNativeSeparators(appDescriptorPath))
|
||||
.arg(appDescriptorPath.toUserOutput())
|
||||
.arg(errorString));
|
||||
return false;
|
||||
}
|
||||
|
@@ -106,7 +106,7 @@ protected:
|
||||
private:
|
||||
void ctor();
|
||||
|
||||
bool doUpdateAppDescriptorFile(const QString &appDescriptorPath,
|
||||
bool doUpdateAppDescriptorFile(const Utils::FileName &appDescriptorPath,
|
||||
QFlags<EditMode> types,
|
||||
bool skipConfirmation = false);
|
||||
|
||||
|
@@ -56,18 +56,18 @@ const char TARGET_KEY[] = "Qnx.BlackBerry.DeployInformation.Target";
|
||||
const char SOURCE_KEY[] = "Qnx.BlackBerry.DeployInformation.Source";
|
||||
}
|
||||
|
||||
QString BarPackageDeployInformation::appDescriptorPath() const
|
||||
Utils::FileName BarPackageDeployInformation::appDescriptorPath() const
|
||||
{
|
||||
if (userAppDescriptorPath.isEmpty())
|
||||
return sourceDir + QLatin1String("/bar-descriptor.xml");
|
||||
return Utils::FileName(sourceDir).appendPath(QLatin1String("bar-descriptor.xml"));
|
||||
|
||||
return userAppDescriptorPath;
|
||||
}
|
||||
|
||||
QString BarPackageDeployInformation::packagePath() const
|
||||
Utils::FileName BarPackageDeployInformation::packagePath() const
|
||||
{
|
||||
if (userPackagePath.isEmpty())
|
||||
return buildDir + QLatin1Char('/') + targetName + QLatin1String(".bar");
|
||||
return Utils::FileName(buildDir).appendPath(targetName).appendString(QLatin1String(".bar"));
|
||||
|
||||
return userPackagePath;
|
||||
}
|
||||
@@ -111,9 +111,9 @@ QVariant BlackBerryDeployInformation::data(const QModelIndex &index, int role) c
|
||||
return di.enabled ? Qt::Checked : Qt::Unchecked;
|
||||
} else if (role == Qt::DisplayRole || role == Qt::EditRole) {
|
||||
if (index.column() == AppDescriptorColumn)
|
||||
return QDir::toNativeSeparators(di.appDescriptorPath());
|
||||
return di.appDescriptorPath().toUserOutput();
|
||||
else if (index.column() == PackageColumn)
|
||||
return QDir::toNativeSeparators(di.packagePath());
|
||||
return di.packagePath().toUserOutput();
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
@@ -148,9 +148,9 @@ bool BlackBerryDeployInformation::setData(const QModelIndex &index, const QVaria
|
||||
di.enabled = static_cast<Qt::CheckState>(value.toInt()) == Qt::Checked;
|
||||
} else if (role == Qt::EditRole) {
|
||||
if (index.column() == AppDescriptorColumn)
|
||||
di.userAppDescriptorPath = value.toString();
|
||||
di.userAppDescriptorPath = Utils::FileName::fromString(value.toString());
|
||||
else if (index.column() == PackageColumn)
|
||||
di.userPackagePath = value.toString();
|
||||
di.userPackagePath = Utils::FileName::fromString(value.toString());
|
||||
}
|
||||
|
||||
emit dataChanged(index, index);
|
||||
@@ -200,11 +200,11 @@ QVariantMap BlackBerryDeployInformation::toMap() const
|
||||
|
||||
QVariantMap deployInfoMap;
|
||||
deployInfoMap[QLatin1String(ENABLED_KEY)] = deployInfo.enabled;
|
||||
deployInfoMap[QLatin1String(APPDESCRIPTOR_KEY)] = deployInfo.userAppDescriptorPath;
|
||||
deployInfoMap[QLatin1String(PACKAGE_KEY)] = deployInfo.userPackagePath;
|
||||
deployInfoMap[QLatin1String(PROFILE_KEY)] = deployInfo.proFilePath;
|
||||
deployInfoMap[QLatin1String(APPDESCRIPTOR_KEY)] = deployInfo.userAppDescriptorPath.toString();
|
||||
deployInfoMap[QLatin1String(PACKAGE_KEY)] = deployInfo.userPackagePath.toString();
|
||||
deployInfoMap[QLatin1String(PROFILE_KEY)] = deployInfo.proFilePath.toString();
|
||||
deployInfoMap[QLatin1String(TARGET_KEY)] = deployInfo.targetName;
|
||||
deployInfoMap[QLatin1String(SOURCE_KEY)] = deployInfo.sourceDir;
|
||||
deployInfoMap[QLatin1String(SOURCE_KEY)] = deployInfo.sourceDir.toString();
|
||||
|
||||
outerMap[QString::fromLatin1(DEPLOYINFO_KEY).arg(i)] = deployInfoMap;
|
||||
}
|
||||
@@ -228,11 +228,12 @@ void BlackBerryDeployInformation::fromMap(const QVariantMap &map)
|
||||
const QString targetName = innerMap.value(QLatin1String(TARGET_KEY)).toString();
|
||||
const QString sourceDir = innerMap.value(QLatin1String(SOURCE_KEY)).toString();
|
||||
|
||||
BarPackageDeployInformation deployInformation(enabled, proFilePath, sourceDir,
|
||||
m_target->activeBuildConfiguration()->buildDirectory().toString(),
|
||||
BarPackageDeployInformation deployInformation(enabled, Utils::FileName::fromString(proFilePath),
|
||||
Utils::FileName::fromString(sourceDir),
|
||||
m_target->activeBuildConfiguration()->buildDirectory(),
|
||||
targetName);
|
||||
deployInformation.userAppDescriptorPath = appDescriptorPath;
|
||||
deployInformation.userPackagePath = packagePath;
|
||||
deployInformation.userAppDescriptorPath = Utils::FileName::fromString(appDescriptorPath);
|
||||
deployInformation.userPackagePath = Utils::FileName::fromString(packagePath);
|
||||
m_deployInformation << deployInformation;
|
||||
}
|
||||
|
||||
@@ -262,7 +263,7 @@ void BlackBerryDeployInformation::updateModel()
|
||||
|| !m_deployInformation[i].userPackagePath.isEmpty())) {
|
||||
BarPackageDeployInformation deployInformation = m_deployInformation[i];
|
||||
// In case the user resets the bar package path (or if it is empty already), we need the current build dir
|
||||
deployInformation.buildDir = m_target->activeBuildConfiguration()->buildDirectory().toString();
|
||||
deployInformation.buildDir = m_target->activeBuildConfiguration()->buildDirectory();
|
||||
keep << deployInformation;
|
||||
nodeFound = true;
|
||||
break;
|
||||
@@ -315,8 +316,7 @@ BarPackageDeployInformation BlackBerryDeployInformation::deployInformationFromNo
|
||||
{
|
||||
QmakeProjectManager::TargetInformation ti = node->targetInformation();
|
||||
|
||||
QFileInfo fi(node->path());
|
||||
const QString buildDir = m_target->activeBuildConfiguration()->buildDirectory().toString();
|
||||
const Utils::FileName buildDir = m_target->activeBuildConfiguration()->buildDirectory();
|
||||
|
||||
return BarPackageDeployInformation(true, node->path(), fi.absolutePath(), buildDir, ti.target);
|
||||
return BarPackageDeployInformation(true, node->path(), node->path(), buildDir, ti.target);
|
||||
}
|
||||
|
@@ -33,6 +33,8 @@
|
||||
#ifndef QNX_INTERNAL_BLACKBERRYDEPLOYINFORMATION_H
|
||||
#define QNX_INTERNAL_BLACKBERRYDEPLOYINFORMATION_H
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QAbstractTableModel>
|
||||
|
||||
namespace ProjectExplorer { class Target; }
|
||||
@@ -47,8 +49,11 @@ namespace Internal {
|
||||
|
||||
class BarPackageDeployInformation {
|
||||
public:
|
||||
BarPackageDeployInformation(bool enabled, const QString &proFilePath, const QString &sourceDir,
|
||||
const QString &buildDir, const QString &targetName)
|
||||
BarPackageDeployInformation(bool enabled,
|
||||
const Utils::FileName &proFilePath,
|
||||
const Utils::FileName &sourceDir,
|
||||
const Utils::FileName &buildDir,
|
||||
const QString &targetName)
|
||||
: enabled(enabled)
|
||||
, proFilePath(proFilePath)
|
||||
, sourceDir(sourceDir)
|
||||
@@ -57,17 +62,17 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
QString appDescriptorPath() const;
|
||||
QString packagePath() const;
|
||||
Utils::FileName appDescriptorPath() const;
|
||||
Utils::FileName packagePath() const;
|
||||
|
||||
bool enabled;
|
||||
QString proFilePath;
|
||||
QString sourceDir;
|
||||
QString buildDir;
|
||||
Utils::FileName proFilePath;
|
||||
Utils::FileName sourceDir;
|
||||
Utils::FileName buildDir;
|
||||
QString targetName;
|
||||
|
||||
QString userAppDescriptorPath;
|
||||
QString userPackagePath;
|
||||
Utils::FileName userAppDescriptorPath;
|
||||
Utils::FileName userPackagePath;
|
||||
};
|
||||
|
||||
class BlackBerryDeployInformation : public QAbstractTableModel
|
||||
|
@@ -99,7 +99,7 @@ bool BlackBerryDeployStep::init()
|
||||
args << QLatin1String("-device") << deviceHost();
|
||||
if (!password().isEmpty())
|
||||
args << QLatin1String("-password") << password();
|
||||
args << QnxUtils::addQuotes(QDir::toNativeSeparators(info.packagePath()));
|
||||
args << QnxUtils::addQuotes(info.packagePath().toUserOutput());
|
||||
|
||||
addCommand(deployCmd.toString(), args);
|
||||
}
|
||||
@@ -114,8 +114,9 @@ void BlackBerryDeployStep::run(QFutureInterface<bool> &fi)
|
||||
|
||||
QList<BarPackageDeployInformation> packagesToDeploy = deployConfig->deploymentInfo()->enabledPackages();
|
||||
foreach (const BarPackageDeployInformation &info, packagesToDeploy) {
|
||||
if (!QFileInfo::exists(info.packagePath())) {
|
||||
raiseError(tr("Package \"%1\" does not exist. Create the package first.").arg(info.packagePath()));
|
||||
if (!info.packagePath().exists()) {
|
||||
raiseError(tr("Package \"%1\" does not exist. Create the package first.")
|
||||
.arg(info.packagePath().toUserOutput()));
|
||||
fi.reportResult(false);
|
||||
return;
|
||||
}
|
||||
|
@@ -46,7 +46,7 @@ using namespace Qnx;
|
||||
using namespace Qnx::Internal;
|
||||
using namespace ProjectExplorer;
|
||||
|
||||
BlackBerryRunConfiguration::BlackBerryRunConfiguration(Target *parent, Core::Id id, const QString &path)
|
||||
BlackBerryRunConfiguration::BlackBerryRunConfiguration(Target *parent, Core::Id id, const Utils::FileName &path)
|
||||
: RunConfiguration(parent, id)
|
||||
, m_proFilePath(path)
|
||||
{
|
||||
@@ -72,7 +72,7 @@ void BlackBerryRunConfiguration::init()
|
||||
void BlackBerryRunConfiguration::updateDisplayName()
|
||||
{
|
||||
if (!m_proFilePath.isEmpty())
|
||||
setDefaultDisplayName(QFileInfo(m_proFilePath).completeBaseName());
|
||||
setDefaultDisplayName(m_proFilePath.toFileInfo().completeBaseName());
|
||||
else
|
||||
setDefaultDisplayName(tr("Run on BlackBerry device"));
|
||||
}
|
||||
@@ -82,7 +82,7 @@ QWidget *BlackBerryRunConfiguration::createConfigurationWidget()
|
||||
return new BlackBerryRunConfigurationWidget(this);
|
||||
}
|
||||
|
||||
QString BlackBerryRunConfiguration::proFilePath() const
|
||||
Utils::FileName BlackBerryRunConfiguration::proFilePath() const
|
||||
{
|
||||
return m_proFilePath;
|
||||
}
|
||||
@@ -97,24 +97,23 @@ QString BlackBerryRunConfiguration::deviceName() const
|
||||
return device->displayName();
|
||||
}
|
||||
|
||||
QString BlackBerryRunConfiguration::barPackage() const
|
||||
Utils::FileName BlackBerryRunConfiguration::barPackage() const
|
||||
{
|
||||
BlackBerryDeployConfiguration *dc = deployConfiguration();
|
||||
if (!dc)
|
||||
return QString();
|
||||
return Utils::FileName();
|
||||
|
||||
QList<BarPackageDeployInformation> packages = dc->deploymentInfo()->enabledPackages();
|
||||
foreach (const BarPackageDeployInformation package, packages) {
|
||||
if (package.proFilePath == proFilePath())
|
||||
return package.packagePath();
|
||||
}
|
||||
return QString();
|
||||
return Utils::FileName();
|
||||
}
|
||||
|
||||
QString BlackBerryRunConfiguration::localExecutableFilePath() const
|
||||
{
|
||||
return target()->applicationTargets()
|
||||
.targetForProject(Utils::FileName::fromString(m_proFilePath)).toString();
|
||||
return target()->applicationTargets().targetForProject(m_proFilePath).toString();
|
||||
}
|
||||
|
||||
bool BlackBerryRunConfiguration::fromMap(const QVariantMap &map)
|
||||
@@ -122,8 +121,9 @@ bool BlackBerryRunConfiguration::fromMap(const QVariantMap &map)
|
||||
if (!RunConfiguration::fromMap(map))
|
||||
return false;
|
||||
|
||||
m_proFilePath = map.value(QLatin1String(Constants::QNX_PROFILEPATH_KEY)).toString();
|
||||
if (m_proFilePath.isEmpty() || !QFileInfo::exists(m_proFilePath))
|
||||
m_proFilePath = Utils::FileName::fromUserInput(
|
||||
map.value(QLatin1String(Constants::QNX_PROFILEPATH_KEY)).toString());
|
||||
if (m_proFilePath.isEmpty() || !m_proFilePath.exists())
|
||||
return false;
|
||||
|
||||
init();
|
||||
@@ -133,7 +133,7 @@ bool BlackBerryRunConfiguration::fromMap(const QVariantMap &map)
|
||||
QVariantMap BlackBerryRunConfiguration::toMap() const
|
||||
{
|
||||
QVariantMap map(RunConfiguration::toMap());
|
||||
map.insert(QLatin1String(Constants::QNX_PROFILEPATH_KEY), m_proFilePath);
|
||||
map.insert(QLatin1String(Constants::QNX_PROFILEPATH_KEY), m_proFilePath.toString());
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -144,5 +144,6 @@ BlackBerryDeployConfiguration *BlackBerryRunConfiguration::deployConfiguration()
|
||||
|
||||
QString BlackBerryRunConfiguration::key() const
|
||||
{
|
||||
return barPackage() + QLatin1Char('_') + BlackBerryDeviceConfiguration::device(target()->kit())->sshParameters().host;
|
||||
return barPackage().toString() + QLatin1Char('_')
|
||||
+ BlackBerryDeviceConfiguration::device(target()->kit())->sshParameters().host;
|
||||
}
|
||||
|
@@ -35,6 +35,8 @@
|
||||
|
||||
#include <projectexplorer/runconfiguration.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
namespace ProjectExplorer { class Target; }
|
||||
|
||||
namespace QmakeProjectManager {
|
||||
@@ -53,14 +55,15 @@ class BlackBerryRunConfiguration : public ProjectExplorer::RunConfiguration
|
||||
friend class BlackBerryRunConfigurationFactory;
|
||||
|
||||
public:
|
||||
explicit BlackBerryRunConfiguration(ProjectExplorer::Target *parent, Core::Id id, const QString &path);
|
||||
explicit BlackBerryRunConfiguration(ProjectExplorer::Target *parent, Core::Id id,
|
||||
const Utils::FileName &path);
|
||||
|
||||
QWidget *createConfigurationWidget();
|
||||
|
||||
QString proFilePath() const;
|
||||
Utils::FileName proFilePath() const;
|
||||
|
||||
QString deviceName() const;
|
||||
QString barPackage() const;
|
||||
Utils::FileName barPackage() const;
|
||||
|
||||
QString localExecutableFilePath() const;
|
||||
|
||||
@@ -82,7 +85,7 @@ private:
|
||||
void init();
|
||||
void updateDisplayName();
|
||||
|
||||
QString m_proFilePath;
|
||||
Utils::FileName m_proFilePath;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
@@ -43,9 +43,9 @@
|
||||
using namespace Qnx;
|
||||
using namespace Qnx::Internal;
|
||||
|
||||
static QString pathFromId(Core::Id id)
|
||||
static Utils::FileName pathFromId(Core::Id id)
|
||||
{
|
||||
return id.suffixAfter(Constants::QNX_BB_RUNCONFIGURATION_PREFIX);
|
||||
return Utils::FileName::fromString(id.suffixAfter(Constants::QNX_BB_RUNCONFIGURATION_PREFIX));
|
||||
}
|
||||
|
||||
BlackBerryRunConfigurationFactory::BlackBerryRunConfigurationFactory(QObject *parent) :
|
||||
@@ -72,12 +72,12 @@ QList<Core::Id> BlackBerryRunConfigurationFactory::availableCreationIds(ProjectE
|
||||
|
||||
QString BlackBerryRunConfigurationFactory::displayNameForId(Core::Id id) const
|
||||
{
|
||||
const QString path = pathFromId(id);
|
||||
const Utils::FileName path = pathFromId(id);
|
||||
if (path.isEmpty())
|
||||
return QString();
|
||||
|
||||
if (id.name().startsWith(Constants::QNX_BB_RUNCONFIGURATION_PREFIX))
|
||||
return QFileInfo(path).completeBaseName();
|
||||
return path.toFileInfo().completeBaseName();
|
||||
|
||||
return QString();
|
||||
}
|
||||
@@ -117,7 +117,8 @@ ProjectExplorer::RunConfiguration *BlackBerryRunConfigurationFactory::doRestore(
|
||||
const QVariantMap &map)
|
||||
{
|
||||
Q_UNUSED(map);
|
||||
return new BlackBerryRunConfiguration(parent, Core::Id(Constants::QNX_BB_RUNCONFIGURATION_PREFIX), QString());
|
||||
return new BlackBerryRunConfiguration(parent, Core::Id(Constants::QNX_BB_RUNCONFIGURATION_PREFIX),
|
||||
Utils::FileName());
|
||||
}
|
||||
|
||||
bool BlackBerryRunConfigurationFactory::canClone(ProjectExplorer::Target *parent,
|
||||
|
@@ -57,5 +57,5 @@ BlackBerryRunConfigurationWidget::~BlackBerryRunConfigurationWidget()
|
||||
void BlackBerryRunConfigurationWidget::updateUi()
|
||||
{
|
||||
m_ui->deviceLabel->setText(m_runConfiguration->deviceName());
|
||||
m_ui->packageLabel->setText(m_runConfiguration->barPackage());
|
||||
m_ui->packageLabel->setText(m_runConfiguration->barPackage().toString());
|
||||
}
|
||||
|
@@ -44,9 +44,9 @@
|
||||
using namespace Qnx;
|
||||
using namespace Qnx::Internal;
|
||||
|
||||
static QString pathFromId(Core::Id id)
|
||||
static Utils::FileName pathFromId(Core::Id id)
|
||||
{
|
||||
return id.suffixAfter(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX);
|
||||
return Utils::FileName::fromString(id.suffixAfter(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX));
|
||||
}
|
||||
|
||||
QnxRunConfigurationFactory::QnxRunConfigurationFactory(QObject *parent) :
|
||||
@@ -74,12 +74,12 @@ QList<Core::Id> QnxRunConfigurationFactory::availableCreationIds(ProjectExplorer
|
||||
|
||||
QString QnxRunConfigurationFactory::displayNameForId(Core::Id id) const
|
||||
{
|
||||
const QString path = pathFromId(id);
|
||||
const Utils::FileName path = pathFromId(id);
|
||||
if (path.isEmpty())
|
||||
return QString();
|
||||
|
||||
if (id.name().startsWith(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX))
|
||||
return tr("%1 on QNX Device").arg(QFileInfo(path).completeBaseName());
|
||||
return tr("%1 on QNX Device").arg(path.toFileInfo().completeBaseName());
|
||||
|
||||
return QString();
|
||||
}
|
||||
@@ -98,7 +98,7 @@ bool QnxRunConfigurationFactory::canCreate(ProjectExplorer::Target *parent, Core
|
||||
|
||||
ProjectExplorer::RunConfiguration *QnxRunConfigurationFactory::doCreate(ProjectExplorer::Target *parent, Core::Id id)
|
||||
{
|
||||
const QString projectFilePath = pathFromId(id);
|
||||
const Utils::FileName projectFilePath = pathFromId(id);
|
||||
const QmakeProjectManager::QmakeProject * const qt4Project
|
||||
= qobject_cast<QmakeProjectManager::QmakeProject *>(parent->project());
|
||||
QTC_ASSERT(qt4Project, return 0);
|
||||
|
@@ -263,7 +263,7 @@ void ResourceEditorPlugin::renameFileContextMenu()
|
||||
void ResourceEditorPlugin::removeFileContextMenu()
|
||||
{
|
||||
ResourceFolderNode *rfn = static_cast<ResourceFolderNode *>(ProjectTree::currentNode());
|
||||
QString path = rfn->path();
|
||||
QString path = rfn->path().toString();
|
||||
FolderNode *parent = rfn->parentFolderNode();
|
||||
if (!parent->removeFiles(QStringList() << path))
|
||||
QMessageBox::warning(Core::ICore::mainWindow(),
|
||||
@@ -273,7 +273,7 @@ void ResourceEditorPlugin::removeFileContextMenu()
|
||||
|
||||
void ResourceEditorPlugin::openEditorContextMenu()
|
||||
{
|
||||
Core::EditorManager::openEditor(ProjectTree::currentNode()->path());
|
||||
Core::EditorManager::openEditor(ProjectTree::currentNode()->path().toString());
|
||||
}
|
||||
|
||||
void ResourceEditorPlugin::copyPathContextMenu()
|
||||
@@ -333,7 +333,7 @@ void ResourceEditorPlugin::updateContextActions(Node *node, Project *)
|
||||
m_renamePrefix->setVisible(isResourceFolder);
|
||||
|
||||
if (isResourceNode)
|
||||
Core::DocumentManager::populateOpenWithMenu(m_openWithMenu, node->path());
|
||||
Core::DocumentManager::populateOpenWithMenu(m_openWithMenu, node->path().toString());
|
||||
else
|
||||
m_openWithMenu->clear();
|
||||
m_openWithMenu->menuAction()->setVisible(!m_openWithMenu->actions().isEmpty());
|
||||
|
@@ -60,13 +60,16 @@ static bool priority(const QStringList &files)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool addFilesToResource(const QString &resourceFile, const QStringList &filePaths, QStringList *notAdded,
|
||||
const QString &prefix, const QString &lang)
|
||||
static bool addFilesToResource(const Utils::FileName &resourceFile,
|
||||
const QStringList &filePaths,
|
||||
QStringList *notAdded,
|
||||
const QString &prefix,
|
||||
const QString &lang)
|
||||
{
|
||||
if (notAdded)
|
||||
*notAdded = filePaths;
|
||||
|
||||
ResourceFile file(resourceFile);
|
||||
ResourceFile file(resourceFile.toString());
|
||||
if (!file.load())
|
||||
return false;
|
||||
|
||||
@@ -85,9 +88,9 @@ static bool addFilesToResource(const QString &resourceFile, const QStringList &f
|
||||
}
|
||||
}
|
||||
|
||||
Core::DocumentManager::expectFileChange(resourceFile);
|
||||
Core::DocumentManager::expectFileChange(resourceFile.toString());
|
||||
file.save();
|
||||
Core::DocumentManager::unexpectFileChange(resourceFile);
|
||||
Core::DocumentManager::unexpectFileChange(resourceFile.toString());
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -109,19 +112,18 @@ static bool sortNodesByPath(ProjectExplorer::Node *a, ProjectExplorer::Node *b)
|
||||
return a->path() < b->path();
|
||||
}
|
||||
|
||||
ResourceTopLevelNode::ResourceTopLevelNode(const QString &filePath, FolderNode *parent)
|
||||
ResourceTopLevelNode::ResourceTopLevelNode(const Utils::FileName &filePath, FolderNode *parent)
|
||||
: ProjectExplorer::FolderNode(filePath)
|
||||
{
|
||||
setIcon(Core::FileIconProvider::icon(filePath));
|
||||
setIcon(Core::FileIconProvider::icon(filePath.toString()));
|
||||
m_document = new ResourceFileWatcher(this);
|
||||
Core::DocumentManager::addDocument(m_document);
|
||||
|
||||
Utils::FileName base = Utils::FileName::fromString(parent->path());
|
||||
Utils::FileName file = Utils::FileName::fromString(filePath);
|
||||
if (file.isChildOf(base))
|
||||
setDisplayName(file.relativeChildPath(base).toString());
|
||||
Utils::FileName base = parent->path();
|
||||
if (filePath.isChildOf(base))
|
||||
setDisplayName(filePath.relativeChildPath(base).toString());
|
||||
else
|
||||
setDisplayName(file.toString());
|
||||
setDisplayName(filePath.toString());
|
||||
}
|
||||
|
||||
ResourceTopLevelNode::~ResourceTopLevelNode()
|
||||
@@ -135,7 +137,7 @@ void ResourceTopLevelNode::update()
|
||||
QList<ProjectExplorer::FolderNode *> newFolderList;
|
||||
QMap<QPair<QString, QString>, QList<ProjectExplorer::FileNode *> > filesToAdd;
|
||||
|
||||
ResourceFile file(path());
|
||||
ResourceFile file(path().toString());
|
||||
if (file.load()) {
|
||||
QSet<QPair<QString, QString > > prefixes;
|
||||
|
||||
@@ -156,9 +158,8 @@ void ResourceTopLevelNode::update()
|
||||
for (int j = 0; j < filecount; ++j) {
|
||||
const QString &fileName = file.file(i, j);
|
||||
QString alias = file.alias(i, j);
|
||||
if (alias.isEmpty()) {
|
||||
alias = QFileInfo(path()).absoluteDir().relativeFilePath(fileName);
|
||||
}
|
||||
if (alias.isEmpty())
|
||||
alias = path().toFileInfo().absoluteDir().relativeFilePath(fileName);
|
||||
if (fileNames.contains(fileName)) {
|
||||
// The file name is duplicated, skip it
|
||||
// Note: this is wrong, but the qrceditor doesn't allow it either
|
||||
@@ -170,7 +171,8 @@ void ResourceTopLevelNode::update()
|
||||
const QString qrcPath = QDir::cleanPath(prefixWithSlash + alias);
|
||||
fileNames.insert(fileName);
|
||||
filesToAdd[qMakePair(prefix, lang)]
|
||||
<< new ResourceFileNode(fileName, qrcPath, this);
|
||||
<< new ResourceFileNode(Utils::FileName::fromString(fileName),
|
||||
qrcPath, this);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -222,31 +224,31 @@ bool ResourceTopLevelNode::removeFiles(const QStringList &filePaths, QStringList
|
||||
|
||||
bool ResourceTopLevelNode::addPrefix(const QString &prefix, const QString &lang)
|
||||
{
|
||||
ResourceFile file(path());
|
||||
ResourceFile file(path().toString());
|
||||
if (!file.load())
|
||||
return false;
|
||||
int index = file.addPrefix(prefix, lang);
|
||||
if (index == -1)
|
||||
return false;
|
||||
Core::DocumentManager::expectFileChange(path());
|
||||
Core::DocumentManager::expectFileChange(path().toString());
|
||||
file.save();
|
||||
Core::DocumentManager::unexpectFileChange(path());
|
||||
Core::DocumentManager::unexpectFileChange(path().toString());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ResourceTopLevelNode::removePrefix(const QString &prefix, const QString &lang)
|
||||
{
|
||||
ResourceFile file(path());
|
||||
ResourceFile file(path().toString());
|
||||
if (!file.load())
|
||||
return false;
|
||||
for (int i = 0; i < file.prefixCount(); ++i) {
|
||||
if (file.prefix(i) == prefix
|
||||
&& file.lang(i) == lang) {
|
||||
file.removePrefix(i);
|
||||
Core::DocumentManager::expectFileChange(path());
|
||||
Core::DocumentManager::expectFileChange(path().toString());
|
||||
file.save();
|
||||
Core::DocumentManager::unexpectFileChange(path());
|
||||
Core::DocumentManager::unexpectFileChange(path().toString());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -256,7 +258,7 @@ bool ResourceTopLevelNode::removePrefix(const QString &prefix, const QString &la
|
||||
ProjectExplorer::FolderNode::AddNewInformation ResourceTopLevelNode::addNewInformation(const QStringList &files, Node *context) const
|
||||
{
|
||||
QString name = QCoreApplication::translate("ResourceTopLevelNode", "%1 Prefix: %2")
|
||||
.arg(Utils::FileName::fromString(path()).fileName())
|
||||
.arg(path().fileName())
|
||||
.arg(QLatin1Char('/'));
|
||||
|
||||
int p = -1;
|
||||
@@ -283,7 +285,7 @@ bool ResourceTopLevelNode::showInSimpleTree() const
|
||||
}
|
||||
|
||||
ResourceFolderNode::ResourceFolderNode(const QString &prefix, const QString &lang, ResourceTopLevelNode *parent)
|
||||
: ProjectExplorer::FolderNode(parent->path() + QLatin1Char('/') + prefix),
|
||||
: ProjectExplorer::FolderNode(parent->path().appendPath(prefix)),
|
||||
// TOOD Why add existing directory doesn't work
|
||||
m_topLevelNode(parent),
|
||||
m_prefix(prefix),
|
||||
@@ -325,7 +327,7 @@ bool ResourceFolderNode::removeFiles(const QStringList &filePaths, QStringList *
|
||||
{
|
||||
if (notRemoved)
|
||||
*notRemoved = filePaths;
|
||||
ResourceFile file(m_topLevelNode->path());
|
||||
ResourceFile file(m_topLevelNode->path().toString());
|
||||
if (!file.load())
|
||||
return false;
|
||||
int index = file.indexOfPrefix(m_prefix, m_lang);
|
||||
@@ -340,16 +342,16 @@ bool ResourceFolderNode::removeFiles(const QStringList &filePaths, QStringList *
|
||||
file.removeFile(index, j);
|
||||
--j;
|
||||
}
|
||||
Core::DocumentManager::expectFileChange(m_topLevelNode->path());
|
||||
Core::DocumentManager::expectFileChange(m_topLevelNode->path().toString());
|
||||
file.save();
|
||||
Core::DocumentManager::unexpectFileChange(m_topLevelNode->path());
|
||||
Core::DocumentManager::unexpectFileChange(m_topLevelNode->path().toString());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ResourceFolderNode::renameFile(const QString &filePath, const QString &newFilePath)
|
||||
{
|
||||
ResourceFile file(m_topLevelNode->path());
|
||||
ResourceFile file(m_topLevelNode->path().toString());
|
||||
if (!file.load())
|
||||
return false;
|
||||
int index = file.indexOfPrefix(m_prefix, m_lang);
|
||||
@@ -359,9 +361,9 @@ bool ResourceFolderNode::renameFile(const QString &filePath, const QString &newF
|
||||
for (int j = 0; j < file.fileCount(index); ++j) {
|
||||
if (file.file(index, j) == filePath) {
|
||||
file.replaceFile(index, j, newFilePath);
|
||||
Core::DocumentManager::expectFileChange(m_topLevelNode->path());
|
||||
Core::DocumentManager::expectFileChange(m_topLevelNode->path().toString());
|
||||
file.save();
|
||||
Core::DocumentManager::unexpectFileChange(m_topLevelNode->path());
|
||||
Core::DocumentManager::unexpectFileChange(m_topLevelNode->path().toString());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -371,7 +373,7 @@ bool ResourceFolderNode::renameFile(const QString &filePath, const QString &newF
|
||||
|
||||
bool ResourceFolderNode::renamePrefix(const QString &prefix, const QString &lang)
|
||||
{
|
||||
ResourceFile file(m_topLevelNode->path());
|
||||
ResourceFile file(m_topLevelNode->path().toString());
|
||||
if (!file.load())
|
||||
return false;
|
||||
int index = file.indexOfPrefix(m_prefix, m_lang);
|
||||
@@ -381,16 +383,16 @@ bool ResourceFolderNode::renamePrefix(const QString &prefix, const QString &lang
|
||||
if (!file.replacePrefixAndLang(index, prefix, lang))
|
||||
return false;
|
||||
|
||||
Core::DocumentManager::expectFileChange(m_topLevelNode->path());
|
||||
Core::DocumentManager::expectFileChange(m_topLevelNode->path().toString());
|
||||
file.save();
|
||||
Core::DocumentManager::unexpectFileChange(m_topLevelNode->path());
|
||||
Core::DocumentManager::unexpectFileChange(m_topLevelNode->path().toString());
|
||||
return true;
|
||||
}
|
||||
|
||||
ProjectExplorer::FolderNode::AddNewInformation ResourceFolderNode::addNewInformation(const QStringList &files, Node *context) const
|
||||
{
|
||||
QString name = QCoreApplication::translate("ResourceTopLevelNode", "%1 Prefix: %2")
|
||||
.arg(Utils::FileName::fromString(m_topLevelNode->path()).fileName())
|
||||
.arg(m_topLevelNode->path().fileName())
|
||||
.arg(displayName());
|
||||
|
||||
int p = -1; // never the default
|
||||
@@ -447,7 +449,7 @@ ResourceFileWatcher::ResourceFileWatcher(ResourceTopLevelNode *node)
|
||||
{
|
||||
setId("ResourceNodeWatcher");
|
||||
setMimeType(QLatin1String(ResourceEditor::Constants::C_RESOURCE_MIMETYPE));
|
||||
setFilePath(Utils::FileName::fromString(node->path()));
|
||||
setFilePath(node->path());
|
||||
}
|
||||
|
||||
bool ResourceFileWatcher::save(QString *errorString, const QString &fileName, bool autoSave)
|
||||
@@ -495,13 +497,13 @@ bool ResourceFileWatcher::reload(QString *errorString, ReloadFlag flag, ChangeTy
|
||||
return true;
|
||||
}
|
||||
|
||||
ResourceFileNode::ResourceFileNode(const QString &filePath, const QString &qrcPath, ResourceTopLevelNode *topLevel)
|
||||
ResourceFileNode::ResourceFileNode(const Utils::FileName &filePath, const QString &qrcPath, ResourceTopLevelNode *topLevel)
|
||||
: ProjectExplorer::FileNode(filePath, ProjectExplorer::UnknownFileType, false),
|
||||
m_qrcPath(qrcPath)
|
||||
|
||||
{
|
||||
QString baseDir = QFileInfo(topLevel->path()).absolutePath();
|
||||
m_displayName = QDir(baseDir).relativeFilePath(filePath);
|
||||
QDir baseDir = topLevel->path().toFileInfo().absoluteDir();
|
||||
m_displayName = QDir(baseDir).relativeFilePath(filePath.toString());
|
||||
}
|
||||
|
||||
QString ResourceFileNode::displayName() const
|
||||
|
@@ -45,7 +45,7 @@ namespace Internal { class ResourceFileWatcher; }
|
||||
class RESOURCE_EXPORT ResourceTopLevelNode : public ProjectExplorer::FolderNode
|
||||
{
|
||||
public:
|
||||
ResourceTopLevelNode(const QString &filePath, FolderNode *parent);
|
||||
ResourceTopLevelNode(const Utils::FileName &filePath, FolderNode *parent);
|
||||
~ResourceTopLevelNode();
|
||||
void update();
|
||||
|
||||
@@ -96,7 +96,7 @@ private:
|
||||
class ResourceFileNode : public ProjectExplorer::FileNode
|
||||
{
|
||||
public:
|
||||
ResourceFileNode(const QString &filePath, const QString &qrcPath, ResourceTopLevelNode *topLevel);
|
||||
ResourceFileNode(const Utils::FileName &filePath, const QString &qrcPath, ResourceTopLevelNode *topLevel);
|
||||
|
||||
QString displayName() const;
|
||||
QString qrcPath() const;
|
||||
|
@@ -213,7 +213,7 @@ void SuppressionDialog::accept()
|
||||
return;
|
||||
|
||||
// Add file to project if there is a project containing this file on the file system.
|
||||
if (!ProjectExplorer::SessionManager::projectForFile(path)) {
|
||||
if (!ProjectExplorer::SessionManager::projectForFile(Utils::FileName::fromString(path))) {
|
||||
foreach (ProjectExplorer::Project *p, ProjectExplorer::SessionManager::projects()) {
|
||||
if (path.startsWith(p->projectDirectory().toString())) {
|
||||
p->rootProjectNode()->addFiles(QStringList() << path);
|
||||
|
@@ -61,7 +61,8 @@ QString testDataDir = QLatin1String(SRCDIR "/data");
|
||||
|
||||
static QmlProjectItem *loadQmlProject(QString name, QString *error)
|
||||
{
|
||||
return QmlProjectFileFormat::parseProjectFile(testDataDir + "/" + name + ".qmlproject", error);
|
||||
return QmlProjectFileFormat::parseProjectFile(
|
||||
Utils::FileName::fromString(testDataDir).appendPath(name).appendString(".qmlproject"), error);
|
||||
}
|
||||
|
||||
void tst_FileFormat::testFileFilter()
|
||||
|
Reference in New Issue
Block a user