Utils: Rename FileName to FilePath

More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.

Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-05-28 13:49:26 +02:00
parent 4704f49fbb
commit 473a741c9f
688 changed files with 3487 additions and 3484 deletions

View File

@@ -196,7 +196,7 @@ static bool copyRecursively(const QString &srcFilePath,
if (srcFileInfo.isDir()) {
QDir targetDir(tgtFilePath);
targetDir.cdUp();
if (!targetDir.mkdir(Utils::FileName::fromString(tgtFilePath).fileName()))
if (!targetDir.mkdir(Utils::FilePath::fromString(tgtFilePath).fileName()))
return false;
QDir sourceDir(srcFilePath);
QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System);

View File

@@ -756,17 +756,17 @@ bool Snapshot::isEmpty() const
return _documents.isEmpty();
}
Snapshot::const_iterator Snapshot::find(const Utils::FileName &fileName) const
Snapshot::const_iterator Snapshot::find(const Utils::FilePath &fileName) const
{
return _documents.find(fileName);
}
void Snapshot::remove(const Utils::FileName &fileName)
void Snapshot::remove(const Utils::FilePath &fileName)
{
_documents.remove(fileName);
}
bool Snapshot::contains(const Utils::FileName &fileName) const
bool Snapshot::contains(const Utils::FilePath &fileName) const
{
return _documents.contains(fileName);
}
@@ -774,7 +774,7 @@ bool Snapshot::contains(const Utils::FileName &fileName) const
void Snapshot::insert(Document::Ptr doc)
{
if (doc) {
_documents.insert(Utils::FileName::fromString(doc->fileName()), doc);
_documents.insert(Utils::FilePath::fromString(doc->fileName()), doc);
m_deps.files.clear(); // Will trigger re-build when accessed.
}
}
@@ -794,7 +794,7 @@ static QList<Macro> macrosDefinedUntilLine(const QList<Macro> &macros, int line)
}
Document::Ptr Snapshot::preprocessedDocument(const QByteArray &source,
const Utils::FileName &fileName,
const Utils::FilePath &fileName,
int withDefinedMacrosFromDocumentUntilLine) const
{
Document::Ptr newDoc = Document::create(fileName.toString());
@@ -858,7 +858,7 @@ QList<Snapshot::IncludeLocation> Snapshot::includeLocationsOfDocument(const QStr
return result;
}
Utils::FileNameList Snapshot::filesDependingOn(const Utils::FileName &fileName) const
Utils::FilePathList Snapshot::filesDependingOn(const Utils::FilePath &fileName) const
{
updateDependencyTable();
return m_deps.filesDependingOn(fileName);
@@ -887,7 +887,7 @@ void Snapshot::allIncludesForDocument_helper(const QString &fileName, QSet<QStri
}
}
Document::Ptr Snapshot::document(const Utils::FileName &fileName) const
Document::Ptr Snapshot::document(const Utils::FilePath &fileName) const
{
return _documents.value(fileName);
}

View File

@@ -389,7 +389,7 @@ private:
class CPLUSPLUS_EXPORT Snapshot
{
typedef QHash<Utils::FileName, Document::Ptr> Base;
typedef QHash<Utils::FilePath, Document::Ptr> Base;
public:
Snapshot();
@@ -403,36 +403,36 @@ public:
bool isEmpty() const;
void insert(Document::Ptr doc); // ### remove
void remove(const Utils::FileName &fileName); // ### remove
void remove(const Utils::FilePath &fileName); // ### remove
void remove(const QString &fileName)
{ remove(Utils::FileName::fromString(fileName)); }
{ remove(Utils::FilePath::fromString(fileName)); }
const_iterator begin() const { return _documents.begin(); }
const_iterator end() const { return _documents.end(); }
bool contains(const Utils::FileName &fileName) const;
bool contains(const Utils::FilePath &fileName) const;
bool contains(const QString &fileName) const
{ return contains(Utils::FileName::fromString(fileName)); }
{ return contains(Utils::FilePath::fromString(fileName)); }
Document::Ptr document(const Utils::FileName &fileName) const;
Document::Ptr document(const Utils::FilePath &fileName) const;
Document::Ptr document(const QString &fileName) const
{ return document(Utils::FileName::fromString(fileName)); }
{ return document(Utils::FilePath::fromString(fileName)); }
const_iterator find(const Utils::FileName &fileName) const;
const_iterator find(const Utils::FilePath &fileName) const;
const_iterator find(const QString &fileName) const
{ return find(Utils::FileName::fromString(fileName)); }
{ return find(Utils::FilePath::fromString(fileName)); }
Snapshot simplified(Document::Ptr doc) const;
Document::Ptr preprocessedDocument(const QByteArray &source,
const Utils::FileName &fileName,
const Utils::FilePath &fileName,
int withDefinedMacrosFromDocumentUntilLine = -1) const;
Document::Ptr preprocessedDocument(const QByteArray &source,
const QString &fileName,
int withDefinedMacrosFromDocumentUntilLine = -1) const
{
return preprocessedDocument(source,
Utils::FileName::fromString(fileName),
Utils::FilePath::fromString(fileName),
withDefinedMacrosFromDocumentUntilLine);
}
@@ -442,9 +442,9 @@ public:
QSet<QString> allIncludesForDocument(const QString &fileName) const;
QList<IncludeLocation> includeLocationsOfDocument(const QString &fileName) const;
Utils::FileNameList filesDependingOn(const Utils::FileName &fileName) const;
Utils::FileNameList filesDependingOn(const QString &fileName) const
{ return filesDependingOn(Utils::FileName::fromString(fileName)); }
Utils::FilePathList filesDependingOn(const Utils::FilePath &fileName) const;
Utils::FilePathList filesDependingOn(const QString &fileName) const
{ return filesDependingOn(Utils::FilePath::fromString(fileName)); }
void updateDependencyTable() const;
bool operator==(const Snapshot &other) const;

View File

@@ -29,9 +29,9 @@
using namespace CPlusPlus;
Utils::FileNameList DependencyTable::filesDependingOn(const Utils::FileName &fileName) const
Utils::FilePathList DependencyTable::filesDependingOn(const Utils::FilePath &fileName) const
{
Utils::FileNameList deps;
Utils::FilePathList deps;
int index = fileIndex.value(fileName, -1);
if (index == -1)
@@ -66,14 +66,14 @@ void DependencyTable::build(const Snapshot &snapshot)
}
for (int i = 0; i < files.size(); ++i) {
const Utils::FileName &fileName = files.at(i);
const Utils::FilePath &fileName = files.at(i);
if (Document::Ptr doc = snapshot.document(fileName)) {
QBitArray bitmap(files.size());
QList<int> directIncludes;
const QStringList documentIncludes = doc->includedFiles();
foreach (const QString &includedFile, documentIncludes) {
int index = fileIndex.value(Utils::FileName::fromString(includedFile));
int index = fileIndex.value(Utils::FilePath::fromString(includedFile));
if (index == -1)
continue;

View File

@@ -44,10 +44,10 @@ class CPLUSPLUS_EXPORT DependencyTable
private:
friend class Snapshot;
void build(const Snapshot &snapshot);
Utils::FileNameList filesDependingOn(const Utils::FileName &fileName) const;
Utils::FilePathList filesDependingOn(const Utils::FilePath &fileName) const;
QVector<Utils::FileName> files;
QHash<Utils::FileName, int> fileIndex;
QVector<Utils::FilePath> files;
QHash<Utils::FilePath, int> fileIndex;
QHash<int, QList<int> > includes;
QVector<QBitArray> includeMap;
};

View File

@@ -170,7 +170,7 @@ void FindUsages::reportResult(unsigned tokenIndex)
const int len = tk.utf16chars();
const Usage u(Utils::FileName::fromString(_doc->fileName()), lineText, line, col, len);
const Usage u(Utils::FilePath::fromString(_doc->fileName()), lineText, line, col, len);
_usages.append(u);
_references.append(tokenIndex);
}

View File

@@ -40,11 +40,11 @@ class CPLUSPLUS_EXPORT Usage
{
public:
Usage() = default;
Usage(const Utils::FileName &path, const QString &lineText, int line, int col, int len)
Usage(const Utils::FilePath &path, const QString &lineText, int line, int col, int len)
: path(path), lineText(lineText), line(line), col(col), len(len) {}
public:
Utils::FileName path;
Utils::FilePath path;
QString lineText;
int line = 0;
int col = 0;

View File

@@ -362,7 +362,7 @@ bool Range::overlaps(const Range &range) const
return contains(range.start()) || contains(range.end());
}
bool DocumentFilter::applies(const Utils::FileName &fileName, const Utils::MimeType &mimeType) const
bool DocumentFilter::applies(const Utils::FilePath &fileName, const Utils::MimeType &mimeType) const
{
if (Utils::optional<QString> _scheme = scheme()) {
if (_scheme.value() == fileName.toString())
@@ -406,14 +406,14 @@ DocumentUri::DocumentUri(const QString &other)
: QUrl(QUrl::fromPercentEncoding(other.toLocal8Bit()))
{ }
DocumentUri::DocumentUri(const Utils::FileName &other)
DocumentUri::DocumentUri(const Utils::FilePath &other)
: QUrl(QUrl::fromLocalFile(other.toString()))
{ }
Utils::FileName DocumentUri::toFileName() const
Utils::FilePath DocumentUri::toFileName() const
{
return isLocalFile() ? Utils::FileName::fromUserInput(QUrl(*this).toLocalFile())
: Utils::FileName();
return isLocalFile() ? Utils::FilePath::fromUserInput(QUrl(*this).toLocalFile())
: Utils::FilePath();
}
MarkupKind::MarkupKind(const QJsonValue &value)

View File

@@ -45,16 +45,16 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentUri : public QUrl
{
public:
DocumentUri() = default;
Utils::FileName toFileName() const;
Utils::FilePath toFileName() const;
static DocumentUri fromProtocol(const QString &uri) { return DocumentUri(uri); }
static DocumentUri fromFileName(const Utils::FileName &file) { return DocumentUri(file); }
static DocumentUri fromFileName(const Utils::FilePath &file) { return DocumentUri(file); }
operator QJsonValue() const { return QJsonValue(toString()); }
private:
DocumentUri(const QString &other);
DocumentUri(const Utils::FileName &other);
DocumentUri(const Utils::FilePath &other);
friend class LanguageClientValue<QString>;
};
@@ -372,7 +372,7 @@ public:
void setPattern(const QString &pattern) { insert(patternKey, pattern); }
void clearPattern() { remove(patternKey); }
bool applies(const Utils::FileName &fileName,
bool applies(const Utils::FilePath &fileName,
const Utils::MimeType &mimeType = Utils::MimeType()) const;
bool isValid(QStringList *error) const override;

View File

@@ -161,7 +161,7 @@ bool ServerCapabilities::WorkspaceServerCapabilities::WorkspaceFoldersCapabiliti
&& checkOptional<QString, bool>(error, changeNotificationsKey);
}
bool TextDocumentRegistrationOptions::filterApplies(const Utils::FileName &fileName,
bool TextDocumentRegistrationOptions::filterApplies(const Utils::FilePath &fileName,
const Utils::MimeType &mimeType) const
{
const LanguageClientArray<DocumentFilter> &selector = documentSelector();

View File

@@ -52,7 +52,7 @@ public:
void setDocumentSelector(const LanguageClientArray<DocumentFilter> &documentSelector)
{ insert(documentSelectorKey, documentSelector.toJson()); }
bool filterApplies(const Utils::FileName &fileName,
bool filterApplies(const Utils::FilePath &fileName,
const Utils::MimeType &mimeType = Utils::MimeType()) const;
bool isValid(QStringList *error) const override
@@ -268,7 +268,7 @@ public:
void setDocumentSelector(const LanguageClientArray<DocumentFilter> &documentSelector)
{ insert(documentSelectorKey, documentSelector.toJson()); }
bool filterApplies(const Utils::FileName &fileName,
bool filterApplies(const Utils::FilePath &fileName,
const Utils::MimeType &mimeType = Utils::MimeType()) const;
// The id used to register the request. The id can be used to deregister

View File

@@ -232,7 +232,7 @@ QDebug operator << (QDebug &dbg, const Dialect &dialect)
return dbg;
}
PathAndLanguage::PathAndLanguage(const Utils::FileName &path, Dialect language)
PathAndLanguage::PathAndLanguage(const Utils::FilePath &path, Dialect language)
: m_path(path), m_language(language)
{ }
@@ -293,11 +293,11 @@ void PathsAndLanguages::compact()
return;
int oldCompactionPlace = 0;
Utils::FileName oldPath = m_list.first().path();
Utils::FilePath oldPath = m_list.first().path();
QList<PathAndLanguage> compactedList;
bool restrictFailed = false;
for (int i = 1; i < m_list.length(); ++i) {
Utils::FileName newPath = m_list.at(i).path();
Utils::FilePath newPath = m_list.at(i).path();
if (newPath == oldPath) {
int newCompactionPlace = i - 1;
compactedList << m_list.mid(oldCompactionPlace, newCompactionPlace - oldCompactionPlace);

View File

@@ -78,8 +78,8 @@ QMLJS_EXPORT QDebug operator << (QDebug &dbg, const Dialect &dialect);
class QMLJS_EXPORT PathAndLanguage {
public:
PathAndLanguage(const Utils::FileName &path = Utils::FileName(), Dialect language = Dialect::AnyLanguage);
Utils::FileName path() const {
PathAndLanguage(const Utils::FilePath &path = Utils::FilePath(), Dialect language = Dialect::AnyLanguage);
Utils::FilePath path() const {
return m_path;
}
Dialect language() const {
@@ -88,7 +88,7 @@ public:
bool operator ==(const PathAndLanguage &other) const;
bool operator < (const PathAndLanguage &other) const;
private:
Utils::FileName m_path;
Utils::FilePath m_path;
Dialect m_language;
};
@@ -128,7 +128,7 @@ public:
: m_list(list)
{ }
bool maybeInsert(const Utils::FileName &path, Dialect language = Dialect::AnyLanguage) {
bool maybeInsert(const Utils::FilePath &path, Dialect language = Dialect::AnyLanguage) {
return maybeInsert(PathAndLanguage(path, language));
}

View File

@@ -1100,14 +1100,14 @@ void ModelManagerInterface::updateImportPaths()
PathAndLanguage pAndL = iPaths.at(i);
const QString canonicalPath = pAndL.path().toFileInfo().canonicalFilePath();
if (!canonicalPath.isEmpty())
allImportPaths.maybeInsert(Utils::FileName::fromString(canonicalPath),
allImportPaths.maybeInsert(Utils::FilePath::fromString(canonicalPath),
pAndL.language());
}
}
while (vCtxsIter.hasNext()) {
vCtxsIter.next();
foreach (const QString &path, vCtxsIter.value().paths)
allImportPaths.maybeInsert(Utils::FileName::fromString(path), vCtxsIter.value().language);
allImportPaths.maybeInsert(Utils::FilePath::fromString(path), vCtxsIter.value().language);
}
pInfoIter.toFront();
while (pInfoIter.hasNext()) {
@@ -1118,7 +1118,7 @@ void ModelManagerInterface::updateImportPaths()
.searchPaths().stringList()) {
const QString canonicalPath = QFileInfo(path).canonicalFilePath();
if (!canonicalPath.isEmpty())
allImportPaths.maybeInsert(Utils::FileName::fromString(canonicalPath), l);
allImportPaths.maybeInsert(Utils::FilePath::fromString(canonicalPath), l);
}
}
}
@@ -1127,16 +1127,16 @@ void ModelManagerInterface::updateImportPaths()
pInfoIter.next();
QString pathAtt = pInfoIter.value().qtQmlPath;
if (!pathAtt.isEmpty())
allImportPaths.maybeInsert(Utils::FileName::fromString(pathAtt), Dialect::QmlQtQuick2);
allImportPaths.maybeInsert(Utils::FilePath::fromString(pathAtt), Dialect::QmlQtQuick2);
}
{
QString pathAtt = defaultProjectInfo().qtQmlPath;
if (!pathAtt.isEmpty())
allImportPaths.maybeInsert(Utils::FileName::fromString(pathAtt), Dialect::QmlQtQuick2);
allImportPaths.maybeInsert(Utils::FilePath::fromString(pathAtt), Dialect::QmlQtQuick2);
}
foreach (const QString &path, m_defaultImportPaths)
allImportPaths.maybeInsert(Utils::FileName::fromString(path), Dialect::Qml);
allImportPaths.maybeInsert(Utils::FilePath::fromString(path), Dialect::Qml);
allImportPaths.compact();
{

View File

@@ -138,7 +138,7 @@ void SftpSession::doStart()
{
if (d->state != State::Starting)
return;
const FileName sftpBinary = SshSettings::sftpFilePath();
const FilePath sftpBinary = SshSettings::sftpFilePath();
if (!sftpBinary.exists()) {
d->state = State::Inactive;
emit done(tr("Cannot establish SFTP session: sftp binary \"%1\" does not exist.")

View File

@@ -132,7 +132,7 @@ SftpTransfer::SftpTransfer(const FilesToTransfer &files, Internal::FileTransferT
void SftpTransfer::doStart()
{
const FileName sftpBinary = SshSettings::sftpFilePath();
const FilePath sftpBinary = SshSettings::sftpFilePath();
if (!sftpBinary.exists()) {
emitError(tr("sftp binary \"%1\" does not exist.").arg(sftpBinary.toUserOutput()));
return;

View File

@@ -342,7 +342,7 @@ void SshConnection::doConnectToHost()
{
if (d->state != Connecting)
return;
const FileName sshBinary = SshSettings::sshFilePath();
const FilePath sshBinary = SshSettings::sshFilePath();
if (!sshBinary.exists()) {
emitError(tr("Cannot establish SSH connection: ssh binary \"%1\" does not exist.")
.arg(sshBinary.toUserOutput()));

View File

@@ -39,11 +39,11 @@ struct SshSettings
{
bool useConnectionSharing = !HostOsInfo::isWindowsHost();
int connectionSharingTimeOutInMinutes = 10;
FileName sshFilePath;
FileName sftpFilePath;
FileName askpassFilePath;
FileName keygenFilePath;
QSsh::SshSettings::SearchPathRetriever searchPathRetriever = [] { return FileNameList(); };
FilePath sshFilePath;
FilePath sftpFilePath;
FilePath askpassFilePath;
FilePath keygenFilePath;
QSsh::SshSettings::SearchPathRetriever searchPathRetriever = [] { return FilePathList(); };
};
} // namespace Internal
@@ -79,11 +79,11 @@ void SshSettings::loadSettings(QSettings *settings)
value = settings->value(connectionSharingTimeoutKey());
if (value.isValid())
sshSettings->connectionSharingTimeOutInMinutes = value.toInt();
sshSettings->sshFilePath = FileName::fromString(settings->value(sshFilePathKey()).toString());
sshSettings->sftpFilePath = FileName::fromString(settings->value(sftpFilePathKey()).toString());
sshSettings->askpassFilePath = FileName::fromString(
sshSettings->sshFilePath = FilePath::fromString(settings->value(sshFilePathKey()).toString());
sshSettings->sftpFilePath = FilePath::fromString(settings->value(sftpFilePathKey()).toString());
sshSettings->askpassFilePath = FilePath::fromString(
settings->value(askPassFilePathKey()).toString());
sshSettings->keygenFilePath = FileName::fromString(
sshSettings->keygenFilePath = FilePath::fromString(
settings->value(keygenFilePathKey()).toString());
}
@@ -114,51 +114,51 @@ int SshSettings::connectionSharingTimeout()
return sshSettings->connectionSharingTimeOutInMinutes;
}
static FileName filePathValue(const FileName &value, const QStringList &candidateFileNames)
static FilePath filePathValue(const FilePath &value, const QStringList &candidateFileNames)
{
if (!value.isEmpty())
return value;
const QList<FileName> additionalSearchPaths = sshSettings->searchPathRetriever();
const QList<FilePath> additionalSearchPaths = sshSettings->searchPathRetriever();
for (const QString &candidate : candidateFileNames) {
const FileName filePath = Environment::systemEnvironment()
const FilePath filePath = Environment::systemEnvironment()
.searchInPath(candidate, additionalSearchPaths);
if (!filePath.isEmpty())
return filePath;
}
return FileName();
return FilePath();
}
static FileName filePathValue(const FileName &value, const QString &candidateFileName)
static FilePath filePathValue(const FilePath &value, const QString &candidateFileName)
{
return filePathValue(value, QStringList(candidateFileName));
}
void SshSettings::setSshFilePath(const FileName &ssh) { sshSettings->sshFilePath = ssh; }
FileName SshSettings::sshFilePath() { return filePathValue(sshSettings->sshFilePath, "ssh"); }
void SshSettings::setSshFilePath(const FilePath &ssh) { sshSettings->sshFilePath = ssh; }
FilePath SshSettings::sshFilePath() { return filePathValue(sshSettings->sshFilePath, "ssh"); }
void SshSettings::setSftpFilePath(const FileName &sftp) { sshSettings->sftpFilePath = sftp; }
FileName SshSettings::sftpFilePath() { return filePathValue(sshSettings->sftpFilePath, "sftp"); }
void SshSettings::setSftpFilePath(const FilePath &sftp) { sshSettings->sftpFilePath = sftp; }
FilePath SshSettings::sftpFilePath() { return filePathValue(sshSettings->sftpFilePath, "sftp"); }
void SshSettings::setAskpassFilePath(const FileName &askPass)
void SshSettings::setAskpassFilePath(const FilePath &askPass)
{
sshSettings->askpassFilePath = askPass;
}
FileName SshSettings::askpassFilePath()
FilePath SshSettings::askpassFilePath()
{
FileName candidate;
FilePath candidate;
candidate = sshSettings->askpassFilePath;
if (candidate.isEmpty())
candidate = FileName::fromString(Environment::systemEnvironment().value("SSH_ASKPASS"));
candidate = FilePath::fromString(Environment::systemEnvironment().value("SSH_ASKPASS"));
return filePathValue(candidate, QStringList{"qtc-askpass", "ssh-askpass"});
}
void SshSettings::setKeygenFilePath(const FileName &keygen)
void SshSettings::setKeygenFilePath(const FilePath &keygen)
{
sshSettings->keygenFilePath = keygen;
}
FileName SshSettings::keygenFilePath()
FilePath SshSettings::keygenFilePath()
{
return filePathValue(sshSettings->keygenFilePath, "ssh-keygen");
}

View File

@@ -49,19 +49,19 @@ public:
static void setConnectionSharingTimeout(int timeInMinutes);
static int connectionSharingTimeout();
static void setSshFilePath(const Utils::FileName &ssh);
static Utils::FileName sshFilePath();
static void setSshFilePath(const Utils::FilePath &ssh);
static Utils::FilePath sshFilePath();
static void setSftpFilePath(const Utils::FileName &sftp);
static Utils::FileName sftpFilePath();
static void setSftpFilePath(const Utils::FilePath &sftp);
static Utils::FilePath sftpFilePath();
static void setAskpassFilePath(const Utils::FileName &askPass);
static Utils::FileName askpassFilePath();
static void setAskpassFilePath(const Utils::FilePath &askPass);
static Utils::FilePath askpassFilePath();
static void setKeygenFilePath(const Utils::FileName &keygen);
static Utils::FileName keygenFilePath();
static void setKeygenFilePath(const Utils::FilePath &keygen);
static Utils::FilePath keygenFilePath();
using SearchPathRetriever = std::function<Utils::FileNameList()>;
using SearchPathRetriever = std::function<Utils::FilePathList()>;
static void setExtraSearchPathRetriever(const SearchPathRetriever &pathRetriever);
};

View File

@@ -73,17 +73,17 @@ static bool isQmake(const QString &path)
return !BuildableHelperLibrary::qtVersionForQMake(fi.absoluteFilePath()).isEmpty();
}
static FileName findQmakeInDir(const FileName &path)
static FilePath findQmakeInDir(const FilePath &path)
{
if (path.isEmpty())
return FileName();
return FilePath();
const QString qmake = "qmake";
QDir dir(path.toString());
if (dir.exists(qmake)) {
const QString qmakePath = dir.absoluteFilePath(qmake);
if (isQmake(qmakePath))
return FileName::fromString(qmakePath);
return FilePath::fromString(qmakePath);
}
// Prefer qmake-qt5 to qmake-qt4 by sorting the filenames in reverse order.
@@ -94,26 +94,26 @@ static FileName findQmakeInDir(const FileName &path)
if (fi.fileName() == qmake)
continue;
if (isQmake(fi.absoluteFilePath()))
return FileName::fromFileInfo(fi);
return FilePath::fromFileInfo(fi);
}
return FileName();
return FilePath();
}
FileName BuildableHelperLibrary::findSystemQt(const Environment &env)
FilePath BuildableHelperLibrary::findSystemQt(const Environment &env)
{
const FileNameList list = findQtsInEnvironment(env, 1);
return list.size() == 1 ? list.first() : FileName();
const FilePathList list = findQtsInEnvironment(env, 1);
return list.size() == 1 ? list.first() : FilePath();
}
FileNameList BuildableHelperLibrary::findQtsInEnvironment(const Environment &env, int maxCount)
FilePathList BuildableHelperLibrary::findQtsInEnvironment(const Environment &env, int maxCount)
{
FileNameList qmakeList;
FilePathList qmakeList;
std::set<QString> canonicalEnvPaths;
const FileNameList paths = env.path();
for (const FileName &path : paths) {
const FilePathList paths = env.path();
for (const FilePath &path : paths) {
if (!canonicalEnvPaths.insert(path.toFileInfo().canonicalFilePath()).second)
continue;
const FileName qmake = findQmakeInDir(path);
const FilePath qmake = findQmakeInDir(path);
if (qmake.isEmpty())
continue;
qmakeList << qmake;
@@ -189,7 +189,7 @@ bool BuildableHelperLibrary::copyFiles(const QString &sourcePath,
QString *errorMessage)
{
// try remove the directory
if (!FileUtils::removeRecursively(FileName::fromString(targetDirectory), errorMessage))
if (!FileUtils::removeRecursively(FilePath::fromString(targetDirectory), errorMessage))
return false;
if (!QDir().mkpath(targetDirectory)) {
*errorMessage = QCoreApplication::translate("ProjectExplorer::DebuggingHelperLibrary", "The target directory %1 could not be created.").arg(targetDirectory);
@@ -220,7 +220,7 @@ bool BuildableHelperLibrary::copyFiles(const QString &sourcePath,
// Helper: Run a build process with merged stdout/stderr
static inline bool runBuildProcessI(QProcess &proc,
const FileName &binary,
const FilePath &binary,
const QStringList &args,
int timeoutS,
bool ignoreNonNullExitCode,
@@ -261,7 +261,7 @@ static inline bool runBuildProcessI(QProcess &proc,
// Run a build process with merged stdout/stderr and qWarn about errors.
static bool runBuildProcess(QProcess &proc,
const FileName &binary,
const FilePath &binary,
const QStringList &args,
int timeoutS,
bool ignoreNonNullExitCode,
@@ -300,7 +300,7 @@ bool BuildableHelperLibrary::buildHelper(const BuildHelperArguments &arguments,
arguments.directory));
log->append(newline);
const FileName makeFullPath = arguments.environment.searchInPath(arguments.makeCommand);
const FilePath makeFullPath = arguments.environment.searchInPath(arguments.makeCommand);
if (QFileInfo::exists(arguments.directory + QLatin1String("/Makefile"))) {
if (makeFullPath.isEmpty()) {
*errorMessage = QCoreApplication::translate("ProjectExplorer::DebuggingHelperLibrary",

View File

@@ -37,8 +37,8 @@ class QTCREATOR_UTILS_EXPORT BuildableHelperLibrary
public:
// returns the full path to the first qmake, qmake-qt4, qmake4 that has
// at least version 2.0.0 and thus is a qt4 qmake
static FileName findSystemQt(const Environment &env);
static FileNameList findQtsInEnvironment(const Environment &env, int maxCount = -1);
static FilePath findSystemQt(const Environment &env);
static FilePathList findQtsInEnvironment(const Environment &env, int maxCount = -1);
static bool isQtChooser(const QFileInfo &info);
static QString qtChooserToQmakePath(const QString &path);
// return true if the qmake at qmakePath is a Qt (used by QtVersion)
@@ -61,9 +61,9 @@ public:
QString directory;
Environment environment;
FileName qmakeCommand;
FilePath qmakeCommand;
QString targetMode;
FileName mkspec;
FilePath mkspec;
QString proFilename;
QStringList qmakeArguments;

View File

@@ -392,14 +392,14 @@ void Environment::clear()
m_values.clear();
}
FileName Environment::searchInDirectory(const QStringList &execs, const FileName &directory,
QSet<FileName> &alreadyChecked) const
FilePath Environment::searchInDirectory(const QStringList &execs, const FilePath &directory,
QSet<FilePath> &alreadyChecked) const
{
const int checkedCount = alreadyChecked.count();
alreadyChecked.insert(directory);
if (directory.isEmpty() || alreadyChecked.count() == checkedCount)
return FileName();
return FilePath();
const QString dir = directory.toString();
@@ -407,9 +407,9 @@ FileName Environment::searchInDirectory(const QStringList &execs, const FileName
for (const QString &exec : execs) {
fi.setFile(dir, exec);
if (fi.isFile() && fi.isExecutable())
return FileName::fromString(fi.absoluteFilePath());
return FilePath::fromString(fi.absoluteFilePath());
}
return FileName();
return FilePath();
}
QStringList Environment::appendExeExtensions(const QString &executable) const
@@ -435,8 +435,8 @@ bool Environment::isSameExecutable(const QString &exe1, const QString &exe2) con
const QStringList exe2List = appendExeExtensions(exe2);
for (const QString &i1 : exe1List) {
for (const QString &i2 : exe2List) {
const FileName f1 = FileName::fromString(i1);
const FileName f2 = FileName::fromString(i2);
const FilePath f1 = FilePath::fromString(i1);
const FilePath f2 = FilePath::fromString(i2);
if (f1 == f2)
return true;
if (FileUtils::resolveSymlinks(f1) == FileUtils::resolveSymlinks(f2))
@@ -448,12 +448,12 @@ bool Environment::isSameExecutable(const QString &exe1, const QString &exe2) con
return false;
}
FileName Environment::searchInPath(const QString &executable,
const FileNameList &additionalDirs,
FilePath Environment::searchInPath(const QString &executable,
const FilePathList &additionalDirs,
const PathFilter &func) const
{
if (executable.isEmpty())
return FileName();
return FilePath();
const QString exec = QDir::cleanPath(expandVariables(executable));
const QFileInfo fi(exec);
@@ -464,34 +464,34 @@ FileName Environment::searchInPath(const QString &executable,
for (const QString &path : execs) {
QFileInfo pfi = QFileInfo(path);
if (pfi.isFile() && pfi.isExecutable())
return FileName::fromString(path);
return FilePath::fromString(path);
}
return FileName::fromString(exec);
return FilePath::fromString(exec);
}
QSet<FileName> alreadyChecked;
for (const FileName &dir : additionalDirs) {
FileName tmp = searchInDirectory(execs, dir, alreadyChecked);
QSet<FilePath> alreadyChecked;
for (const FilePath &dir : additionalDirs) {
FilePath tmp = searchInDirectory(execs, dir, alreadyChecked);
if (!tmp.isEmpty() && (!func || func(tmp)))
return tmp;
}
if (executable.contains('/'))
return FileName();
return FilePath();
for (const FileName &p : path()) {
FileName tmp = searchInDirectory(execs, p, alreadyChecked);
for (const FilePath &p : path()) {
FilePath tmp = searchInDirectory(execs, p, alreadyChecked);
if (!tmp.isEmpty() && (!func || func(tmp)))
return tmp;
}
return FileName();
return FilePath();
}
FileNameList Environment::path() const
FilePathList Environment::path() const
{
const QStringList pathComponents = value("PATH")
.split(OsSpecificAspects::pathListSeparator(m_osType), QString::SkipEmptyParts);
return Utils::transform(pathComponents, &FileName::fromUserInput);
return Utils::transform(pathComponents, &FilePath::fromUserInput);
}
QString Environment::value(const QString &key) const
@@ -690,9 +690,9 @@ QString Environment::expandVariables(const QString &input) const
return result;
}
FileName Environment::expandVariables(const FileName &variables) const
FilePath Environment::expandVariables(const FilePath &variables) const
{
return FileName::fromString(expandVariables(variables.toString()));
return FilePath::fromString(expandVariables(variables.toString()));
}
QStringList Environment::expandVariables(const QStringList &variables) const

View File

@@ -124,18 +124,18 @@ public:
Environment::const_iterator constEnd() const;
Environment::const_iterator constFind(const QString &name) const;
using PathFilter = std::function<bool(const FileName &)>;
FileName searchInPath(const QString &executable,
const FileNameList &additionalDirs = FileNameList(),
using PathFilter = std::function<bool(const FilePath &)>;
FilePath searchInPath(const QString &executable,
const FilePathList &additionalDirs = FilePathList(),
const PathFilter &func = PathFilter()) const;
FileNameList path() const;
FilePathList path() const;
QStringList appendExeExtensions(const QString &executable) const;
bool isSameExecutable(const QString &exe1, const QString &exe2) const;
QString expandVariables(const QString &input) const;
FileName expandVariables(const FileName &input) const;
FilePath expandVariables(const FilePath &input) const;
QStringList expandVariables(const QStringList &input) const;
bool operator!=(const Environment &other) const;
@@ -144,8 +144,8 @@ public:
static void modifySystemEnvironment(const QList<EnvironmentItem> &list); // use with care!!!
private:
FileName searchInDirectory(const QStringList &execs, const FileName &directory,
QSet<FileName> &alreadyChecked) const;
FilePath searchInDirectory(const QStringList &execs, const FilePath &directory,
QSet<FilePath> &alreadyChecked) const;
QMap<QString, QString> m_values;
OsType m_osType;
};

View File

@@ -38,22 +38,22 @@ FileCrumbLabel::FileCrumbLabel(QWidget *parent)
setTextFormat(Qt::RichText);
setWordWrap(true);
connect(this, &QLabel::linkActivated, this, [this](const QString &url) {
emit pathClicked(FileName::fromString(QUrl(url).toLocalFile()));
emit pathClicked(FilePath::fromString(QUrl(url).toLocalFile()));
});
setPath(FileName());
setPath(FilePath());
}
static QString linkForPath(const FileName &path, const QString &display)
static QString linkForPath(const FilePath &path, const QString &display)
{
return "<a href=\""
+ QUrl::fromLocalFile(path.toString()).toString(QUrl::FullyEncoded) + "\">"
+ display + "</a>";
}
void FileCrumbLabel::setPath(const FileName &path)
void FileCrumbLabel::setPath(const FilePath &path)
{
QStringList links;
FileName current = path;
FilePath current = path;
while (!current.isEmpty()) {
const QString fileName = current.fileName();
if (!fileName.isEmpty()) {

View File

@@ -38,10 +38,10 @@ class QTCREATOR_UTILS_EXPORT FileCrumbLabel : public QLabel
public:
FileCrumbLabel(QWidget *parent = nullptr);
void setPath(const FileName &path);
void setPath(const FilePath &path);
signals:
void pathClicked(const FileName &path);
void pathClicked(const FilePath &path);
};
} // Utils

View File

@@ -82,7 +82,7 @@ static bool checkPath(const QString &candidate, int matchLength,
FileInProjectFinder::FileInProjectFinder() = default;
FileInProjectFinder::~FileInProjectFinder() = default;
void FileInProjectFinder::setProjectDirectory(const FileName &absoluteProjectPath)
void FileInProjectFinder::setProjectDirectory(const FilePath &absoluteProjectPath)
{
if (absoluteProjectPath == m_projectDir)
return;
@@ -95,12 +95,12 @@ void FileInProjectFinder::setProjectDirectory(const FileName &absoluteProjectPat
m_cache.clear();
}
FileName FileInProjectFinder::projectDirectory() const
FilePath FileInProjectFinder::projectDirectory() const
{
return m_projectDir;
}
void FileInProjectFinder::setProjectFiles(const FileNameList &projectFiles)
void FileInProjectFinder::setProjectFiles(const FilePathList &projectFiles)
{
if (m_projectFiles == projectFiles)
return;
@@ -110,7 +110,7 @@ void FileInProjectFinder::setProjectFiles(const FileNameList &projectFiles)
m_qrcUrlFinder.setProjectFiles(projectFiles);
}
void FileInProjectFinder::setSysroot(const FileName &sysroot)
void FileInProjectFinder::setSysroot(const FilePath &sysroot)
{
if (m_sysroot == sysroot)
return;
@@ -119,7 +119,7 @@ void FileInProjectFinder::setSysroot(const FileName &sysroot)
m_cache.clear();
}
void FileInProjectFinder::addMappedPath(const FileName &localFilePath, const QString &remoteFilePath)
void FileInProjectFinder::addMappedPath(const FilePath &localFilePath, const QString &remoteFilePath)
{
const QStringList segments = remoteFilePath.split('/', QString::SkipEmptyParts);
@@ -142,12 +142,12 @@ void FileInProjectFinder::addMappedPath(const FileName &localFilePath, const QSt
folder specified. Third, we walk the list of project files, and search for a file name match
there. If all fails, it returns the original path from the file URL.
*/
FileNameList FileInProjectFinder::findFile(const QUrl &fileUrl, bool *success) const
FilePathList FileInProjectFinder::findFile(const QUrl &fileUrl, bool *success) const
{
qCDebug(finderLog) << "FileInProjectFinder: trying to find file" << fileUrl.toString() << "...";
if (fileUrl.scheme() == "qrc" || fileUrl.toString().startsWith(':')) {
const FileNameList result = m_qrcUrlFinder.find(fileUrl);
const FilePathList result = m_qrcUrlFinder.find(fileUrl);
if (!result.isEmpty()) {
if (success)
*success = true;
@@ -159,12 +159,12 @@ FileNameList FileInProjectFinder::findFile(const QUrl &fileUrl, bool *success) c
if (originalPath.isEmpty()) // e.g. qrc://
originalPath = fileUrl.path();
FileNameList result;
FilePathList result;
bool found = findFileOrDirectory(originalPath, [&](const QString &fileName, int) {
result << FileName::fromString(fileName);
result << FilePath::fromString(fileName);
});
if (!found)
result << FileName::fromString(originalPath);
result << FilePath::fromString(originalPath);
if (success)
*success = found;
@@ -291,7 +291,7 @@ bool FileInProjectFinder::findFileOrDirectory(const QString &originalPath, FileH
qCDebug(finderLog) << "FileInProjectFinder: checking project files ...";
QStringList matches;
const QString lastSegment = FileName::fromString(originalPath).fileName();
const QString lastSegment = FilePath::fromString(originalPath).fileName();
if (fileHandler)
matches.append(filesWithSameFileName(lastSegment));
if (directoryHandler)
@@ -318,7 +318,7 @@ bool FileInProjectFinder::findFileOrDirectory(const QString &originalPath, FileH
// check if absolute path is found in sysroot
if (!m_sysroot.isEmpty()) {
const FileName sysrootPath = m_sysroot.pathAppended(originalPath);
const FilePath sysrootPath = m_sysroot.pathAppended(originalPath);
if (checkPath(sysrootPath.toString(), origLength, fileHandler, directoryHandler)) {
return handleSuccess(originalPath, QStringList(sysrootPath.toString()), origLength,
"in sysroot");
@@ -333,7 +333,7 @@ bool FileInProjectFinder::findFileOrDirectory(const QString &originalPath, FileH
FileInProjectFinder::CacheEntry FileInProjectFinder::findInSearchPaths(
const QString &filePath, FileHandler fileHandler, DirectoryHandler directoryHandler) const
{
for (const FileName &dirPath : m_searchDirectories) {
for (const FilePath &dirPath : m_searchDirectories) {
const CacheEntry found = findInSearchPath(dirPath.toString(), filePath,
fileHandler, directoryHandler);
if (!found.paths.isEmpty())
@@ -386,7 +386,7 @@ FileInProjectFinder::CacheEntry FileInProjectFinder::findInSearchPath(
QStringList FileInProjectFinder::filesWithSameFileName(const QString &fileName) const
{
QStringList result;
foreach (const FileName &f, m_projectFiles) {
foreach (const FilePath &f, m_projectFiles) {
if (f.fileName() == fileName)
result << f.toString();
}
@@ -396,8 +396,8 @@ QStringList FileInProjectFinder::filesWithSameFileName(const QString &fileName)
QStringList FileInProjectFinder::pathSegmentsWithSameName(const QString &pathSegment) const
{
QStringList result;
for (const FileName &f : m_projectFiles) {
FileName currentPath = f.parentDir();
for (const FilePath &f : m_projectFiles) {
FilePath currentPath = f.parentDir();
do {
if (currentPath.fileName() == pathSegment) {
if (result.isEmpty() || result.last() != currentPath.toString())
@@ -446,12 +446,12 @@ QStringList FileInProjectFinder::bestMatches(const QStringList &filePaths,
return bestFilePaths;
}
FileNameList FileInProjectFinder::searchDirectories() const
FilePathList FileInProjectFinder::searchDirectories() const
{
return m_searchDirectories;
}
void FileInProjectFinder::setAdditionalSearchDirectories(const FileNameList &searchDirectories)
void FileInProjectFinder::setAdditionalSearchDirectories(const FilePathList &searchDirectories)
{
m_searchDirectories = searchDirectories;
}
@@ -461,13 +461,13 @@ FileInProjectFinder::PathMappingNode::~PathMappingNode()
qDeleteAll(children);
}
FileNameList FileInProjectFinder::QrcUrlFinder::find(const QUrl &fileUrl) const
FilePathList FileInProjectFinder::QrcUrlFinder::find(const QUrl &fileUrl) const
{
const auto fileIt = m_fileCache.constFind(fileUrl);
if (fileIt != m_fileCache.cend())
return fileIt.value();
QStringList hits;
for (const FileName &f : m_allQrcFiles) {
for (const FilePath &f : m_allQrcFiles) {
QrcParser::Ptr &qrcParser = m_parserCache[f];
if (!qrcParser)
qrcParser = QrcParser::parseQrcFile(f.toString(), QString());
@@ -476,28 +476,28 @@ FileNameList FileInProjectFinder::QrcUrlFinder::find(const QUrl &fileUrl) const
qrcParser->collectFilesAtPath(QrcParser::normalizedQrcFilePath(fileUrl.toString()), &hits);
}
hits.removeDuplicates();
const FileNameList result = transform(hits, &FileName::fromString);
const FilePathList result = transform(hits, &FilePath::fromString);
m_fileCache.insert(fileUrl, result);
return result;
}
void FileInProjectFinder::QrcUrlFinder::setProjectFiles(const FileNameList &projectFiles)
void FileInProjectFinder::QrcUrlFinder::setProjectFiles(const FilePathList &projectFiles)
{
m_allQrcFiles = filtered(projectFiles, [](const FileName &f) { return f.endsWith(".qrc"); });
m_allQrcFiles = filtered(projectFiles, [](const FilePath &f) { return f.endsWith(".qrc"); });
m_fileCache.clear();
m_parserCache.clear();
}
FileName chooseFileFromList(const FileNameList &candidates)
FilePath chooseFileFromList(const FilePathList &candidates)
{
if (candidates.length() == 1)
return candidates.first();
QMenu filesMenu;
for (const FileName &candidate : candidates)
for (const FilePath &candidate : candidates)
filesMenu.addAction(candidate.toUserOutput());
if (const QAction * const action = filesMenu.exec(QCursor::pos()))
return FileName::fromUserInput(action->text());
return FileName();
return FilePath::fromUserInput(action->text());
return FilePath();
}
} // namespace Utils

View File

@@ -47,26 +47,26 @@ public:
FileInProjectFinder();
~FileInProjectFinder();
void setProjectDirectory(const FileName &absoluteProjectPath);
FileName projectDirectory() const;
void setProjectDirectory(const FilePath &absoluteProjectPath);
FilePath projectDirectory() const;
void setProjectFiles(const FileNameList &projectFiles);
void setSysroot(const FileName &sysroot);
void setProjectFiles(const FilePathList &projectFiles);
void setSysroot(const FilePath &sysroot);
void addMappedPath(const FileName &localFilePath, const QString &remoteFilePath);
void addMappedPath(const FilePath &localFilePath, const QString &remoteFilePath);
FileNameList findFile(const QUrl &fileUrl, bool *success = nullptr) const;
FilePathList findFile(const QUrl &fileUrl, bool *success = nullptr) const;
bool findFileOrDirectory(const QString &originalPath, FileHandler fileHandler = nullptr,
DirectoryHandler directoryHandler = nullptr) const;
FileNameList searchDirectories() const;
void setAdditionalSearchDirectories(const FileNameList &searchDirectories);
FilePathList searchDirectories() const;
void setAdditionalSearchDirectories(const FilePathList &searchDirectories);
private:
struct PathMappingNode
{
~PathMappingNode();
FileName localPath;
FilePath localPath;
QHash<QString, PathMappingNode *> children;
};
@@ -77,12 +77,12 @@ private:
class QrcUrlFinder {
public:
FileNameList find(const QUrl &fileUrl) const;
void setProjectFiles(const FileNameList &projectFiles);
FilePathList find(const QUrl &fileUrl) const;
void setProjectFiles(const FilePathList &projectFiles);
private:
FileNameList m_allQrcFiles;
mutable QHash<QUrl, FileNameList> m_fileCache;
mutable QHash<FileName, QSharedPointer<QrcParser>> m_parserCache;
FilePathList m_allQrcFiles;
mutable QHash<QUrl, FilePathList> m_fileCache;
mutable QHash<FilePath, QSharedPointer<QrcParser>> m_parserCache;
};
CacheEntry findInSearchPaths(const QString &filePath, FileHandler fileHandler,
@@ -98,16 +98,16 @@ private:
static int commonPostFixLength(const QString &candidatePath, const QString &filePathToFind);
static QStringList bestMatches(const QStringList &filePaths, const QString &filePathToFind);
FileName m_projectDir;
FileName m_sysroot;
FileNameList m_projectFiles;
FileNameList m_searchDirectories;
FilePath m_projectDir;
FilePath m_sysroot;
FilePathList m_projectFiles;
FilePathList m_searchDirectories;
PathMappingNode m_pathMapRoot;
mutable QHash<QString, CacheEntry> m_cache;
QrcUrlFinder m_qrcUrlFinder;
};
QTCREATOR_UTILS_EXPORT FileName chooseFileFromList(const FileNameList &candidates);
QTCREATOR_UTILS_EXPORT FilePath chooseFileFromList(const FilePathList &candidates);
} // namespace Utils

View File

@@ -482,7 +482,7 @@ static bool matches(const QList<QRegExp> &exprList, const QString &filePath)
{
return Utils::anyOf(exprList, [&filePath](QRegExp reg) {
return (reg.exactMatch(filePath)
|| reg.exactMatch(FileName::fromString(filePath).fileName()));
|| reg.exactMatch(FilePath::fromString(filePath).fileName()));
});
}

View File

@@ -57,7 +57,7 @@
#endif
QT_BEGIN_NAMESPACE
QDebug operator<<(QDebug dbg, const Utils::FileName &c)
QDebug operator<<(QDebug dbg, const Utils::FilePath &c)
{
return dbg << c.toString();
}
@@ -80,7 +80,7 @@ namespace Utils {
Returns whether the operation succeeded.
*/
bool FileUtils::removeRecursively(const FileName &filePath, QString *error)
bool FileUtils::removeRecursively(const FilePath &filePath, QString *error)
{
QFileInfo fileInfo = filePath.toFileInfo();
if (!fileInfo.exists() && !fileInfo.isSymLink())
@@ -146,7 +146,7 @@ bool FileUtils::removeRecursively(const FileName &filePath, QString *error)
Returns whether the operation succeeded.
*/
bool FileUtils::copyRecursively(const FileName &srcFilePath, const FileName &tgtFilePath,
bool FileUtils::copyRecursively(const FilePath &srcFilePath, const FilePath &tgtFilePath,
QString *error, const std::function<bool (QFileInfo, QFileInfo, QString *)> &copyHelper)
{
QFileInfo srcFileInfo = srcFilePath.toFileInfo();
@@ -166,8 +166,8 @@ bool FileUtils::copyRecursively(const FileName &srcFilePath, const FileName &tgt
QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot
| QDir::Hidden | QDir::System);
foreach (const QString &fileName, fileNames) {
const FileName newSrcFilePath = srcFilePath.pathAppended(fileName);
const FileName newTgtFilePath = tgtFilePath.pathAppended(fileName);
const FilePath newSrcFilePath = srcFilePath.pathAppended(fileName);
const FilePath newTgtFilePath = tgtFilePath.pathAppended(fileName);
if (!copyRecursively(newSrcFilePath, newTgtFilePath, error, copyHelper))
return false;
}
@@ -196,7 +196,7 @@ bool FileUtils::copyRecursively(const FileName &srcFilePath, const FileName &tgt
Returns whether at least one file in \a filePath has a newer date than
\a timeStamp.
*/
bool FileName::isNewerThan(const QDateTime &timeStamp) const
bool FilePath::isNewerThan(const QDateTime &timeStamp) const
{
const QFileInfo fileInfo = toFileInfo();
if (!fileInfo.exists() || fileInfo.lastModified() >= timeStamp)
@@ -222,15 +222,15 @@ bool FileName::isNewerThan(const QDateTime &timeStamp) const
Returns the symlink target file path.
*/
FileName FileUtils::resolveSymlinks(const FileName &path)
FilePath FileUtils::resolveSymlinks(const FilePath &path)
{
QFileInfo f = path.toFileInfo();
int links = 16;
while (links-- && f.isSymLink())
f.setFile(f.dir(), f.symLinkTarget());
if (links <= 0)
return FileName();
return FileName::fromString(f.filePath());
return FilePath();
return FilePath::fromString(f.filePath());
}
/*!
@@ -240,12 +240,12 @@ FileName FileUtils::resolveSymlinks(const FileName &path)
Returns the canonical path.
*/
FileName FileName::canonicalPath() const
FilePath FilePath::canonicalPath() const
{
const QString result = toFileInfo().canonicalFilePath();
if (result.isEmpty())
return *this;
return FileName::fromString(result);
return FilePath::fromString(result);
}
/*!
@@ -254,10 +254,10 @@ FileName FileName::canonicalPath() const
Returns the possibly shortened path with native separators.
*/
QString FileName::shortNativePath() const
QString FilePath::shortNativePath() const
{
if (HostOsInfo::isAnyUnixHost()) {
const FileName home = FileName::fromString(QDir::cleanPath(QDir::homePath()));
const FilePath home = FilePath::fromString(QDir::cleanPath(QDir::homePath()));
if (isChildOf(home)) {
return QLatin1Char('~') + QDir::separator()
+ QDir::toNativeSeparators(relativeChildPath(home).toString());
@@ -297,7 +297,7 @@ QString FileUtils::qmakeFriendlyName(const QString &name)
return fileSystemFriendlyName(result);
}
bool FileUtils::makeWritable(const FileName &path)
bool FileUtils::makeWritable(const FilePath &path)
{
const QString fileName = path.toString();
return QFile::setPermissions(fileName, QFile::permissions(fileName) | QFile::WriteUser);
@@ -351,9 +351,9 @@ QString FileUtils::resolvePath(const QString &baseDir, const QString &fileName)
return QDir::cleanPath(baseDir + QLatin1Char('/') + fileName);
}
FileName FileUtils::commonPath(const FileName &oldCommonPath, const FileName &fileName)
FilePath FileUtils::commonPath(const FilePath &oldCommonPath, const FilePath &fileName)
{
FileName newCommonPath = oldCommonPath;
FilePath newCommonPath = oldCommonPath;
while (!newCommonPath.isEmpty() && !fileName.isChildOf(newCommonPath))
newCommonPath = newCommonPath.parentDir();
return newCommonPath.canonicalPath();
@@ -400,7 +400,7 @@ static QByteArray fileIdWin(HANDLE fHandle)
}
#endif
QByteArray FileUtils::fileId(const FileName &fileName)
QByteArray FileUtils::fileId(const FilePath &fileName)
{
QByteArray result;
@@ -632,51 +632,51 @@ TempFileSaver::~TempFileSaver()
On windows filenames are compared case insensitively.
*/
FileName::FileName()
FilePath::FilePath()
{
}
/// Constructs a FileName from \a info
FileName FileName::fromFileInfo(const QFileInfo &info)
FilePath FilePath::fromFileInfo(const QFileInfo &info)
{
return FileName::fromString(info.absoluteFilePath());
return FilePath::fromString(info.absoluteFilePath());
}
/// \returns a QFileInfo
QFileInfo FileName::toFileInfo() const
QFileInfo FilePath::toFileInfo() const
{
return QFileInfo(m_data);
}
FileName FileName::fromUrl(const QUrl &url)
FilePath FilePath::fromUrl(const QUrl &url)
{
FileName fn;
FilePath fn;
fn.m_url = url;
fn.m_data = url.path();
return fn;
}
/// \returns a QString for passing on to QString based APIs
const QString &FileName::toString() const
const QString &FilePath::toString() const
{
return m_data;
}
QUrl FileName::toUrl() const
QUrl FilePath::toUrl() const
{
return m_url;
}
/// \returns a QString to display to the user
/// Converts the separators to the native format
QString FileName::toUserOutput() const
QString FilePath::toUserOutput() const
{
if (m_url.isEmpty())
return QDir::toNativeSeparators(toString());
return m_url.toString();
}
QString FileName::fileName(int pathComponents) const
QString FilePath::fileName(int pathComponents) const
{
if (pathComponents < 0)
return m_data;
@@ -703,7 +703,7 @@ QString FileName::fileName(int pathComponents) const
/// \returns a bool indicating whether a file with this
/// FileName exists.
bool FileName::exists() const
bool FilePath::exists() const
{
return !isEmpty() && QFileInfo::exists(m_data);
}
@@ -714,28 +714,28 @@ bool FileName::exists() const
/// a root level directory.
/// \returns \a FileName with the last segment removed.
FileName FileName::parentDir() const
FilePath FilePath::parentDir() const
{
const QString basePath = toString();
if (basePath.isEmpty())
return FileName();
return FilePath();
const QDir base(basePath);
if (base.isRoot())
return FileName();
return FilePath();
const QString path = basePath + QLatin1String("/..");
const QString parent = QDir::cleanPath(path);
QTC_ASSERT(parent != path, return FileName());
QTC_ASSERT(parent != path, return FilePath());
return FileName::fromString(parent);
return FilePath::fromString(parent);
}
/// Constructs a FileName from \a filename
/// \a filename is not checked for validity.
FileName FileName::fromString(const QString &filename)
FilePath FilePath::fromString(const QString &filename)
{
FileName fn;
FilePath fn;
fn.m_data = filename;
return fn;
}
@@ -743,13 +743,13 @@ FileName FileName::fromString(const QString &filename)
/// Constructs a FileName from \a fileName. The \a defaultExtension is appended
/// to \a filename if that does not have an extension already.
/// \a fileName is not checked for validity.
FileName FileName::fromStringWithExtension(const QString &filename, const QString &defaultExtension)
FilePath FilePath::fromStringWithExtension(const QString &filepath, const QString &defaultExtension)
{
if (filename.isEmpty() || defaultExtension.isEmpty())
return FileName::fromString(filename);
if (filepath.isEmpty() || defaultExtension.isEmpty())
return FilePath::fromString(filepath);
QString rc = filename;
QFileInfo fi(filename);
QString rc = filepath;
QFileInfo fi(filepath);
// Add extension unless user specified something else
const QChar dot = QLatin1Char('.');
if (!fi.fileName().contains(dot)) {
@@ -757,88 +757,88 @@ FileName FileName::fromStringWithExtension(const QString &filename, const QStrin
rc += dot;
rc += defaultExtension;
}
return FileName::fromString(rc);
return FilePath::fromString(rc);
}
/// Constructs a FileName from \a fileName
/// \a fileName is not checked for validity.
FileName FileName::fromLatin1(const QByteArray &filename)
FilePath FilePath::fromLatin1(const QByteArray &filename)
{
return FileName::fromString(QString::fromLatin1(filename));
return FilePath::fromString(QString::fromLatin1(filename));
}
/// Constructs a FileName from \a fileName
/// \a fileName is only passed through QDir::cleanPath
FileName FileName::fromUserInput(const QString &filename)
FilePath FilePath::fromUserInput(const QString &filename)
{
QString clean = QDir::cleanPath(filename);
if (clean.startsWith(QLatin1String("~/")))
clean = QDir::homePath() + clean.mid(1);
return FileName::fromString(clean);
return FilePath::fromString(clean);
}
/// Constructs a FileName from \a fileName, which is encoded as UTF-8.
/// \a fileName is not checked for validity.
FileName FileName::fromUtf8(const char *filename, int filenameSize)
FilePath FilePath::fromUtf8(const char *filename, int filenameSize)
{
return FileName::fromString(QString::fromUtf8(filename, filenameSize));
return FilePath::fromString(QString::fromUtf8(filename, filenameSize));
}
FileName FileName::fromVariant(const QVariant &variant)
FilePath FilePath::fromVariant(const QVariant &variant)
{
if (variant.type() == QVariant::Url)
return FileName::fromUrl(variant.toUrl());
return FileName::fromString(variant.toString());
return FilePath::fromUrl(variant.toUrl());
return FilePath::fromString(variant.toString());
}
QVariant FileName::toVariant() const
QVariant FilePath::toVariant() const
{
if (!m_url.isEmpty())
return m_url;
return m_data;
}
bool FileName::operator==(const FileName &other) const
bool FilePath::operator==(const FilePath &other) const
{
if (!m_url.isEmpty())
return m_url == other.m_url;
return QString::compare(m_data, other.m_data, HostOsInfo::fileNameCaseSensitivity()) == 0;
}
bool FileName::operator!=(const FileName &other) const
bool FilePath::operator!=(const FilePath &other) const
{
return !(*this == other);
}
bool FileName::operator<(const FileName &other) const
bool FilePath::operator<(const FilePath &other) const
{
if (!m_url.isEmpty())
return m_url < other.m_url;
return QString::compare(m_data, other.m_data, HostOsInfo::fileNameCaseSensitivity()) < 0;
}
bool FileName::operator<=(const FileName &other) const
bool FilePath::operator<=(const FilePath &other) const
{
return !(other < *this);
}
bool FileName::operator>(const FileName &other) const
bool FilePath::operator>(const FilePath &other) const
{
return other < *this;
}
bool FileName::operator>=(const FileName &other) const
bool FilePath::operator>=(const FilePath &other) const
{
return !(*this < other);
}
FileName FileName::operator+(const QString &s) const
FilePath FilePath::operator+(const QString &s) const
{
return FileName::fromString(m_data + s);
return FilePath::fromString(m_data + s);
}
/// \returns whether FileName is a child of \a s
bool FileName::isChildOf(const FileName &s) const
bool FilePath::isChildOf(const FilePath &s) const
{
if (s.isEmpty())
return false;
@@ -854,18 +854,18 @@ bool FileName::isChildOf(const FileName &s) const
}
/// \overload
bool FileName::isChildOf(const QDir &dir) const
bool FilePath::isChildOf(const QDir &dir) const
{
return isChildOf(FileName::fromString(dir.absolutePath()));
return isChildOf(FilePath::fromString(dir.absolutePath()));
}
/// \returns whether FileName endsWith \a s
bool FileName::endsWith(const QString &s) const
bool FilePath::endsWith(const QString &s) const
{
return m_data.endsWith(s, HostOsInfo::fileNameCaseSensitivity());
}
bool FileName::isLocal() const
bool FilePath::isLocal() const
{
return m_url.isEmpty() || m_url.isLocalFile();
}
@@ -873,16 +873,16 @@ bool FileName::isLocal() const
/// \returns the relativeChildPath of FileName to parent if FileName is a child of parent
/// \note returns a empty FileName if FileName is not a child of parent
/// That is, this never returns a path starting with "../"
FileName FileName::relativeChildPath(const FileName &parent) const
FilePath FilePath::relativeChildPath(const FilePath &parent) const
{
if (!isChildOf(parent))
return FileName();
return FileName::fromString(m_data.mid(parent.m_data.size() + 1, -1));
return FilePath();
return FilePath::fromString(m_data.mid(parent.m_data.size() + 1, -1));
}
FileName FileName::pathAppended(const QString &str) const
FilePath FilePath::pathAppended(const QString &str) const
{
FileName fn = *this;
FilePath fn = *this;
if (str.isEmpty())
return fn;
if (!isEmpty() && !m_data.endsWith(QLatin1Char('/')))
@@ -891,21 +891,21 @@ FileName FileName::pathAppended(const QString &str) const
return fn;
}
FileName FileName::stringAppended(const QString &str) const
FilePath FilePath::stringAppended(const QString &str) const
{
FileName fn = *this;
FilePath fn = *this;
fn.m_data.append(str);
return fn;
}
uint FileName::hash(uint seed) const
uint FilePath::hash(uint seed) const
{
if (Utils::HostOsInfo::fileNameCaseSensitivity() == Qt::CaseInsensitive)
return qHash(m_data.toUpper(), seed);
return qHash(m_data, seed);
}
QTextStream &operator<<(QTextStream &s, const FileName &fn)
QTextStream &operator<<(QTextStream &s, const FilePath &fn)
{
return s << fn.toString();
}

View File

@@ -38,7 +38,7 @@
#include <functional>
#include <memory>
namespace Utils {class FileName; }
namespace Utils { class FilePath; }
QT_BEGIN_NAMESPACE
class QDataStream;
@@ -50,7 +50,7 @@ class QTemporaryFile;
class QTextStream;
class QWidget;
QTCREATOR_UTILS_EXPORT QDebug operator<<(QDebug dbg, const Utils::FileName &c);
QTCREATOR_UTILS_EXPORT QDebug operator<<(QDebug dbg, const Utils::FilePath &c);
// for withNtfsPermissions
#ifdef Q_OS_WIN
@@ -61,18 +61,18 @@ QT_END_NAMESPACE
namespace Utils {
class QTCREATOR_UTILS_EXPORT FileName
class QTCREATOR_UTILS_EXPORT FilePath
{
public:
FileName();
FilePath();
static FileName fromString(const QString &filename);
static FileName fromFileInfo(const QFileInfo &info);
static FileName fromStringWithExtension(const QString &filename, const QString &defaultExtension);
static FileName fromLatin1(const QByteArray &filename);
static FileName fromUserInput(const QString &filename);
static FileName fromUtf8(const char *filename, int filenameSize = -1);
static FileName fromVariant(const QVariant &variant);
static FilePath fromString(const QString &filepath);
static FilePath fromFileInfo(const QFileInfo &info);
static FilePath fromStringWithExtension(const QString &filepath, const QString &defaultExtension);
static FilePath fromLatin1(const QByteArray &filepath);
static FilePath fromUserInput(const QString &filepath);
static FilePath fromUtf8(const char *filepath, int filepathSize = -1);
static FilePath fromVariant(const QVariant &variant);
const QString &toString() const;
QFileInfo toFileInfo() const;
@@ -84,37 +84,37 @@ public:
QString fileName(int pathComponents = 0) const;
bool exists() const;
FileName parentDir() const;
FilePath parentDir() const;
bool operator==(const FileName &other) const;
bool operator!=(const FileName &other) const;
bool operator<(const FileName &other) const;
bool operator<=(const FileName &other) const;
bool operator>(const FileName &other) const;
bool operator>=(const FileName &other) const;
FileName operator+(const QString &s) const;
bool operator==(const FilePath &other) const;
bool operator!=(const FilePath &other) const;
bool operator<(const FilePath &other) const;
bool operator<=(const FilePath &other) const;
bool operator>(const FilePath &other) const;
bool operator>=(const FilePath &other) const;
FilePath operator+(const QString &s) const;
bool isChildOf(const FileName &s) const;
bool isChildOf(const FilePath &s) const;
bool isChildOf(const QDir &dir) const;
bool endsWith(const QString &s) const;
bool isLocal() const;
bool isNewerThan(const QDateTime &timeStamp) const;
FileName relativeChildPath(const FileName &parent) const;
FileName pathAppended(const QString &str) const;
FileName stringAppended(const QString &str) const;
FilePath relativeChildPath(const FilePath &parent) const;
FilePath pathAppended(const QString &str) const;
FilePath stringAppended(const QString &str) const;
FileName canonicalPath() const;
FilePath canonicalPath() const;
void clear() { m_data.clear(); }
bool isEmpty() const { return m_data.isEmpty(); }
uint hash(uint seed) const;
// NOTE: FileName operations on FileName created from URL currenly
// NOTE: FileName operations on FilePath created from URL currenly
// do not work except for .toVariant() and .toUrl().
static FileName fromUrl(const QUrl &url);
static FilePath fromUrl(const QUrl &url);
QUrl toUrl() const;
private:
@@ -122,28 +122,31 @@ private:
QUrl m_url;
};
QTCREATOR_UTILS_EXPORT QTextStream &operator<<(QTextStream &s, const FileName &fn);
QTCREATOR_UTILS_EXPORT QTextStream &operator<<(QTextStream &s, const FilePath &fn);
using FileNameList = QList<FileName>;
using FilePathList = QList<FilePath>;
using FileName = FilePath;
using FileNameList = FilePathList;
class QTCREATOR_UTILS_EXPORT FileUtils {
public:
static bool removeRecursively(const FileName &filePath, QString *error = nullptr);
static bool removeRecursively(const FilePath &filePath, QString *error = nullptr);
static bool copyRecursively(
const FileName &srcFilePath, const FileName &tgtFilePath, QString *error = nullptr,
const FilePath &srcFilePath, const FilePath &tgtFilePath, QString *error = nullptr,
const std::function<bool (QFileInfo, QFileInfo, QString *)> &copyHelper = nullptr);
static FileName resolveSymlinks(const FileName &path);
static FilePath resolveSymlinks(const FilePath &path);
static QString fileSystemFriendlyName(const QString &name);
static int indexOfQmakeUnfriendly(const QString &name, int startpos = 0);
static QString qmakeFriendlyName(const QString &name);
static bool makeWritable(const FileName &path);
static bool makeWritable(const FilePath &path);
static QString normalizePathName(const QString &name);
static bool isRelativePath(const QString &fileName);
static bool isAbsolutePath(const QString &fileName) { return !isRelativePath(fileName); }
static QString resolvePath(const QString &baseDir, const QString &fileName);
static FileName commonPath(const FileName &oldCommonPath, const FileName &fileName);
static QByteArray fileId(const FileName &fileName);
static FilePath commonPath(const FilePath &oldCommonPath, const FilePath &fileName);
static QByteArray fileId(const FilePath &fileName);
};
// for actually finding out if e.g. directories are writable on Windows
@@ -254,14 +257,14 @@ private:
bool m_autoRemove = true;
};
inline uint qHash(const Utils::FileName &a, uint seed = 0) { return a.hash(seed); }
inline uint qHash(const Utils::FilePath &a, uint seed = 0) { return a.hash(seed); }
} // namespace Utils
namespace std {
template<> struct hash<Utils::FileName>
template<> struct hash<Utils::FilePath>
{
using argument_type = Utils::FileName;
using argument_type = Utils::FilePath;
using result_type = size_t;
result_type operator()(const argument_type &fn) const
{
@@ -272,4 +275,4 @@ template<> struct hash<Utils::FileName>
};
} // namespace std
Q_DECLARE_METATYPE(Utils::FileName)
Q_DECLARE_METATYPE(Utils::FilePath)

View File

@@ -290,9 +290,9 @@ QString MacroExpander::expand(const QString &stringWithVariables) const
return res;
}
FileName MacroExpander::expand(const FileName &fileNameWithVariables) const
FilePath MacroExpander::expand(const FilePath &fileNameWithVariables) const
{
return FileName::fromString(expand(fileNameWithVariables.toString()));
return FilePath::fromString(expand(fileNameWithVariables.toString()));
}
QByteArray MacroExpander::expand(const QByteArray &stringWithVariables) const
@@ -422,7 +422,7 @@ void MacroExpander::registerFileVariables(const QByteArray &prefix,
registerVariable(prefix + kFileNamePostfix,
tr("%1: File name without path.").arg(heading),
[base]() -> QString { QString tmp = base(); return tmp.isEmpty() ? QString() : FileName::fromString(tmp).fileName(); },
[base]() -> QString { QString tmp = base(); return tmp.isEmpty() ? QString() : FilePath::fromString(tmp).fileName(); },
visibleInChooser);
registerVariable(prefix + kFileBaseNamePostfix,

View File

@@ -37,7 +37,7 @@ namespace Utils {
namespace Internal { class MacroExpanderPrivate; }
class FileName;
class FilePath;
class MacroExpander;
using MacroExpanderProvider = std::function<MacroExpander *()>;
using MacroExpanderProviders = QVector<MacroExpanderProvider>;
@@ -56,7 +56,7 @@ public:
QString value(const QByteArray &variable, bool *found = nullptr) const;
QString expand(const QString &stringWithVariables) const;
FileName expand(const FileName &fileNameWithVariables) const;
FilePath expand(const FilePath &fileNameWithVariables) const;
QByteArray expand(const QByteArray &stringWithVariables) const;
QVariant expandVariant(const QVariant &v) const;

View File

@@ -193,14 +193,14 @@ QString PathChooserPrivate::expandedPath(const QString &input) const
if (m_macroExpander)
expandedInput = m_macroExpander->expand(expandedInput);
const QString path = FileName::fromUserInput(expandedInput).toString();
const QString path = FilePath::fromUserInput(expandedInput).toString();
if (path.isEmpty())
return path;
switch (m_acceptingKind) {
case PathChooser::Command:
case PathChooser::ExistingCommand: {
const FileName expanded = m_environment.searchInPath(path, {FileName::fromString(m_baseDirectory)});
const FilePath expanded = m_environment.searchInPath(path, {FilePath::fromString(m_baseDirectory)});
return expanded.isEmpty() ? path : expanded.toString();
}
case PathChooser::Any:
@@ -293,12 +293,12 @@ void PathChooser::setBaseDirectory(const QString &directory)
triggerChanged();
}
FileName PathChooser::baseFileName() const
FilePath PathChooser::baseFileName() const
{
return FileName::fromString(d->m_baseDirectory);
return FilePath::fromString(d->m_baseDirectory);
}
void PathChooser::setBaseFileName(const FileName &base)
void PathChooser::setBaseFileName(const FilePath &base)
{
setBaseDirectory(base.toString());
}
@@ -323,14 +323,14 @@ QString PathChooser::path() const
return fileName().toString();
}
FileName PathChooser::rawFileName() const
FilePath PathChooser::rawFileName() const
{
return FileName::fromString(QDir::fromNativeSeparators(d->m_lineEdit->text()));
return FilePath::fromString(QDir::fromNativeSeparators(d->m_lineEdit->text()));
}
FileName PathChooser::fileName() const
FilePath PathChooser::fileName() const
{
return FileName::fromUserInput(d->expandedPath(rawFileName().toString()));
return FilePath::fromUserInput(d->expandedPath(rawFileName().toString()));
}
// FIXME: try to remove again
@@ -352,7 +352,7 @@ void PathChooser::setPath(const QString &path)
d->m_lineEdit->setTextKeepingActiveCursor(QDir::toNativeSeparators(path));
}
void PathChooser::setFileName(const FileName &fn)
void PathChooser::setFileName(const FilePath &fn)
{
d->m_lineEdit->setTextKeepingActiveCursor(fn.toUserOutput());
}

View File

@@ -55,8 +55,8 @@ class QTCREATOR_UTILS_EXPORT PathChooser : public QWidget
Q_PROPERTY(QStringList commandVersionArguments READ commandVersionArguments WRITE setCommandVersionArguments)
Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly DESIGNABLE true)
// Designer does not know this type, so force designable to false:
Q_PROPERTY(Utils::FileName fileName READ fileName WRITE setFileName DESIGNABLE false)
Q_PROPERTY(Utils::FileName baseFileName READ baseFileName WRITE setBaseFileName DESIGNABLE false)
Q_PROPERTY(Utils::FilePath fileName READ fileName WRITE setFileName DESIGNABLE false)
Q_PROPERTY(Utils::FilePath baseFileName READ baseFileName WRITE setBaseFileName DESIGNABLE false)
Q_PROPERTY(QColor errorColor READ errorColor WRITE setErrorColor DESIGNABLE true)
Q_PROPERTY(QColor okColor READ okColor WRITE setOkColor DESIGNABLE true)
@@ -93,8 +93,8 @@ public:
QString path() const;
QString rawPath() const; // The raw unexpanded input.
FileName rawFileName() const; // The raw unexpanded input.
FileName fileName() const;
FilePath rawFileName() const; // The raw unexpanded input.
FilePath fileName() const;
static QString expandedDirectory(const QString &input, const Environment &env,
const QString &baseDir);
@@ -102,8 +102,8 @@ public:
QString baseDirectory() const;
void setBaseDirectory(const QString &directory);
FileName baseFileName() const;
void setBaseFileName(const FileName &base);
FilePath baseFileName() const;
void setBaseFileName(const FilePath &base);
void setEnvironment(const Environment &env);
@@ -172,7 +172,7 @@ signals:
public slots:
void setPath(const QString &);
void setFileName(const FileName &);
void setFileName(const FilePath &);
void setErrorColor(const QColor &errorColor);
void setOkColor(const QColor &okColor);

View File

@@ -341,7 +341,7 @@ QVariantMap PersistentSettingsReader::restoreValues() const
return m_valueMap;
}
bool PersistentSettingsReader::load(const FileName &fileName)
bool PersistentSettingsReader::load(const FilePath &fileName)
{
m_valueMap.clear();
@@ -409,7 +409,7 @@ static void writeVariantValue(QXmlStreamWriter &w, const Context &ctx,
}
}
PersistentSettingsWriter::PersistentSettingsWriter(const FileName &fileName, const QString &docType) :
PersistentSettingsWriter::PersistentSettingsWriter(const FilePath &fileName, const QString &docType) :
m_fileName(fileName), m_docType(docType)
{ }
@@ -438,7 +438,7 @@ bool PersistentSettingsWriter::save(const QVariantMap &data, QWidget *parent) co
}
#endif // QT_GUI_LIB
FileName PersistentSettingsWriter::fileName() const
FilePath PersistentSettingsWriter::fileName() const
{ return m_fileName; }
//** * @brief Set contents of file (e.g. from data read from it). */

View File

@@ -42,7 +42,7 @@ public:
PersistentSettingsReader();
QVariant restoreValue(const QString &variable, const QVariant &defaultValue = QVariant()) const;
QVariantMap restoreValues() const;
bool load(const FileName &fileName);
bool load(const FilePath &fileName);
private:
QMap<QString, QVariant> m_valueMap;
@@ -51,7 +51,7 @@ private:
class QTCREATOR_UTILS_EXPORT PersistentSettingsWriter
{
public:
PersistentSettingsWriter(const FileName &fileName, const QString &docType);
PersistentSettingsWriter(const FilePath &fileName, const QString &docType);
~PersistentSettingsWriter();
bool save(const QVariantMap &data, QString *errorString) const;
@@ -59,14 +59,14 @@ public:
bool save(const QVariantMap &data, QWidget *parent) const;
#endif
FileName fileName() const;
FilePath fileName() const;
void setContents(const QVariantMap &data);
private:
bool write(const QVariantMap &data, QString *errorString) const;
const FileName m_fileName;
const FilePath m_fileName;
const QString m_docType;
mutable QMap<QString, QVariant> m_savedData;
};

View File

@@ -33,7 +33,7 @@
namespace Utils {
QTCREATOR_UTILS_EXPORT ReloadPromptAnswer reloadPrompt(const FileName &fileName,
QTCREATOR_UTILS_EXPORT ReloadPromptAnswer reloadPrompt(const FilePath &fileName,
bool modified,
bool enableDiffOption,
QWidget *parent)

View File

@@ -33,7 +33,7 @@ class QWidget;
QT_END_NAMESPACE
namespace Utils {
class FileName;
class FilePath;
enum ReloadPromptAnswer {
ReloadCurrent,
@@ -44,7 +44,7 @@ enum ReloadPromptAnswer {
CloseCurrent
};
QTCREATOR_UTILS_EXPORT ReloadPromptAnswer reloadPrompt(const FileName &fileName,
QTCREATOR_UTILS_EXPORT ReloadPromptAnswer reloadPrompt(const FilePath &fileName,
bool modified,
bool enableDiffOption,
QWidget *parent);

View File

@@ -119,7 +119,7 @@ bool SaveFile::commit()
}
QString finalFileName
= FileUtils::resolveSymlinks(FileName::fromString(m_finalFileName)).toString();
= FileUtils::resolveSymlinks(FilePath::fromString(m_finalFileName)).toString();
#ifdef Q_OS_WIN
// Release the file lock

View File

@@ -98,7 +98,7 @@ bool SettingsAccessor::saveSettings(const QVariantMap &data, QWidget *parent) co
/*!
* Read data from \a path. Do all the necessary postprocessing of the data.
*/
SettingsAccessor::RestoreData SettingsAccessor::readData(const FileName &path, QWidget *parent) const
SettingsAccessor::RestoreData SettingsAccessor::readData(const FilePath &path, QWidget *parent) const
{
Q_UNUSED(parent);
RestoreData result = readFile(path);
@@ -111,13 +111,13 @@ SettingsAccessor::RestoreData SettingsAccessor::readData(const FileName &path, Q
* Store the \a data in \a path on disk. Do all the necessary preprocessing of the data.
*/
optional<SettingsAccessor::Issue>
SettingsAccessor::writeData(const FileName &path, const QVariantMap &data, QWidget *parent) const
SettingsAccessor::writeData(const FilePath &path, const QVariantMap &data, QWidget *parent) const
{
Q_UNUSED(parent);
return writeFile(path, prepareToWriteSettings(data));
}
QVariantMap SettingsAccessor::restoreSettings(const FileName &settingsPath, QWidget *parent) const
QVariantMap SettingsAccessor::restoreSettings(const FilePath &settingsPath, QWidget *parent) const
{
const RestoreData result = readData(settingsPath, parent);
@@ -131,7 +131,7 @@ QVariantMap SettingsAccessor::restoreSettings(const FileName &settingsPath, QWid
*
* This method does not do *any* processing of the file contents.
*/
SettingsAccessor::RestoreData SettingsAccessor::readFile(const FileName &path) const
SettingsAccessor::RestoreData SettingsAccessor::readFile(const FilePath &path) const
{
PersistentSettingsReader reader;
if (!reader.load(path)) {
@@ -156,7 +156,7 @@ SettingsAccessor::RestoreData SettingsAccessor::readFile(const FileName &path) c
* This method does not do *any* processing of the file contents.
*/
optional<SettingsAccessor::Issue>
SettingsAccessor::writeFile(const FileName &path, const QVariantMap &data) const
SettingsAccessor::writeFile(const FilePath &path, const QVariantMap &data) const
{
if (data.isEmpty()) {
return Issue(QCoreApplication::translate("Utils::SettingsAccessor", "Failed to Write File"),
@@ -176,7 +176,7 @@ SettingsAccessor::writeFile(const FileName &path, const QVariantMap &data) const
}
SettingsAccessor::ProceedInfo
SettingsAccessor::reportIssues(const SettingsAccessor::Issue &issue, const FileName &path,
SettingsAccessor::reportIssues(const SettingsAccessor::Issue &issue, const FilePath &path,
QWidget *parent) const
{
if (!path.exists())
@@ -217,14 +217,14 @@ QVariantMap SettingsAccessor::prepareToWriteSettings(const QVariantMap &data) co
// BackingUpSettingsAccessor:
// --------------------------------------------------------------------
FileNameList BackUpStrategy::readFileCandidates(const FileName &baseFileName) const
FilePathList BackUpStrategy::readFileCandidates(const FilePath &baseFileName) const
{
const QFileInfo pfi = baseFileName.toFileInfo();
const QStringList filter(pfi.fileName() + '*');
const QFileInfoList list = QDir(pfi.dir()).entryInfoList(filter, QDir::Files | QDir::Hidden | QDir::System);
return Utils::transform(list, [](const QFileInfo &fi) { return FileName::fromString(fi.absoluteFilePath()); });
return Utils::transform(list, [](const QFileInfo &fi) { return FilePath::fromString(fi.absoluteFilePath()); });
}
int BackUpStrategy::compare(const SettingsAccessor::RestoreData &data1,
@@ -239,8 +239,8 @@ int BackUpStrategy::compare(const SettingsAccessor::RestoreData &data1,
return 0;
}
optional<FileName>
BackUpStrategy::backupName(const QVariantMap &oldData, const FileName &path, const QVariantMap &data) const
optional<FilePath>
BackUpStrategy::backupName(const QVariantMap &oldData, const FilePath &path, const QVariantMap &data) const
{
if (oldData == data)
return nullopt;
@@ -262,9 +262,9 @@ BackingUpSettingsAccessor::BackingUpSettingsAccessor(std::unique_ptr<BackUpStrat
{ }
SettingsAccessor::RestoreData
BackingUpSettingsAccessor::readData(const FileName &path, QWidget *parent) const
BackingUpSettingsAccessor::readData(const FilePath &path, QWidget *parent) const
{
const FileNameList fileList = readFileCandidates(path);
const FilePathList fileList = readFileCandidates(path);
if (fileList.isEmpty()) // No settings found at all.
return RestoreData(path, QVariantMap());
@@ -287,7 +287,7 @@ BackingUpSettingsAccessor::readData(const FileName &path, QWidget *parent) const
}
optional<SettingsAccessor::Issue>
BackingUpSettingsAccessor::writeData(const FileName &path, const QVariantMap &data,
BackingUpSettingsAccessor::writeData(const FilePath &path, const QVariantMap &data,
QWidget *parent) const
{
if (data.isEmpty())
@@ -298,9 +298,9 @@ BackingUpSettingsAccessor::writeData(const FileName &path, const QVariantMap &da
return SettingsAccessor::writeData(path, data, parent);
}
FileNameList BackingUpSettingsAccessor::readFileCandidates(const FileName &path) const
FilePathList BackingUpSettingsAccessor::readFileCandidates(const FilePath &path) const
{
FileNameList result = Utils::filteredUnique(m_strategy->readFileCandidates(path));
FilePathList result = Utils::filteredUnique(m_strategy->readFileCandidates(path));
if (result.removeOne(baseFilePath()))
result.prepend(baseFilePath());
@@ -308,10 +308,10 @@ FileNameList BackingUpSettingsAccessor::readFileCandidates(const FileName &path)
}
SettingsAccessor::RestoreData
BackingUpSettingsAccessor::bestReadFileData(const FileNameList &candidates, QWidget *parent) const
BackingUpSettingsAccessor::bestReadFileData(const FilePathList &candidates, QWidget *parent) const
{
SettingsAccessor::RestoreData bestMatch;
for (const FileName &c : candidates) {
for (const FilePath &c : candidates) {
RestoreData cData = SettingsAccessor::readData(c, parent);
if (m_strategy->compare(bestMatch, cData) > 0)
bestMatch = cData;
@@ -319,7 +319,7 @@ BackingUpSettingsAccessor::bestReadFileData(const FileNameList &candidates, QWid
return bestMatch;
}
void BackingUpSettingsAccessor::backupFile(const FileName &path, const QVariantMap &data,
void BackingUpSettingsAccessor::backupFile(const FilePath &path, const QVariantMap &data,
QWidget *parent) const
{
RestoreData oldSettings = SettingsAccessor::readData(path, parent);
@@ -328,7 +328,7 @@ void BackingUpSettingsAccessor::backupFile(const FileName &path, const QVariantM
// Do we need to do a backup?
const QString origName = path.toString();
optional<FileName> backupFileName = m_strategy->backupName(oldSettings.data, path, data);
optional<FilePath> backupFileName = m_strategy->backupName(oldSettings.data, path, data);
if (backupFileName)
QFile::copy(origName, backupFileName.value().toString());
}
@@ -359,11 +359,11 @@ int VersionedBackUpStrategy::compare(const SettingsAccessor::RestoreData &data1,
return -1;
}
optional<FileName>
VersionedBackUpStrategy::backupName(const QVariantMap &oldData, const FileName &path, const QVariantMap &data) const
optional<FilePath>
VersionedBackUpStrategy::backupName(const QVariantMap &oldData, const FilePath &path, const QVariantMap &data) const
{
Q_UNUSED(data);
FileName backupName = path;
FilePath backupName = path;
const QByteArray oldEnvironmentId = settingsIdFromMap(oldData);
const int oldVersion = versionFromMap(oldData);
@@ -463,7 +463,7 @@ bool UpgradingSettingsAccessor::isValidVersionAndId(const int version, const QBy
&& (id.isEmpty() || id == m_id || m_id.isEmpty());
}
SettingsAccessor::RestoreData UpgradingSettingsAccessor::readData(const FileName &path,
SettingsAccessor::RestoreData UpgradingSettingsAccessor::readData(const FilePath &path,
QWidget *parent) const
{
return upgradeSettings(BackingUpSettingsAccessor::readData(path, parent), currentVersion());
@@ -605,7 +605,7 @@ MergingSettingsAccessor::MergingSettingsAccessor(std::unique_ptr<BackUpStrategy>
UpgradingSettingsAccessor(std::move(strategy), docType, displayName, applicationDisplayName)
{ }
SettingsAccessor::RestoreData MergingSettingsAccessor::readData(const FileName &path,
SettingsAccessor::RestoreData MergingSettingsAccessor::readData(const FilePath &path,
QWidget *parent) const
{
RestoreData mainData = UpgradingSettingsAccessor::readData(path, parent); // FULLY upgraded!

View File

@@ -99,7 +99,7 @@ public:
class RestoreData {
public:
RestoreData() = default;
RestoreData(const FileName &path, const QVariantMap &data) : path{path}, data{data} { }
RestoreData(const FilePath &path, const QVariantMap &data) : path{path}, data{data} { }
RestoreData(const QString &title, const QString &message, const Issue::Type type) :
RestoreData(Issue(title, message, type))
{ }
@@ -109,7 +109,7 @@ public:
bool hasError() const { return hasIssue() && issue.value().type == Issue::Type::ERROR; }
bool hasWarning() const { return hasIssue() && issue.value().type == Issue::Type::WARNING; }
FileName path;
FilePath path;
QVariantMap data;
optional<Issue> issue;
};
@@ -121,26 +121,26 @@ public:
const QString displayName;
const QString applicationDisplayName;
void setBaseFilePath(const FileName &baseFilePath) { m_baseFilePath = baseFilePath; }
void setBaseFilePath(const FilePath &baseFilePath) { m_baseFilePath = baseFilePath; }
void setReadOnly() { m_readOnly = true; }
FileName baseFilePath() const { return m_baseFilePath; }
FilePath baseFilePath() const { return m_baseFilePath; }
virtual RestoreData readData(const FileName &path, QWidget *parent) const;
virtual optional<Issue> writeData(const FileName &path, const QVariantMap &data, QWidget *parent) const;
virtual RestoreData readData(const FilePath &path, QWidget *parent) const;
virtual optional<Issue> writeData(const FilePath &path, const QVariantMap &data, QWidget *parent) const;
protected:
// Report errors:
QVariantMap restoreSettings(const FileName &settingsPath, QWidget *parent) const;
ProceedInfo reportIssues(const Issue &issue, const FileName &path, QWidget *parent) const;
QVariantMap restoreSettings(const FilePath &settingsPath, QWidget *parent) const;
ProceedInfo reportIssues(const Issue &issue, const FilePath &path, QWidget *parent) const;
virtual QVariantMap preprocessReadSettings(const QVariantMap &data) const;
virtual QVariantMap prepareToWriteSettings(const QVariantMap &data) const;
virtual RestoreData readFile(const FileName &path) const;
virtual optional<Issue> writeFile(const FileName &path, const QVariantMap &data) const;
virtual RestoreData readFile(const FilePath &path) const;
virtual optional<Issue> writeFile(const FilePath &path, const QVariantMap &data) const;
private:
FileName m_baseFilePath;
FilePath m_baseFilePath;
mutable std::unique_ptr<PersistentSettingsWriter> m_writer;
bool m_readOnly = false;
};
@@ -154,14 +154,14 @@ class QTCREATOR_UTILS_EXPORT BackUpStrategy
public:
virtual ~BackUpStrategy() = default;
virtual FileNameList readFileCandidates(const FileName &baseFileName) const;
virtual FilePathList readFileCandidates(const FilePath &baseFileName) const;
// Return -1 if data1 is better that data2, 0 if both are equally worthwhile
// and 1 if data2 is better than data1
virtual int compare(const SettingsAccessor::RestoreData &data1,
const SettingsAccessor::RestoreData &data2) const;
virtual optional<FileName>
backupName(const QVariantMap &oldData, const FileName &path, const QVariantMap &data) const;
virtual optional<FilePath>
backupName(const QVariantMap &oldData, const FilePath &path, const QVariantMap &data) const;
};
class QTCREATOR_UTILS_EXPORT BackingUpSettingsAccessor : public SettingsAccessor
@@ -172,16 +172,16 @@ public:
BackingUpSettingsAccessor(std::unique_ptr<BackUpStrategy> &&strategy, const QString &docType,
const QString &displayName, const QString &applicationDisplayName);
RestoreData readData(const FileName &path, QWidget *parent) const override;
optional<Issue> writeData(const FileName &path, const QVariantMap &data,
RestoreData readData(const FilePath &path, QWidget *parent) const override;
optional<Issue> writeData(const FilePath &path, const QVariantMap &data,
QWidget *parent) const override;
BackUpStrategy *strategy() const { return m_strategy.get(); }
private:
FileNameList readFileCandidates(const FileName &path) const;
RestoreData bestReadFileData(const FileNameList &candidates, QWidget *parent) const;
void backupFile(const FileName &path, const QVariantMap &data, QWidget *parent) const;
FilePathList readFileCandidates(const FilePath &path) const;
RestoreData bestReadFileData(const FilePathList &candidates, QWidget *parent) const;
void backupFile(const FilePath &path, const QVariantMap &data, QWidget *parent) const;
std::unique_ptr<BackUpStrategy> m_strategy;
};
@@ -202,8 +202,8 @@ public:
int compare(const SettingsAccessor::RestoreData &data1,
const SettingsAccessor::RestoreData &data2) const override;
optional<FileName>
backupName(const QVariantMap &oldData, const FileName &path, const QVariantMap &data) const override;
optional<FilePath>
backupName(const QVariantMap &oldData, const FilePath &path, const QVariantMap &data) const override;
const UpgradingSettingsAccessor *accessor() const { return m_accessor; }
@@ -251,7 +251,7 @@ public:
bool isValidVersionAndId(const int version, const QByteArray &id) const;
VersionUpgrader *upgrader(const int version) const;
RestoreData readData(const FileName &path, QWidget *parent) const override;
RestoreData readData(const FilePath &path, QWidget *parent) const override;
protected:
QVariantMap prepareToWriteSettings(const QVariantMap &data) const override;
@@ -284,7 +284,7 @@ public:
const QString &docType, const QString &displayName,
const QString &applicationDisplayName);
RestoreData readData(const FileName &path, QWidget *parent) const final;
RestoreData readData(const FilePath &path, QWidget *parent) const final;
void setSecondaryAccessor(std::unique_ptr<SettingsAccessor> &&secondary);

View File

@@ -68,11 +68,11 @@ class ShellCommandPrivate
{
public:
struct Job {
explicit Job(const QString &wd, const FileName &b, const QStringList &a, int t,
explicit Job(const QString &wd, const FilePath &b, const QStringList &a, int t,
const ExitCodeInterpreter &interpreter);
QString workingDirectory;
FileName binary;
FilePath binary;
QStringList arguments;
ExitCodeInterpreter exitCodeInterpreter;
int timeoutS;
@@ -113,7 +113,7 @@ ShellCommandPrivate::~ShellCommandPrivate()
delete m_progressParser;
}
ShellCommandPrivate::Job::Job(const QString &wd, const FileName &b, const QStringList &a,
ShellCommandPrivate::Job::Job(const QString &wd, const FilePath &b, const QStringList &a,
int t, const ExitCodeInterpreter &interpreter) :
workingDirectory(wd),
binary(b),
@@ -195,13 +195,13 @@ void ShellCommand::addFlags(unsigned f)
d->m_flags |= f;
}
void ShellCommand::addJob(const FileName &binary, const QStringList &arguments,
void ShellCommand::addJob(const FilePath &binary, const QStringList &arguments,
const QString &workingDirectory, const ExitCodeInterpreter &interpreter)
{
addJob(binary, arguments, defaultTimeoutS(), workingDirectory, interpreter);
}
void ShellCommand::addJob(const FileName &binary, const QStringList &arguments, int timeoutS,
void ShellCommand::addJob(const FilePath &binary, const QStringList &arguments, int timeoutS,
const QString &workingDirectory, const ExitCodeInterpreter &interpreter)
{
d->m_jobs.push_back(Internal::ShellCommandPrivate::Job(workDirectory(workingDirectory), binary,
@@ -319,7 +319,7 @@ void ShellCommand::run(QFutureInterface<void> &future)
this->deleteLater();
}
SynchronousProcessResponse ShellCommand::runCommand(const FileName &binary,
SynchronousProcessResponse ShellCommand::runCommand(const FilePath &binary,
const QStringList &arguments, int timeoutS,
const QString &workingDirectory,
const ExitCodeInterpreter &interpreter)
@@ -359,7 +359,7 @@ SynchronousProcessResponse ShellCommand::runCommand(const FileName &binary,
return response;
}
SynchronousProcessResponse ShellCommand::runFullySynchronous(const FileName &binary,
SynchronousProcessResponse ShellCommand::runFullySynchronous(const FilePath &binary,
const QStringList &arguments,
QSharedPointer<OutputProxy> proxy,
int timeoutS,
@@ -399,7 +399,7 @@ SynchronousProcessResponse ShellCommand::runFullySynchronous(const FileName &bin
return resp;
}
SynchronousProcessResponse ShellCommand::runSynchronous(const FileName &binary,
SynchronousProcessResponse ShellCommand::runSynchronous(const FilePath &binary,
const QStringList &arguments,
QSharedPointer<OutputProxy> proxy,
int timeoutS,

View File

@@ -46,7 +46,7 @@ QT_END_NAMESPACE
namespace Utils {
class FileName;
class FilePath;
namespace Internal { class ShellCommandPrivate; }
class QTCREATOR_UTILS_EXPORT ProgressParser
@@ -79,7 +79,7 @@ signals:
void append(const QString &text);
void appendSilently(const QString &text);
void appendError(const QString &text);
void appendCommand(const QString &workingDirectory, const Utils::FileName &binary,
void appendCommand(const QString &workingDirectory, const Utils::FilePath &binary,
const QStringList &args);
void appendMessage(const QString &text);
};
@@ -112,9 +112,9 @@ public:
QString displayName() const;
void setDisplayName(const QString &name);
void addJob(const FileName &binary, const QStringList &arguments,
void addJob(const FilePath &binary, const QStringList &arguments,
const QString &workingDirectory = QString(), const ExitCodeInterpreter &interpreter = defaultExitCodeInterpreter);
void addJob(const FileName &binary, const QStringList &arguments, int timeoutS,
void addJob(const FilePath &binary, const QStringList &arguments, int timeoutS,
const QString &workingDirectory = QString(), const ExitCodeInterpreter &interpreter = defaultExitCodeInterpreter);
void execute(); // Execute tasks asynchronously!
void abort();
@@ -145,7 +145,7 @@ public:
// This is called once per job in a thread.
// When called from the UI thread it will execute fully synchronously, so no signals will
// be triggered!
virtual SynchronousProcessResponse runCommand(const FileName &binary, const QStringList &arguments,
virtual SynchronousProcessResponse runCommand(const FilePath &binary, const QStringList &arguments,
int timeoutS,
const QString &workingDirectory = QString(),
const ExitCodeInterpreter &interpreter = defaultExitCodeInterpreter);
@@ -171,12 +171,12 @@ private:
void run(QFutureInterface<void> &future);
// Run without a event loop in fully blocking mode. No signals will be delivered.
SynchronousProcessResponse runFullySynchronous(const FileName &binary, const QStringList &arguments,
SynchronousProcessResponse runFullySynchronous(const FilePath &binary, const QStringList &arguments,
QSharedPointer<OutputProxy> proxy,
int timeoutS, const QString &workingDirectory,
const ExitCodeInterpreter &interpreter = defaultExitCodeInterpreter);
// Run with an event loop. Signals will be delivered.
SynchronousProcessResponse runSynchronous(const FileName &binary, const QStringList &arguments,
SynchronousProcessResponse runSynchronous(const FilePath &binary, const QStringList &arguments,
QSharedPointer<OutputProxy> proxy,
int timeoutS, const QString &workingDirectory,
const ExitCodeInterpreter &interpreter = defaultExitCodeInterpreter);

View File

@@ -77,7 +77,7 @@ QString UnixUtils::substituteFileBrowserParameters(const QString &pre, const QSt
} else if (c == QLatin1Char('f')) {
s = QLatin1Char('"') + file + QLatin1Char('"');
} else if (c == QLatin1Char('n')) {
s = QLatin1Char('"') + FileName::fromString(file).fileName() + QLatin1Char('"');
s = QLatin1Char('"') + FilePath::fromString(file).fileName() + QLatin1Char('"');
} else if (c == QLatin1Char('%')) {
s = c;
} else {

View File

@@ -429,11 +429,11 @@ bool AvdManagerOutputParser::parseAvd(const QStringList &deviceInfo, AndroidDevi
} else if (valueForKey(avdInfoNameKey, line, &value)) {
avd->avdname = value;
} else if (valueForKey(avdInfoPathKey, line, &value)) {
const Utils::FileName avdPath = Utils::FileName::fromString(value);
const Utils::FilePath avdPath = Utils::FilePath::fromString(value);
if (avdPath.exists())
{
// Get ABI.
const Utils::FileName configFile = avdPath.pathAppended("config.ini");
const Utils::FilePath configFile = avdPath.pathAppended("config.ini");
QSettings config(configFile.toString(), QSettings::IniFormat);
value = config.value(avdInfoAbiKey).toString();
if (!value.isEmpty())
@@ -443,7 +443,7 @@ bool AvdManagerOutputParser::parseAvd(const QStringList &deviceInfo, AndroidDevi
// Get Target
QString avdInfoFileName = avdPath.toFileInfo().baseName() + ".ini";
const Utils::FileName
const Utils::FilePath
avdInfoFile = avdPath.parentDir().pathAppended(avdInfoFileName);
QSettings avdInfo(avdInfoFile.toString(), QSettings::IniFormat);
value = avdInfo.value(avdInfoTargetKey).toString();

View File

@@ -94,7 +94,7 @@ static void setupProcessParameters(ProcessParameters *pp,
pp->setWorkingDirectory(bc->buildDirectory());
Utils::Environment env = bc->environment();
pp->setEnvironment(env);
pp->setCommand(FileName::fromString(command));
pp->setCommand(FilePath::fromString(command));
pp->setArguments(Utils::QtcProcess::joinArgs(arguments));
pp->resolveAll();
}
@@ -191,7 +191,7 @@ bool AndroidBuildApkStep::init()
auto parser = new JavaParser;
parser->setProjectFileList(Utils::transform(target()->project()->files(ProjectExplorer::Project::AllFiles),
&Utils::FileName::toString));
&Utils::FilePath::toString));
RunConfiguration *rc = target()->activeRunConfiguration();
const QString buildKey = rc ? rc->buildKey() : QString();
@@ -202,7 +202,7 @@ bool AndroidBuildApkStep::init()
sourceDirName = node->data(Constants::AndroidPackageSourceDir).toString();
QFileInfo sourceDirInfo(sourceDirName);
parser->setSourceDirectory(Utils::FileName::fromString(sourceDirInfo.canonicalFilePath()));
parser->setSourceDirectory(Utils::FilePath::fromString(sourceDirInfo.canonicalFilePath()));
parser->setBuildDirectory(bc->buildDirectory().pathAppended(Constants::ANDROID_BUILDDIRECTORY));
setOutputParser(parser);
@@ -375,7 +375,7 @@ void AndroidBuildApkStep::doRun()
auto setup = [this] {
auto bc = target()->activeBuildConfiguration();
Utils::FileName androidLibsDir = bc->buildDirectory()
Utils::FilePath androidLibsDir = bc->buildDirectory()
.pathAppended("android-build/libs")
.pathAppended(AndroidManager::targetArch(target()));
if (!androidLibsDir.exists() && !QDir{bc->buildDirectory().toString()}.mkpath(androidLibsDir.toString()))
@@ -443,7 +443,7 @@ void AndroidBuildApkStep::processStarted()
bool AndroidBuildApkStep::fromMap(const QVariantMap &map)
{
m_keystorePath = Utils::FileName::fromString(map.value(KeystoreLocationKey).toString());
m_keystorePath = Utils::FilePath::fromString(map.value(KeystoreLocationKey).toString());
m_signPackage = false; // don't restore this
m_buildTargetSdk = map.value(BuildTargetSdkKey).toString();
if (m_buildTargetSdk.isEmpty()) {
@@ -465,7 +465,7 @@ QVariantMap AndroidBuildApkStep::toMap() const
return map;
}
Utils::FileName AndroidBuildApkStep::keystorePath()
Utils::FilePath AndroidBuildApkStep::keystorePath()
{
return m_keystorePath;
}
@@ -493,7 +493,7 @@ QVariant AndroidBuildApkStep::data(Core::Id id) const
return AbstractProcessStep::data(id);
}
void AndroidBuildApkStep::setKeystorePath(const Utils::FileName &path)
void AndroidBuildApkStep::setKeystorePath(const Utils::FilePath &path)
{
m_keystorePath = path;
m_certificatePasswd.clear();

View File

@@ -51,8 +51,8 @@ public:
QVariantMap toMap() const override;
// signing
Utils::FileName keystorePath();
void setKeystorePath(const Utils::FileName &path);
Utils::FilePath keystorePath();
void setKeystorePath(const Utils::FilePath &path);
void setKeystorePassword(const QString &pwd);
void setCertificateAlias(const QString &alias);
void setCertificatePassword(const QString &pwd);
@@ -97,7 +97,7 @@ private:
bool m_addDebugger = true;
QString m_buildTargetSdk;
Utils::FileName m_keystorePath;
Utils::FilePath m_keystorePath;
QString m_keystorePasswd;
QString m_certificateAlias;
QString m_certificatePasswd;

View File

@@ -132,7 +132,7 @@ QWidget *AndroidBuildApkWidget::createSignPackageGroup()
keystoreLocationChooser->setPromptDialogFilter(tr("Keystore files (*.keystore *.jks)"));
keystoreLocationChooser->setPromptDialogTitle(tr("Select Keystore File"));
connect(keystoreLocationChooser, &PathChooser::pathChanged, this, [this](const QString &path) {
FileName file = FileName::fromString(path);
FilePath file = FilePath::fromString(path);
m_step->setKeystorePath(file);
m_signPackageCheckBox->setChecked(!file.isEmpty());
if (!file.isEmpty())

View File

@@ -225,23 +225,23 @@ void AndroidConfig::load(const QSettings &settings)
{
// user settings
m_partitionSize = settings.value(PartitionSizeKey, 1024).toInt();
m_sdkLocation = FileName::fromString(settings.value(SDKLocationKey).toString());
m_sdkLocation = FilePath::fromString(settings.value(SDKLocationKey).toString());
m_sdkManagerToolArgs = settings.value(SDKManagerToolArgsKey).toStringList();
m_ndkLocation = FileName::fromString(settings.value(NDKLocationKey).toString());
m_openJDKLocation = FileName::fromString(settings.value(OpenJDKLocationKey).toString());
m_keystoreLocation = FileName::fromString(settings.value(KeystoreLocationKey).toString());
m_ndkLocation = FilePath::fromString(settings.value(NDKLocationKey).toString());
m_openJDKLocation = FilePath::fromString(settings.value(OpenJDKLocationKey).toString());
m_keystoreLocation = FilePath::fromString(settings.value(KeystoreLocationKey).toString());
m_toolchainHost = settings.value(ToolchainHostKey).toString();
m_automaticKitCreation = settings.value(AutomaticKitCreationKey, true).toBool();
PersistentSettingsReader reader;
if (reader.load(FileName::fromString(sdkSettingsFileName()))
if (reader.load(FilePath::fromString(sdkSettingsFileName()))
&& settings.value(changeTimeStamp).toInt() != QFileInfo(sdkSettingsFileName()).lastModified().toMSecsSinceEpoch() / 1000) {
// persisten settings
m_sdkLocation = FileName::fromString(reader.restoreValue(SDKLocationKey, m_sdkLocation.toString()).toString());
m_sdkLocation = FilePath::fromString(reader.restoreValue(SDKLocationKey, m_sdkLocation.toString()).toString());
m_sdkManagerToolArgs = reader.restoreValue(SDKManagerToolArgsKey, m_sdkManagerToolArgs).toStringList();
m_ndkLocation = FileName::fromString(reader.restoreValue(NDKLocationKey, m_ndkLocation.toString()).toString());
m_openJDKLocation = FileName::fromString(reader.restoreValue(OpenJDKLocationKey, m_openJDKLocation.toString()).toString());
m_keystoreLocation = FileName::fromString(reader.restoreValue(KeystoreLocationKey, m_keystoreLocation.toString()).toString());
m_ndkLocation = FilePath::fromString(reader.restoreValue(NDKLocationKey, m_ndkLocation.toString()).toString());
m_openJDKLocation = FilePath::fromString(reader.restoreValue(OpenJDKLocationKey, m_openJDKLocation.toString()).toString());
m_keystoreLocation = FilePath::fromString(reader.restoreValue(KeystoreLocationKey, m_keystoreLocation.toString()).toString());
m_toolchainHost = reader.restoreValue(ToolchainHostKey, m_toolchainHost).toString();
m_automaticKitCreation = reader.restoreValue(AutomaticKitCreationKey, m_automaticKitCreation).toBool();
// persistent settings
@@ -313,17 +313,17 @@ QString AndroidConfig::apiLevelNameFor(const SdkPlatform *platform)
QString("android-%1").arg(platform->apiLevel()) : "";
}
FileName AndroidConfig::adbToolPath() const
FilePath AndroidConfig::adbToolPath() const
{
return m_sdkLocation.pathAppended("platform-tools/adb" QTC_HOST_EXE_SUFFIX);
}
FileName AndroidConfig::androidToolPath() const
FilePath AndroidConfig::androidToolPath() const
{
if (HostOsInfo::isWindowsHost()) {
// I want to switch from using android.bat to using an executable. All it really does is call
// Java and I've made some progress on it. So if android.exe exists, return that instead.
const FileName path = m_sdkLocation.pathAppended("tools/android" QTC_HOST_EXE_SUFFIX);
const FilePath path = m_sdkLocation.pathAppended("tools/android" QTC_HOST_EXE_SUFFIX);
if (path.exists())
return path;
return m_sdkLocation.pathAppended("tools/android" ANDROID_BAT_SUFFIX);
@@ -331,7 +331,7 @@ FileName AndroidConfig::androidToolPath() const
return m_sdkLocation.pathAppended("tools/android");
}
FileName AndroidConfig::emulatorToolPath() const
FilePath AndroidConfig::emulatorToolPath() const
{
QString relativePath = "emulator/emulator";
if (sdkToolsVersion() < QVersionNumber(25, 3, 0))
@@ -339,7 +339,7 @@ FileName AndroidConfig::emulatorToolPath() const
return m_sdkLocation.pathAppended(relativePath + QTC_HOST_EXE_SUFFIX);
}
FileName AndroidConfig::sdkManagerToolPath() const
FilePath AndroidConfig::sdkManagerToolPath() const
{
QString toolPath = "tools/bin/sdkmanager";
if (HostOsInfo::isWindowsHost())
@@ -347,7 +347,7 @@ FileName AndroidConfig::sdkManagerToolPath() const
return m_sdkLocation.pathAppended(toolPath);
}
FileName AndroidConfig::avdManagerToolPath() const
FilePath AndroidConfig::avdManagerToolPath() const
{
QString toolPath = "tools/bin/avdmanager";
if (HostOsInfo::isWindowsHost())
@@ -355,20 +355,20 @@ FileName AndroidConfig::avdManagerToolPath() const
return m_sdkLocation.pathAppended(toolPath);
}
FileName AndroidConfig::aaptToolPath() const
FilePath AndroidConfig::aaptToolPath() const
{
const Utils::FileName aaptToolPath = m_sdkLocation.pathAppended("build-tools");
const Utils::FilePath aaptToolPath = m_sdkLocation.pathAppended("build-tools");
QString toolPath = QString("%1/aapt").arg(buildToolsVersion().toString());
if (HostOsInfo::isWindowsHost())
toolPath += QTC_HOST_EXE_SUFFIX;
return aaptToolPath.pathAppended(toolPath);
}
FileName AndroidConfig::clangPath() const
FilePath AndroidConfig::clangPath() const
{
const FileName clangPath = m_ndkLocation.pathAppended("toolchains/llvm/prebuilt/");
const FileName oldNdkClangPath = m_ndkLocation.pathAppended("toolchains/llvm-3.6/prebuilt/");
const QVector<FileName> clangSearchPaths{clangPath, oldNdkClangPath};
const FilePath clangPath = m_ndkLocation.pathAppended("toolchains/llvm/prebuilt/");
const FilePath oldNdkClangPath = m_ndkLocation.pathAppended("toolchains/llvm-3.6/prebuilt/");
const QVector<FilePath> clangSearchPaths{clangPath, oldNdkClangPath};
// detect toolchain host
QStringList hostPatterns;
@@ -382,10 +382,10 @@ FileName AndroidConfig::clangPath() const
case OsTypeMac:
hostPatterns << QLatin1String("darwin*");
break;
default: /* unknown host */ return FileName();
default: /* unknown host */ return FilePath();
}
for (const FileName &path : clangSearchPaths) {
for (const FilePath &path : clangSearchPaths) {
QDirIterator iter(path.toString(), hostPatterns, QDir::Dirs);
if (iter.hasNext()) {
iter.next();
@@ -397,9 +397,9 @@ FileName AndroidConfig::clangPath() const
return {};
}
FileName AndroidConfig::gdbPath(const ProjectExplorer::Abi &abi) const
FilePath AndroidConfig::gdbPath(const ProjectExplorer::Abi &abi) const
{
const FileName path = m_ndkLocation.pathAppended(
const FilePath path = m_ndkLocation.pathAppended(
QString("prebuilt/%1/bin/gdb%2").arg(toolchainHost(), QTC_HOST_EXE_SUFFIX));
if (path.exists())
return path;
@@ -408,21 +408,21 @@ FileName AndroidConfig::gdbPath(const ProjectExplorer::Abi &abi) const
.arg(toolchainPrefix(abi), toolchainHost(), toolsPrefix(abi), QTC_HOST_EXE_SUFFIX));
}
FileName AndroidConfig::makePath() const
FilePath AndroidConfig::makePath() const
{
return m_ndkLocation.pathAppended(
QString("prebuilt/%1/bin/make%2").arg(toolchainHost(), QTC_HOST_EXE_SUFFIX));
}
FileName AndroidConfig::openJDKBinPath() const
FilePath AndroidConfig::openJDKBinPath() const
{
const FileName path = m_openJDKLocation;
const FilePath path = m_openJDKLocation;
if (!path.isEmpty())
return path.pathAppended("bin");
return path;
}
FileName AndroidConfig::keytoolPath() const
FilePath AndroidConfig::keytoolPath() const
{
return openJDKBinPath().pathAppended(keytoolName);
}
@@ -685,12 +685,12 @@ QString AndroidConfig::bestNdkPlatformMatch(int target) const
return QString("android-%1").arg(AndroidManager::apiLevelRange().first);
}
FileName AndroidConfig::sdkLocation() const
FilePath AndroidConfig::sdkLocation() const
{
return m_sdkLocation;
}
void AndroidConfig::setSdkLocation(const FileName &sdkLocation)
void AndroidConfig::setSdkLocation(const FilePath &sdkLocation)
{
m_sdkLocation = sdkLocation;
}
@@ -699,7 +699,7 @@ QVersionNumber AndroidConfig::sdkToolsVersion() const
{
QVersionNumber version;
if (m_sdkLocation.exists()) {
const Utils::FileName sdkToolsPropertiesPath
const Utils::FilePath sdkToolsPropertiesPath
= m_sdkLocation.pathAppended("tools/source.properties");
QSettings settings(sdkToolsPropertiesPath.toString(), QSettings::IniFormat);
auto versionStr = settings.value(sdkToolsVersionKey).toString();
@@ -728,7 +728,7 @@ void AndroidConfig::setSdkManagerToolArgs(const QStringList &args)
m_sdkManagerToolArgs = args;
}
FileName AndroidConfig::ndkLocation() const
FilePath AndroidConfig::ndkLocation() const
{
return m_ndkLocation;
}
@@ -744,9 +744,9 @@ static inline QString gdbServerArch(const Abi &abi)
};
}
FileName AndroidConfig::gdbServer(const ProjectExplorer::Abi &abi) const
FilePath AndroidConfig::gdbServer(const ProjectExplorer::Abi &abi) const
{
const FileName path = AndroidConfigurations::currentConfig().ndkLocation()
const FilePath path = AndroidConfigurations::currentConfig().ndkLocation()
.pathAppended(QString("prebuilt/android-%1/gdbserver/gdbserver")
.arg(gdbServerArch(abi)));
if (path.exists())
@@ -763,7 +763,7 @@ QVersionNumber AndroidConfig::ndkVersion() const
return version;
}
const FileName ndkPropertiesPath = m_ndkLocation.pathAppended("source.properties");
const FilePath ndkPropertiesPath = m_ndkLocation.pathAppended("source.properties");
if (ndkPropertiesPath.exists()) {
// source.properties files exists in NDK version > 11
QSettings settings(ndkPropertiesPath.toString(), QSettings::IniFormat);
@@ -771,7 +771,7 @@ QVersionNumber AndroidConfig::ndkVersion() const
version = QVersionNumber::fromString(versionStr);
} else {
// No source.properties. There should be a file named RELEASE.TXT
const FileName ndkReleaseTxtPath = m_ndkLocation.pathAppended("RELEASE.TXT");
const FilePath ndkReleaseTxtPath = m_ndkLocation.pathAppended("RELEASE.TXT");
Utils::FileReader reader;
QString errorString;
if (reader.fetch(ndkReleaseTxtPath.toString(), &errorString)) {
@@ -799,28 +799,28 @@ QVersionNumber AndroidConfig::ndkVersion() const
return version;
}
void AndroidConfig::setNdkLocation(const FileName &ndkLocation)
void AndroidConfig::setNdkLocation(const FilePath &ndkLocation)
{
m_ndkLocation = ndkLocation;
m_NdkInformationUpToDate = false;
}
FileName AndroidConfig::openJDKLocation() const
FilePath AndroidConfig::openJDKLocation() const
{
return m_openJDKLocation;
}
void AndroidConfig::setOpenJDKLocation(const FileName &openJDKLocation)
void AndroidConfig::setOpenJDKLocation(const FilePath &openJDKLocation)
{
m_openJDKLocation = openJDKLocation;
}
FileName AndroidConfig::keystoreLocation() const
FilePath AndroidConfig::keystoreLocation() const
{
return m_keystoreLocation;
}
void AndroidConfig::setKeystoreLocation(const FileName &keystoreLocation)
void AndroidConfig::setKeystoreLocation(const FilePath &keystoreLocation)
{
m_keystoreLocation = keystoreLocation;
}
@@ -851,12 +851,12 @@ void AndroidConfig::setAutomaticKitCreation(bool b)
m_automaticKitCreation = b;
}
FileName AndroidConfig::qtLiveApkPath() const
FilePath AndroidConfig::qtLiveApkPath() const
{
QString apkPathStr(defaultQtLiveApk);
if (qEnvironmentVariableIsSet("QTC_QT_LIVE_APK_PATH"))
apkPathStr = QString::fromLocal8Bit(qgetenv("QTC_QT_LIVE_APK_PATH"));
return Utils::FileName::fromString(apkPathStr);
return Utils::FilePath::fromString(apkPathStr);
}
///////////////////////////////////
@@ -947,7 +947,7 @@ void AndroidConfigurations::removeOldToolChains()
static QVariant findOrRegisterDebugger(ToolChain *tc)
{
const FileName command = tc->suggestedDebugger();
const FilePath command = tc->suggestedDebugger();
// check if the debugger is already registered, but ignoring the display name
const Debugger::DebuggerItem *existing = Debugger::DebuggerItemManager::findByCommand(command);
if (existing && existing->engineType() == Debugger::GdbEngineType && existing->isAutoDetected()
@@ -1074,7 +1074,7 @@ bool AndroidConfigurations::force32bitEmulator()
QProcessEnvironment AndroidConfigurations::toolsEnvironment(const AndroidConfig &config)
{
Environment env = Environment::systemEnvironment();
Utils::FileName jdkLocation = config.openJDKLocation();
Utils::FilePath jdkLocation = config.openJDKLocation();
if (!jdkLocation.isEmpty()) {
env.set("JAVA_HOME", jdkLocation.toUserOutput());
env.prependOrSetPath(jdkLocation.pathAppended("bin").toUserOutput());
@@ -1147,7 +1147,7 @@ AndroidConfigurations::AndroidConfigurations()
AndroidConfigurations::~AndroidConfigurations() = default;
static FileName javaHomeForJavac(const FileName &location)
static FilePath javaHomeForJavac(const FilePath &location)
{
QFileInfo fileInfo = location.toFileInfo();
int tries = 5;
@@ -1155,14 +1155,14 @@ static FileName javaHomeForJavac(const FileName &location)
QDir dir = fileInfo.dir();
dir.cdUp();
if (QFileInfo::exists(dir.filePath(QLatin1String("lib/tools.jar"))))
return FileName::fromString(dir.path());
return FilePath::fromString(dir.path());
if (fileInfo.isSymLink())
fileInfo.setFile(fileInfo.symLinkTarget());
else
break;
--tries;
}
return FileName();
return FilePath();
}
void AndroidConfigurations::load()
@@ -1175,7 +1175,7 @@ void AndroidConfigurations::load()
if (m_config.openJDKLocation().isEmpty()) {
if (HostOsInfo::isLinuxHost()) {
Environment env = Environment::systemEnvironment();
FileName location = env.searchInPath(QLatin1String("javac"));
FilePath location = env.searchInPath(QLatin1String("javac"));
QFileInfo fi = location.toFileInfo();
if (fi.exists() && fi.isExecutable() && !fi.isDir()) {
m_config.setOpenJDKLocation(javaHomeForJavac(location));
@@ -1191,7 +1191,7 @@ void AndroidConfigurations::load()
if (response.result == SynchronousProcessResponse::Finished) {
const QString &javaHome = response.allOutput().trimmed();
if (!javaHome.isEmpty() && QFileInfo::exists(javaHome))
m_config.setOpenJDKLocation(FileName::fromString(javaHome));
m_config.setOpenJDKLocation(FilePath::fromString(javaHome));
}
}
} else if (HostOsInfo::isWindowsHost()) {
@@ -1233,7 +1233,7 @@ void AndroidConfigurations::load()
}
}
if (!javaHome.isEmpty()) {
m_config.setOpenJDKLocation(FileName::fromString(javaHome));
m_config.setOpenJDKLocation(FilePath::fromString(javaHome));
saveSettings = true;
}
}

View File

@@ -97,23 +97,23 @@ public:
static QStringList apiLevelNamesFor(const SdkPlatformList &platforms);
static QString apiLevelNameFor(const SdkPlatform *platform);
Utils::FileName sdkLocation() const;
void setSdkLocation(const Utils::FileName &sdkLocation);
Utils::FilePath sdkLocation() const;
void setSdkLocation(const Utils::FilePath &sdkLocation);
QVersionNumber sdkToolsVersion() const;
QVersionNumber buildToolsVersion() const;
QStringList sdkManagerToolArgs() const;
void setSdkManagerToolArgs(const QStringList &args);
Utils::FileName ndkLocation() const;
Utils::FileName gdbServer(const ProjectExplorer::Abi &abi) const;
Utils::FilePath ndkLocation() const;
Utils::FilePath gdbServer(const ProjectExplorer::Abi &abi) const;
QVersionNumber ndkVersion() const;
void setNdkLocation(const Utils::FileName &ndkLocation);
void setNdkLocation(const Utils::FilePath &ndkLocation);
Utils::FileName openJDKLocation() const;
void setOpenJDKLocation(const Utils::FileName &openJDKLocation);
Utils::FilePath openJDKLocation() const;
void setOpenJDKLocation(const Utils::FilePath &openJDKLocation);
Utils::FileName keystoreLocation() const;
void setKeystoreLocation(const Utils::FileName &keystoreLocation);
Utils::FilePath keystoreLocation() const;
void setKeystoreLocation(const Utils::FilePath &keystoreLocation);
QString toolchainHost() const;
@@ -123,20 +123,20 @@ public:
bool automaticKitCreation() const;
void setAutomaticKitCreation(bool b);
Utils::FileName qtLiveApkPath() const;
Utils::FilePath qtLiveApkPath() const;
Utils::FileName adbToolPath() const;
Utils::FileName androidToolPath() const;
Utils::FileName emulatorToolPath() const;
Utils::FileName sdkManagerToolPath() const;
Utils::FileName avdManagerToolPath() const;
Utils::FileName aaptToolPath() const;
Utils::FilePath adbToolPath() const;
Utils::FilePath androidToolPath() const;
Utils::FilePath emulatorToolPath() const;
Utils::FilePath sdkManagerToolPath() const;
Utils::FilePath avdManagerToolPath() const;
Utils::FilePath aaptToolPath() const;
Utils::FileName clangPath() const;
Utils::FileName gdbPath(const ProjectExplorer::Abi &abi) const;
Utils::FileName makePath() const;
Utils::FilePath clangPath() const;
Utils::FilePath gdbPath(const ProjectExplorer::Abi &abi) const;
Utils::FilePath makePath() const;
Utils::FileName keytoolPath() const;
Utils::FilePath keytoolPath() const;
QVector<AndroidDeviceInfo> connectedDevices(QString *error = nullptr) const;
static QVector<AndroidDeviceInfo> connectedDevices(const QString &adbToolPath, QString *error = nullptr);
@@ -158,7 +158,7 @@ public:
private:
static QString getDeviceProperty(const QString &adbToolPath, const QString &device, const QString &property);
Utils::FileName openJDKBinPath() const;
Utils::FilePath openJDKBinPath() const;
int getSDKVersion(const QString &device) const;
static int getSDKVersion(const QString &adbToolPath, const QString &device);
QStringList getAbis(const QString &device) const;
@@ -169,11 +169,11 @@ private:
void updateNdkInformation() const;
Utils::FileName m_sdkLocation;
Utils::FilePath m_sdkLocation;
QStringList m_sdkManagerToolArgs;
Utils::FileName m_ndkLocation;
Utils::FileName m_openJDKLocation;
Utils::FileName m_keystoreLocation;
Utils::FilePath m_ndkLocation;
Utils::FilePath m_openJDKLocation;
Utils::FilePath m_keystoreLocation;
unsigned m_partitionSize = 1024;
bool m_automaticKitCreation = true;

View File

@@ -58,7 +58,7 @@ AndroidCreateKeystoreCertificate::~AndroidCreateKeystoreCertificate()
delete ui;
}
Utils::FileName AndroidCreateKeystoreCertificate::keystoreFilePath()
Utils::FilePath AndroidCreateKeystoreCertificate::keystoreFilePath()
{
return m_keystoreFilePath;
}
@@ -152,7 +152,7 @@ void AndroidCreateKeystoreCertificate::on_buttonBox_accepted()
if (!validateUserInput())
return;
m_keystoreFilePath = Utils::FileName::fromString(QFileDialog::getSaveFileName(this, tr("Keystore Filename"),
m_keystoreFilePath = Utils::FilePath::fromString(QFileDialog::getSaveFileName(this, tr("Keystore Filename"),
QDir::homePath() + QLatin1String("/android_release.keystore"),
tr("Keystore files (*.keystore *.jks)")));
if (m_keystoreFilePath.isEmpty())

View File

@@ -49,7 +49,7 @@ class AndroidCreateKeystoreCertificate : public QDialog
public:
explicit AndroidCreateKeystoreCertificate(QWidget *parent = nullptr);
~AndroidCreateKeystoreCertificate() override;
Utils::FileName keystoreFilePath();
Utils::FilePath keystoreFilePath();
QString keystorePassword();
QString certificateAlias();
QString certificatePassword();
@@ -69,7 +69,7 @@ private slots:
private:
bool validateUserInput();
Ui::AndroidCreateKeystoreCertificate *ui;
Utils::FileName m_keystoreFilePath;
Utils::FilePath m_keystoreFilePath;
};
} // namespace Internal

View File

@@ -190,7 +190,7 @@ void AndroidDebugSupport::start()
const int minimumNdk = qt ? qt->minimumNDK() : 0;
int sdkVersion = qMax(AndroidManager::minimumSDK(kit), minimumNdk);
Utils::FileName sysRoot = AndroidConfigurations::currentConfig().ndkLocation()
Utils::FilePath sysRoot = AndroidConfigurations::currentConfig().ndkLocation()
.pathAppended("platforms")
.pathAppended(QString("android-%1").arg(sdkVersion))
.pathAppended(toNdkArch(AndroidManager::targetArch(target)));

View File

@@ -232,9 +232,9 @@ bool AndroidDeployQtStep::init()
if (m_useAndroiddeployqt) {
const ProjectNode *node = target()->project()->findNodeForBuildKey(rc->buildKey());
m_apkPath = Utils::FileName::fromString(node->data(Constants::AndroidApk).toString());
m_apkPath = Utils::FilePath::fromString(node->data(Constants::AndroidApk).toString());
if (!m_apkPath.isEmpty()) {
m_manifestName = Utils::FileName::fromString(node->data(Constants::AndroidManifest).toString());
m_manifestName = Utils::FilePath::fromString(node->data(Constants::AndroidManifest).toString());
m_command = AndroidConfigurations::currentConfig().adbToolPath().toString();
AndroidManager::setManifestPath(target(), m_manifestName);
} else {

View File

@@ -106,10 +106,10 @@ private:
friend void operator|=(DeployErrorCode &e1, const DeployErrorCode &e2) { e1 = static_cast<AndroidDeployQtStep::DeployErrorCode>((int)e1 | (int)e2); }
friend DeployErrorCode operator|(const DeployErrorCode &e1, const DeployErrorCode &e2) { return static_cast<AndroidDeployQtStep::DeployErrorCode>((int)e1 | (int)e2); }
Utils::FileName m_manifestName;
Utils::FilePath m_manifestName;
QString m_serialNumber;
QString m_avdName;
Utils::FileName m_apkPath;
Utils::FilePath m_apkPath;
QMap<QString, QString> m_filesToPull;
QString m_targetArch;

View File

@@ -112,23 +112,23 @@ Core::Id AndroidGdbServerKitAspect::id()
return "Android.GdbServer.Information";
}
FileName AndroidGdbServerKitAspect::gdbServer(const Kit *kit)
FilePath AndroidGdbServerKitAspect::gdbServer(const Kit *kit)
{
QTC_ASSERT(kit, return FileName());
return FileName::fromString(kit->value(AndroidGdbServerKitAspect::id()).toString());
QTC_ASSERT(kit, return FilePath());
return FilePath::fromString(kit->value(AndroidGdbServerKitAspect::id()).toString());
}
void AndroidGdbServerKitAspect::setGdbSever(Kit *kit, const FileName &gdbServerCommand)
void AndroidGdbServerKitAspect::setGdbSever(Kit *kit, const FilePath &gdbServerCommand)
{
QTC_ASSERT(kit, return);
kit->setValue(AndroidGdbServerKitAspect::id(), gdbServerCommand.toString());
}
FileName AndroidGdbServerKitAspect::autoDetect(const Kit *kit)
FilePath AndroidGdbServerKitAspect::autoDetect(const Kit *kit)
{
ToolChain *tc = ToolChainKitAspect::toolChain(kit, ProjectExplorer::Constants::CXX_LANGUAGE_ID);
if (!tc || tc->typeId() != Constants::ANDROID_TOOLCHAIN_ID)
return FileName();
return FilePath();
auto atc = static_cast<AndroidToolChain *>(tc);
return atc->suggestedGdbServer();
}

View File

@@ -44,9 +44,9 @@ public:
ProjectExplorer::KitAspectWidget *createConfigWidget(ProjectExplorer::Kit *) const override;
static Core::Id id();
static Utils::FileName gdbServer(const ProjectExplorer::Kit *kit);
static void setGdbSever(ProjectExplorer::Kit *kit, const Utils::FileName &gdbServerCommand);
static Utils::FileName autoDetect(const ProjectExplorer::Kit *kit);
static Utils::FilePath gdbServer(const ProjectExplorer::Kit *kit);
static void setGdbSever(ProjectExplorer::Kit *kit, const Utils::FilePath &gdbServerCommand);
static Utils::FilePath autoDetect(const ProjectExplorer::Kit *kit);
};
} // namespace Internal

View File

@@ -109,7 +109,7 @@ public:
using LibrariesMap = QMap<QString, Library>;
static bool openXmlFile(QDomDocument &doc, const Utils::FileName &fileName);
static bool openXmlFile(QDomDocument &doc, const Utils::FilePath &fileName);
static bool openManifest(ProjectExplorer::Target *target, QDomDocument &doc);
static int parseMinSdk(const QDomElement &manifestElem);
@@ -129,7 +129,7 @@ QString AndroidManager::packageName(ProjectExplorer::Target *target)
return manifestElem.attribute(QLatin1String("package"));
}
QString AndroidManager::packageName(const Utils::FileName &manifestFile)
QString AndroidManager::packageName(const Utils::FilePath &manifestFile)
{
QDomDocument doc;
if (!openXmlFile(doc, manifestFile))
@@ -174,7 +174,7 @@ int AndroidManager::packageVersionCode(const QString &deviceSerial,
return -1;
}
void AndroidManager::apkInfo(const Utils::FileName &apkPath,
void AndroidManager::apkInfo(const Utils::FilePath &apkPath,
QString *packageName,
int *version,
QString *activityPath)
@@ -237,8 +237,8 @@ int AndroidManager::minimumSDK(const ProjectExplorer::Kit *kit)
int minSDKVersion = -1;
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(kit);
if (version && version->targetDeviceTypes().contains(Constants::ANDROID_DEVICE_TYPE)) {
Utils::FileName stockManifestFilePath =
Utils::FileName::fromUserInput(version->qmakeProperty("QT_INSTALL_PREFIX") +
Utils::FilePath stockManifestFilePath =
Utils::FilePath::fromUserInput(version->qmakeProperty("QT_INSTALL_PREFIX") +
QLatin1String("/src/android/templates/AndroidManifest.xml"));
QDomDocument doc;
if (openXmlFile(doc, stockManifestFilePath)) {
@@ -292,20 +292,20 @@ QJsonObject AndroidManager::deploymentSettings(const Target *target)
return settings;
}
Utils::FileName AndroidManager::dirPath(const ProjectExplorer::Target *target)
Utils::FilePath AndroidManager::dirPath(const ProjectExplorer::Target *target)
{
if (target->activeBuildConfiguration())
return target->activeBuildConfiguration()->buildDirectory().pathAppended(Constants::ANDROID_BUILDDIRECTORY);
return Utils::FileName();
return Utils::FilePath();
}
Utils::FileName AndroidManager::apkPath(const ProjectExplorer::Target *target)
Utils::FilePath AndroidManager::apkPath(const ProjectExplorer::Target *target)
{
QTC_ASSERT(target, return Utils::FileName());
QTC_ASSERT(target, return Utils::FilePath());
auto buildApkStep = AndroidBuildApkStep::findInBuild(target->activeBuildConfiguration());
if (!buildApkStep)
return Utils::FileName();
return Utils::FilePath();
QString apkPath("build/outputs/apk/android-build-");
if (buildApkStep->signPackage())
@@ -316,13 +316,13 @@ Utils::FileName AndroidManager::apkPath(const ProjectExplorer::Target *target)
return dirPath(target).pathAppended(apkPath);
}
Utils::FileName AndroidManager::manifestSourcePath(ProjectExplorer::Target *target)
Utils::FilePath AndroidManager::manifestSourcePath(ProjectExplorer::Target *target)
{
if (const ProjectNode *node = currentProjectNode(target)) {
const QString packageSource
= node->data(Android::Constants::AndroidPackageSourceDir).toString();
if (!packageSource.isEmpty()) {
const FileName manifest = FileName::fromUserInput(packageSource + "/AndroidManifest.xml");
const FilePath manifest = FilePath::fromUserInput(packageSource + "/AndroidManifest.xml");
if (manifest.exists())
return manifest;
}
@@ -330,20 +330,20 @@ Utils::FileName AndroidManager::manifestSourcePath(ProjectExplorer::Target *targ
return manifestPath(target);
}
Utils::FileName AndroidManager::manifestPath(ProjectExplorer::Target *target)
Utils::FilePath AndroidManager::manifestPath(ProjectExplorer::Target *target)
{
QVariant manifest = target->namedSettings(AndroidManifestName);
if (manifest.isValid())
return manifest.value<FileName>();
return manifest.value<FilePath>();
return dirPath(target).pathAppended(AndroidManifestName);
}
void AndroidManager::setManifestPath(Target *target, const FileName &path)
void AndroidManager::setManifestPath(Target *target, const FilePath &path)
{
target->setNamedSettings(AndroidManifestName, QVariant::fromValue(path));
}
Utils::FileName AndroidManager::defaultPropertiesPath(ProjectExplorer::Target *target)
Utils::FilePath AndroidManager::defaultPropertiesPath(ProjectExplorer::Target *target)
{
return dirPath(target).pathAppended(AndroidDefaultPropertiesName);
}
@@ -440,7 +440,7 @@ static void raiseError(const QString &reason)
QMessageBox::critical(nullptr, AndroidManager::tr("Error creating Android templates."), reason);
}
static bool openXmlFile(QDomDocument &doc, const Utils::FileName &fileName)
static bool openXmlFile(QDomDocument &doc, const Utils::FilePath &fileName)
{
QFile f(fileName.toString());
if (!f.open(QIODevice::ReadOnly))
@@ -643,12 +643,12 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target)
const QString sourceDirName = node->data(Constants::AndroidPackageSourceDir).toString();
QFileInfo sourceDirInfo(sourceDirName);
const FileName packageSourceDir = FileName::fromString(sourceDirInfo.canonicalFilePath())
const FilePath packageSourceDir = FilePath::fromString(sourceDirInfo.canonicalFilePath())
.pathAppended("gradlew");
if (!packageSourceDir.exists())
return false;
const FileName wrapperProps = packageSourceDir.pathAppended("gradle/wrapper/gradle-wrapper.properties");
const FilePath wrapperProps = packageSourceDir.pathAppended("gradle/wrapper/gradle-wrapper.properties");
if (wrapperProps.exists()) {
GradleProperties wrapperProperties = readGradleProperties(wrapperProps.toString());
QString distributionUrl = QString::fromLocal8Bit(wrapperProperties["distributionUrl"]);
@@ -661,7 +661,7 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target)
GradleProperties localProperties;
localProperties["sdk.dir"] = AndroidConfigurations::currentConfig().sdkLocation().toString().toLocal8Bit();
const FileName localPropertiesFile = packageSourceDir.pathAppended("local.properties");
const FilePath localPropertiesFile = packageSourceDir.pathAppended("local.properties");
if (!mergeGradleProperties(localPropertiesFile.toString(), localProperties))
return false;
@@ -680,10 +680,10 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target)
return mergeGradleProperties(gradlePropertiesPath, gradleProperties);
}
int AndroidManager::findApiLevel(const Utils::FileName &platformPath)
int AndroidManager::findApiLevel(const Utils::FilePath &platformPath)
{
int apiLevel = -1;
const Utils::FileName propertiesPath = platformPath.pathAppended("/source.properties");
const Utils::FilePath propertiesPath = platformPath.pathAppended("/source.properties");
if (propertiesPath.exists()) {
QSettings sdkProperties(propertiesPath.toString(), QSettings::IniFormat);
bool validInt = false;

View File

@@ -40,7 +40,7 @@ class Kit;
class Target;
}
namespace Utils { class FileName; }
namespace Utils { class FilePath; }
namespace Android {
@@ -66,10 +66,10 @@ class ANDROID_EXPORT AndroidManager : public QObject
public:
static QString packageName(ProjectExplorer::Target *target);
static QString packageName(const Utils::FileName &manifestFile);
static QString packageName(const Utils::FilePath &manifestFile);
static bool packageInstalled(const QString &deviceSerial, const QString &packageName);
static int packageVersionCode(const QString &deviceSerial, const QString &packageName);
static void apkInfo(const Utils::FileName &apkPath,
static void apkInfo(const Utils::FilePath &apkPath,
QString *packageName = nullptr,
int *version = nullptr,
QString *activityPath = nullptr);
@@ -89,12 +89,12 @@ public:
static QString targetArch(const ProjectExplorer::Target *target);
static Utils::FileName dirPath(const ProjectExplorer::Target *target);
static Utils::FileName manifestPath(ProjectExplorer::Target *target);
static void setManifestPath(ProjectExplorer::Target *target, const Utils::FileName &path);
static Utils::FileName manifestSourcePath(ProjectExplorer::Target *target);
static Utils::FileName defaultPropertiesPath(ProjectExplorer::Target *target);
static Utils::FileName apkPath(const ProjectExplorer::Target *target);
static Utils::FilePath dirPath(const ProjectExplorer::Target *target);
static Utils::FilePath manifestPath(ProjectExplorer::Target *target);
static void setManifestPath(ProjectExplorer::Target *target, const Utils::FilePath &path);
static Utils::FilePath manifestSourcePath(ProjectExplorer::Target *target);
static Utils::FilePath defaultPropertiesPath(ProjectExplorer::Target *target);
static Utils::FilePath apkPath(const ProjectExplorer::Target *target);
static QPair<int, int> apiLevelRange();
static QString androidNameForApiLevel(int x);
@@ -107,7 +107,7 @@ public:
static bool checkCertificateExists(const QString &keystorePath, const QString &keystorePasswd,
const QString &alias);
static bool updateGradleProperties(ProjectExplorer::Target *target);
static int findApiLevel(const Utils::FileName &platformPath);
static int findApiLevel(const Utils::FilePath &platformPath);
static QProcess *runAdbCommandDetached(const QStringList &args, QString *err = nullptr,
bool deleteOnFinish = false);

View File

@@ -85,7 +85,7 @@ bool checkPackageName(const QString &packageName)
return QRegExp(packageNameRegExp).exactMatch(packageName);
}
Project *androidProject(const Utils::FileName &fileName)
Project *androidProject(const Utils::FilePath &fileName)
{
for (Project *project : SessionManager::projects()) {
if (!project->activeTarget())
@@ -604,7 +604,7 @@ void AndroidManifestEditorWidget::preSave()
void AndroidManifestEditorWidget::postSave()
{
const Utils::FileName docPath = m_textEditorWidget->textDocument()->filePath();
const Utils::FilePath docPath = m_textEditorWidget->textDocument()->filePath();
ProjectExplorer::Project *project = androidProject(docPath);
if (project) {
if (Target *target = project->activeTarget()) {

View File

@@ -100,7 +100,7 @@ void AndroidPackageInstallationStep::doRun()
{
QString error;
foreach (const QString &dir, m_androidDirsToClean) {
FileName androidDir = FileName::fromString(dir);
FilePath androidDir = FilePath::fromString(dir);
if (!dir.isEmpty() && androidDir.exists()) {
emit addOutput(tr("Removing directory %1").arg(dir), OutputFormat::NormalMessage);
if (!FileUtils::removeRecursively(androidDir, &error)) {

View File

@@ -223,7 +223,7 @@ private:
AndroidSdkManager &m_sdkManager;
const AndroidConfig &m_config;
AndroidSdkPackageList m_allPackages;
FileName lastSdkManagerPath;
FilePath lastSdkManagerPath;
QString m_licenseTextCache;
QByteArray m_licenseUserInput;
mutable QReadWriteLock m_licenseInputLock;
@@ -243,7 +243,7 @@ class SdkManagerOutputParser
QStringList headerParts;
QVersionNumber revision;
QString description;
Utils::FileName installedLocation;
Utils::FilePath installedLocation;
QMap<QString, QString> extraData;
};
@@ -612,7 +612,7 @@ bool SdkManagerOutputParser::parseAbstractData(SdkManagerOutputParser::GenericPa
for (const auto &key: qAsConst(extraKeys)) {
if (valueForKey(key, line, &value)) {
if (key == installLocationKey)
output.installedLocation = Utils::FileName::fromString(value);
output.installedLocation = Utils::FilePath::fromString(value);
else if (key == revisionKey)
output.revision = QVersionNumber::fromString(value);
else if (key == descriptionKey)

View File

@@ -69,7 +69,7 @@ const QString &AndroidSdkPackage::sdkStylePath() const
return m_sdkStylePath;
}
const Utils::FileName &AndroidSdkPackage::installedLocation() const
const Utils::FilePath &AndroidSdkPackage::installedLocation() const
{
return m_installedLocation;
}
@@ -89,7 +89,7 @@ void AndroidSdkPackage::setState(AndroidSdkPackage::PackageState state)
m_state = state;
}
void AndroidSdkPackage::setInstalledLocation(const Utils::FileName &path)
void AndroidSdkPackage::setInstalledLocation(const Utils::FilePath &path)
{
m_installedLocation = path;
if (m_installedLocation.exists())

View File

@@ -77,13 +77,13 @@ public:
const QVersionNumber &revision() const;
PackageState state() const;
const QString &sdkStylePath() const;
const Utils::FileName &installedLocation() const;
const Utils::FilePath &installedLocation() const;
protected:
void setDisplayText(const QString &str);
void setDescriptionText(const QString &str);
void setState(PackageState state);
void setInstalledLocation(const Utils::FileName &path);
void setInstalledLocation(const Utils::FilePath &path);
virtual void updatePackageDetails();
@@ -93,7 +93,7 @@ private:
QVersionNumber m_revision;
PackageState m_state = PackageState::Unknown;
QString m_sdkStylePath;
Utils::FileName m_installedLocation;
Utils::FilePath m_installedLocation;
friend class Internal::SdkManagerOutputParser;
friend class Internal::AndroidToolOutputParser;

View File

@@ -371,28 +371,28 @@ void AndroidSettingsWidget::saveSettings()
void AndroidSettingsWidget::validateJdk()
{
auto javaPath = Utils::FileName::fromUserInput(m_ui->OpenJDKLocationPathChooser->rawPath());
auto javaPath = Utils::FilePath::fromUserInput(m_ui->OpenJDKLocationPathChooser->rawPath());
m_androidConfig.setOpenJDKLocation(javaPath);
bool jdkPathExists = m_androidConfig.openJDKLocation().exists();
auto summaryWidget = static_cast<SummaryWidget *>(m_ui->javaDetailsWidget->widget());
summaryWidget->setPointValid(JavaPathExistsRow, jdkPathExists);
const Utils::FileName bin = m_androidConfig.openJDKLocation().pathAppended("bin/javac" QTC_HOST_EXE_SUFFIX);
const Utils::FilePath bin = m_androidConfig.openJDKLocation().pathAppended("bin/javac" QTC_HOST_EXE_SUFFIX);
summaryWidget->setPointValid(JavaJdkValidRow, jdkPathExists && bin.exists());
updateUI();
}
void AndroidSettingsWidget::validateNdk()
{
auto ndkPath = Utils::FileName::fromUserInput(m_ui->NDKLocationPathChooser->rawPath());
auto ndkPath = Utils::FilePath::fromUserInput(m_ui->NDKLocationPathChooser->rawPath());
m_androidConfig.setNdkLocation(ndkPath);
auto summaryWidget = static_cast<SummaryWidget *>(m_ui->androidDetailsWidget->widget());
summaryWidget->setPointValid(NdkPathExistsRow, m_androidConfig.ndkLocation().exists());
const Utils::FileName ndkPlatformsDir = ndkPath.pathAppended("platforms");
const Utils::FileName ndkToolChainsDir = ndkPath.pathAppended("toolchains");
const Utils::FileName ndkSourcesDir = ndkPath.pathAppended("sources/cxx-stl");
const Utils::FilePath ndkPlatformsDir = ndkPath.pathAppended("platforms");
const Utils::FilePath ndkToolChainsDir = ndkPath.pathAppended("toolchains");
const Utils::FilePath ndkSourcesDir = ndkPath.pathAppended("sources/cxx-stl");
summaryWidget->setPointValid(NdkDirStructureRow,
ndkPlatformsDir.exists()
&& ndkToolChainsDir.exists()
@@ -405,7 +405,7 @@ void AndroidSettingsWidget::validateNdk()
void AndroidSettingsWidget::onSdkPathChanged()
{
auto sdkPath = Utils::FileName::fromUserInput(m_ui->SDKLocationPathChooser->rawPath());
auto sdkPath = Utils::FilePath::fromUserInput(m_ui->SDKLocationPathChooser->rawPath());
m_androidConfig.setSdkLocation(sdkPath);
// Package reload will trigger validateSdk.
m_sdkManager->reloadPackages();

View File

@@ -60,7 +60,7 @@ static const QHash<QString, Abi> ClangTargets = {
static const QList<Core::Id> LanguageIds = {ProjectExplorer::Constants::CXX_LANGUAGE_ID,
ProjectExplorer::Constants::C_LANGUAGE_ID};
static ToolChain *findToolChain(Utils::FileName &compilerPath, Core::Id lang, const QString &target,
static ToolChain *findToolChain(Utils::FilePath &compilerPath, Core::Id lang, const QString &target,
CToolChainList &alreadyKnown)
{
ToolChain * tc = Utils::findOrDefault(alreadyKnown, [target, compilerPath, lang](ToolChain *tc) {
@@ -92,11 +92,11 @@ void AndroidToolChain::addToEnvironment(Environment &env) const
{
env.set(QLatin1String("ANDROID_NDK_HOST"),
AndroidConfigurations::currentConfig().toolchainHost());
const Utils::FileName javaHome = AndroidConfigurations::currentConfig().openJDKLocation();
const Utils::FilePath javaHome = AndroidConfigurations::currentConfig().openJDKLocation();
if (!javaHome.exists()) {
env.set(QLatin1String("JAVA_HOME"), javaHome.toString());
const FileName javaBin = javaHome.pathAppended("bin");
if (!Utils::contains(env.path(), [&javaBin](const Utils::FileName &p) { return p == javaBin; }))
const FilePath javaBin = javaHome.pathAppended("bin");
if (!Utils::contains(env.path(), [&javaBin](const Utils::FilePath &p) { return p == javaBin; }))
env.prependOrSetPath(javaBin.toUserOutput());
}
env.set(QLatin1String("ANDROID_HOME"),
@@ -105,13 +105,13 @@ void AndroidToolChain::addToEnvironment(Environment &env) const
AndroidConfigurations::currentConfig().sdkLocation().toString());
}
FileName AndroidToolChain::suggestedDebugger() const
FilePath AndroidToolChain::suggestedDebugger() const
{
// TODO: Make use of LLDB if available.
return AndroidConfigurations::currentConfig().gdbPath(targetAbi());
}
FileName AndroidToolChain::suggestedGdbServer() const
FilePath AndroidToolChain::suggestedGdbServer() const
{
return AndroidConfigurations::currentConfig().gdbServer(targetAbi());
}
@@ -128,11 +128,11 @@ QStringList AndroidToolChain::suggestedMkspecList() const
return {"android-g++", "android-clang"};
}
FileName AndroidToolChain::makeCommand(const Environment &env) const
FilePath AndroidToolChain::makeCommand(const Environment &env) const
{
Q_UNUSED(env);
FileName makePath = AndroidConfigurations::currentConfig().makePath();
return makePath.exists() ? makePath : FileName::fromString("make");
FilePath makePath = AndroidConfigurations::currentConfig().makePath();
return makePath.exists() ? makePath : FilePath::fromString("make");
}
GccToolChain::DetectedAbisResult AndroidToolChain::detectSupportedAbis() const
@@ -162,7 +162,7 @@ ToolChainList AndroidToolChainFactory::autoDetect(CToolChainList &alreadyKnown)
return autodetectToolChainsForNdk(alreadyKnown);
}
static FileName clangPlusPlusPath(const FileName &clangPath)
static FilePath clangPlusPlusPath(const FilePath &clangPath)
{
return clangPath.parentDir().pathAppended(
HostOsInfo::withExecutableSuffix(
@@ -172,7 +172,7 @@ static FileName clangPlusPlusPath(const FileName &clangPath)
ToolChainList AndroidToolChainFactory::autodetectToolChainsForNdk(CToolChainList &alreadyKnown)
{
QList<ToolChain *> result;
FileName clangPath = AndroidConfigurations::currentConfig().clangPath();
FilePath clangPath = AndroidConfigurations::currentConfig().clangPath();
if (!clangPath.exists()) {
qCDebug(androidTCLog) << "Clang toolchains detection fails. Can not find Clang"<< clangPath;
return result;
@@ -182,7 +182,7 @@ ToolChainList AndroidToolChainFactory::autodetectToolChainsForNdk(CToolChainList
<< AndroidConfigurations::currentConfig().ndkLocation();
for (const Core::Id &lang : LanguageIds) {
FileName compilerCommand = clangPath;
FilePath compilerCommand = clangPath;
if (lang == ProjectExplorer::Constants::CXX_LANGUAGE_ID)
compilerCommand = clangPlusPlusPath(clangPath);

View File

@@ -42,10 +42,10 @@ public:
bool isValid() const override;
void addToEnvironment(Utils::Environment &env) const override;
Utils::FileName suggestedDebugger() const override;
Utils::FileName suggestedGdbServer() const;
Utils::FilePath suggestedDebugger() const override;
Utils::FilePath suggestedGdbServer() const;
QStringList suggestedMkspecList() const override;
Utils::FileName makeCommand(const Utils::Environment &environment) const override;
Utils::FilePath makeCommand(const Utils::Environment &environment) const override;
bool fromMap(const QVariantMap &data) override;
protected:
@@ -70,7 +70,7 @@ public:
{
public:
Core::Id language;
Utils::FileName compilerCommand;
Utils::FilePath compilerCommand;
ProjectExplorer::Abi abi;
QString version;
};

View File

@@ -46,7 +46,7 @@ using namespace Utils;
class AndroidToolOutputParser
{
public:
void parseTargetListing(const QString &output, const FileName &sdkLocation,
void parseTargetListing(const QString &output, const FilePath &sdkLocation,
SdkPlatformList &platformList);
QList<SdkPlatform> m_installedPlatforms;
@@ -57,7 +57,7 @@ public:
environment. Returns \c true for successful execution. Command's output is copied to \a
output.
*/
static bool androidToolCommand(Utils::FileName toolPath, const QStringList &args,
static bool androidToolCommand(Utils::FilePath toolPath, const QStringList &args,
const QProcessEnvironment &environment, QString *output)
{
QString androidToolPath = toolPath.toString();
@@ -143,7 +143,7 @@ QFuture<AndroidDeviceInfoList> AndroidToolManager::androidVirtualDevicesFuture()
AndroidConfigurations::toolsEnvironment(m_config));
}
CreateAvdInfo AndroidToolManager::createAvdImpl(CreateAvdInfo info, FileName androidToolPath,
CreateAvdInfo AndroidToolManager::createAvdImpl(CreateAvdInfo info, FilePath androidToolPath,
QProcessEnvironment env)
{
QProcess proc;
@@ -195,8 +195,8 @@ CreateAvdInfo AndroidToolManager::createAvdImpl(CreateAvdInfo info, FileName and
return info;
}
AndroidDeviceInfoList AndroidToolManager::androidVirtualDevices(const Utils::FileName &androidTool,
const FileName &sdkLocationPath,
AndroidDeviceInfoList AndroidToolManager::androidVirtualDevices(const Utils::FilePath &androidTool,
const FilePath &sdkLocationPath,
const QProcessEnvironment &env)
{
AndroidDeviceInfoList devices;
@@ -274,7 +274,7 @@ AndroidDeviceInfoList AndroidToolManager::androidVirtualDevices(const Utils::Fil
}
void AndroidToolOutputParser::parseTargetListing(const QString &output,
const Utils::FileName &sdkLocation,
const Utils::FilePath &sdkLocation,
SdkPlatformList &platformList)
{
auto addSystemImage = [](const QStringList& abiList, SdkPlatform *platform) {
@@ -291,7 +291,7 @@ void AndroidToolOutputParser::parseTargetListing(const QString &output,
QVersionNumber revision;
int apiLevel = -1;
QString description;
Utils::FileName installedLocation;
Utils::FilePath installedLocation;
void clear() {
abiList.clear();

View File

@@ -58,10 +58,10 @@ public:
// Helper methods
private:
static CreateAvdInfo createAvdImpl(CreateAvdInfo info, Utils::FileName androidToolPath,
static CreateAvdInfo createAvdImpl(CreateAvdInfo info, Utils::FilePath androidToolPath,
QProcessEnvironment env);
static AndroidDeviceInfoList androidVirtualDevices(const Utils::FileName &androidTool,
const Utils::FileName &sdkLlocationPath,
static AndroidDeviceInfoList androidVirtualDevices(const Utils::FilePath &androidTool,
const Utils::FilePath &sdkLlocationPath,
const QProcessEnvironment &env);
private:
const AndroidConfig &m_config;

View File

@@ -324,22 +324,22 @@ void CreateAndroidManifestWizard::createAndroidTemplateFiles()
if (version->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0)) {
const QString src(version->qmakeProperty("QT_INSTALL_PREFIX")
.append(QLatin1String("/src/android/java/AndroidManifest.xml")));
FileUtils::copyRecursively(FileName::fromString(src),
FileName::fromString(m_directory + QLatin1String("/AndroidManifest.xml")),
FileUtils::copyRecursively(FilePath::fromString(src),
FilePath::fromString(m_directory + QLatin1String("/AndroidManifest.xml")),
nullptr, [this, &addedFiles](QFileInfo src, QFileInfo dst, QString *){return copy(src, dst, &addedFiles);});
} else {
const QString src(version->qmakeProperty("QT_INSTALL_PREFIX")
.append(QLatin1String("/src/android/templates")));
FileUtils::copyRecursively(FileName::fromString(src),
FileName::fromString(m_directory),
FileUtils::copyRecursively(FilePath::fromString(src),
FilePath::fromString(m_directory),
nullptr, [this, &addedFiles](QFileInfo src, QFileInfo dst, QString *){return copy(src, dst, &addedFiles);});
if (m_copyGradle) {
FileName gradlePath = FileName::fromString(version->qmakeProperty("QT_INSTALL_PREFIX").append(QLatin1String("/src/3rdparty/gradle")));
FilePath gradlePath = FilePath::fromString(version->qmakeProperty("QT_INSTALL_PREFIX").append(QLatin1String("/src/3rdparty/gradle")));
if (!gradlePath.exists())
gradlePath = AndroidConfigurations::currentConfig().sdkLocation().pathAppended("/tools/templates/gradle/wrapper");
FileUtils::copyRecursively(gradlePath, FileName::fromString(m_directory),
FileUtils::copyRecursively(gradlePath, FilePath::fromString(m_directory),
nullptr, [this, &addedFiles](QFileInfo src, QFileInfo dst, QString *){return copy(src, dst, &addedFiles);});
}

View File

@@ -53,12 +53,12 @@ void JavaParser::setProjectFileList(const QStringList &fileList)
m_fileList = fileList;
}
void JavaParser::setBuildDirectory(const Utils::FileName &buildDirectory)
void JavaParser::setBuildDirectory(const Utils::FilePath &buildDirectory)
{
m_buildDirectory = buildDirectory;
}
void JavaParser::setSourceDirectory(const Utils::FileName &sourceDirectory)
void JavaParser::setSourceDirectory(const Utils::FilePath &sourceDirectory)
{
m_sourceDirectory = sourceDirectory;
}
@@ -70,16 +70,16 @@ void JavaParser::parse(const QString &line)
int lineno = m_javaRegExp.cap(3).toInt(&ok);
if (!ok)
lineno = -1;
Utils::FileName file = Utils::FileName::fromUserInput(m_javaRegExp.cap(2));
Utils::FilePath file = Utils::FilePath::fromUserInput(m_javaRegExp.cap(2));
if (file.isChildOf(m_buildDirectory)) {
Utils::FileName relativePath = file.relativeChildPath(m_buildDirectory);
Utils::FilePath relativePath = file.relativeChildPath(m_buildDirectory);
file = m_sourceDirectory.pathAppended(relativePath.toString());
}
if (file.toFileInfo().isRelative()) {
for (int i = 0; i < m_fileList.size(); i++)
if (m_fileList[i].endsWith(file.toString())) {
file = Utils::FileName::fromString(m_fileList[i]);
file = Utils::FilePath::fromString(m_fileList[i]);
break;
}
}

View File

@@ -43,16 +43,16 @@ public:
void stdError(const QString &line) override;
void setProjectFileList(const QStringList &fileList);
void setBuildDirectory(const Utils::FileName &buildDirectory);
void setSourceDirectory(const Utils::FileName &sourceDirectory);
void setBuildDirectory(const Utils::FilePath &buildDirectory);
void setSourceDirectory(const Utils::FilePath &sourceDirectory);
private:
void parse(const QString &line);
QRegExp m_javaRegExp;
QStringList m_fileList;
Utils::FileName m_sourceDirectory;
Utils::FileName m_buildDirectory;
Utils::FilePath m_sourceDirectory;
Utils::FilePath m_buildDirectory;
};
} // namespace Internal

View File

@@ -250,7 +250,7 @@ void AutotestPlugin::onRunFileTriggered()
if (!document)
return;
const Utils::FileName &fileName = document->filePath();
const Utils::FilePath &fileName = document->filePath();
if (fileName.isEmpty())
return;

View File

@@ -285,7 +285,7 @@ QList<TestConfiguration *> GTestTreeItem::getSelectedTestConfigurations() const
return getTestConfigurations(false);
}
QList<TestConfiguration *> GTestTreeItem::getTestConfigurationsForFile(const Utils::FileName &fileName) const
QList<TestConfiguration *> GTestTreeItem::getTestConfigurationsForFile(const Utils::FilePath &fileName) const
{
QList<TestConfiguration *> result;
ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject();

View File

@@ -57,7 +57,7 @@ public:
TestConfiguration *debugConfiguration() const override;
QList<TestConfiguration *> getAllTestConfigurations() const override;
QList<TestConfiguration *> getSelectedTestConfigurations() const override;
QList<TestConfiguration *> getTestConfigurationsForFile(const Utils::FileName &fileName) const override;
QList<TestConfiguration *> getTestConfigurationsForFile(const Utils::FilePath &fileName) const override;
TestTreeItem *find(const TestParseResult *result) override;
TestTreeItem *findChild(const TestTreeItem *other) override;
bool modify(const TestParseResult *result) override;

View File

@@ -234,7 +234,7 @@ QList<TestConfiguration *> QtTestTreeItem::getSelectedTestConfigurations() const
return result;
}
QList<TestConfiguration *> QtTestTreeItem::getTestConfigurationsForFile(const Utils::FileName &fileName) const
QList<TestConfiguration *> QtTestTreeItem::getTestConfigurationsForFile(const Utils::FilePath &fileName) const
{
QList<TestConfiguration *> result;

View File

@@ -45,7 +45,7 @@ public:
TestConfiguration *debugConfiguration() const override;
QList<TestConfiguration *> getAllTestConfigurations() const override;
QList<TestConfiguration *> getSelectedTestConfigurations() const override;
QList<TestConfiguration *> getTestConfigurationsForFile(const Utils::FileName &fileName) const override;
QList<TestConfiguration *> getTestConfigurationsForFile(const Utils::FilePath &fileName) const override;
TestTreeItem *find(const TestParseResult *result) override;
TestTreeItem *findChild(const TestTreeItem *other) override;
bool modify(const TestParseResult *result) override;

View File

@@ -144,7 +144,7 @@ QList<QmlJS::Document::Ptr> QuickTestParser::scanDirectoryForQuickTestQmlFiles(c
// make sure even files not listed in pro file are available inside the snapshot
QFutureInterface<void> future;
QmlJS::PathsAndLanguages paths;
paths.maybeInsert(Utils::FileName::fromString(srcDir), QmlJS::Dialect::Qml);
paths.maybeInsert(Utils::FilePath::fromString(srcDir), QmlJS::Dialect::Qml);
QmlJS::ModelManagerInterface::importScan(future, qmlJsMM->workingCopy(), paths, qmlJsMM,
false /*emitDocumentChanges*/, false /*onlyTheLib*/, true /*forceRescan*/ );
@@ -276,7 +276,7 @@ void QuickTestParser::handleDirectoryChanged(const QString &directory)
});
if (timestampChanged) {
QmlJS::PathsAndLanguages paths;
paths.maybeInsert(Utils::FileName::fromString(directory), QmlJS::Dialect::Qml);
paths.maybeInsert(Utils::FilePath::fromString(directory), QmlJS::Dialect::Qml);
QFutureInterface<void> future;
QmlJS::ModelManagerInterface *qmlJsMM = QmlJS::ModelManagerInterface::instance();
QmlJS::ModelManagerInterface::importScan(future, qmlJsMM->workingCopy(), paths, qmlJsMM,

View File

@@ -280,7 +280,7 @@ QList<TestConfiguration *> QuickTestTreeItem::getSelectedTestConfigurations() co
return result;
}
QList<TestConfiguration *> QuickTestTreeItem::getTestConfigurationsForFile(const Utils::FileName &fileName) const
QList<TestConfiguration *> QuickTestTreeItem::getTestConfigurationsForFile(const Utils::FilePath &fileName) const
{
QList<TestConfiguration *> result;
ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject();

View File

@@ -45,7 +45,7 @@ public:
TestConfiguration *debugConfiguration() const override;
QList<TestConfiguration *> getAllTestConfigurations() const override;
QList<TestConfiguration *> getSelectedTestConfigurations() const override;
QList<TestConfiguration *> getTestConfigurationsForFile(const Utils::FileName &fileName) const override;
QList<TestConfiguration *> getTestConfigurationsForFile(const Utils::FilePath &fileName) const override;
TestTreeItem *find(const TestParseResult *result) override;
TestTreeItem *findChild(const TestTreeItem *other) override;
bool modify(const TestParseResult *result) override;

View File

@@ -186,7 +186,7 @@ void TestCodeParser::onDocumentUpdated(const QString &fileName, bool isQmlFile)
if (!project)
return;
// Quick tests: qml files aren't necessarily listed inside project files
if (!isQmlFile && !project->isKnownFile(Utils::FileName::fromString(fileName)))
if (!isQmlFile && !project->isKnownFile(Utils::FilePath::fromString(fileName)))
return;
scanForTests(QStringList(fileName));
@@ -321,7 +321,7 @@ void TestCodeParser::scanForTests(const QStringList &fileList, ITestParser *pars
return;
QStringList list;
if (isFullParse) {
list = Utils::transform(project->files(Project::SourceFiles), &Utils::FileName::toString);
list = Utils::transform(project->files(Project::SourceFiles), &Utils::FilePath::toString);
if (list.isEmpty()) {
// at least project file should be there, but might happen if parsing current project
// takes too long, especially when opening sessions holding multiple projects

View File

@@ -29,7 +29,7 @@
namespace Autotest {
namespace Internal {
TestEditorMark::TestEditorMark(QPersistentModelIndex item, const Utils::FileName &file, int line)
TestEditorMark::TestEditorMark(QPersistentModelIndex item, const Utils::FilePath &file, int line)
: TextEditor::TextMark(file, line, Core::Id(Constants::TASK_MARK_ID)),
m_item(item)
{

View File

@@ -35,7 +35,7 @@ namespace Internal {
class TestEditorMark : public TextEditor::TextMark
{
public:
TestEditorMark(QPersistentModelIndex item, const Utils::FileName &file, int line);
TestEditorMark(QPersistentModelIndex item, const Utils::FilePath &file, int line);
bool isClickable() const override { return true; }
void clicked() override;

View File

@@ -671,7 +671,7 @@ void TestResultsPane::createMarks(const QModelIndex &parent)
bool isLocationItem = result->result() == ResultType::MessageLocation;
if (interested.contains(result->result())
|| (isLocationItem && interested.contains(parentType))) {
const Utils::FileName fileName = Utils::FileName::fromString(result->fileName());
const Utils::FilePath fileName = Utils::FilePath::fromString(result->fileName());
TestEditorMark *mark = new TestEditorMark(index, fileName, result->line());
mark->setIcon(index.data(Qt::DecorationRole).value<QIcon>());
mark->setColor(Utils::Theme::OutputPanes_TestFailTextColor);

View File

@@ -259,7 +259,7 @@ QList<TestConfiguration *> TestTreeItem::getSelectedTestConfigurations() const
return QList<TestConfiguration *>();
}
QList<TestConfiguration *> TestTreeItem::getTestConfigurationsForFile(const Utils::FileName &) const
QList<TestConfiguration *> TestTreeItem::getTestConfigurationsForFile(const Utils::FilePath &) const
{
return QList<TestConfiguration *>();
}
@@ -368,9 +368,9 @@ QSet<QString> TestTreeItem::dependingInternalTargets(CppTools::CppModelManager *
bool wasHeader;
const QString correspondingFile
= CppTools::correspondingHeaderOrSource(file, &wasHeader, CppTools::CacheUsage::ReadOnly);
const Utils::FileNameList dependingFiles = snapshot.filesDependingOn(
const Utils::FilePathList dependingFiles = snapshot.filesDependingOn(
wasHeader ? file : correspondingFile);
for (const Utils::FileName &fn : dependingFiles) {
for (const Utils::FilePath &fn : dependingFiles) {
for (const CppTools::ProjectPart::Ptr &part : cppMM->projectPart(fn))
result.insert(part->buildSystemTarget);
}

View File

@@ -42,7 +42,7 @@ namespace {
}
namespace CppTools { class CppModelManager; }
namespace Utils { class FileName; }
namespace Utils { class FilePath; }
namespace Autotest {
namespace Internal {
@@ -116,7 +116,7 @@ public:
TestConfiguration *asConfiguration(TestRunMode mode) const;
virtual QList<TestConfiguration *> getAllTestConfigurations() const;
virtual QList<TestConfiguration *> getSelectedTestConfigurations() const;
virtual QList<TestConfiguration *> getTestConfigurationsForFile(const Utils::FileName &fileName) const;
virtual QList<TestConfiguration *> getTestConfigurationsForFile(const Utils::FilePath &fileName) const;
virtual bool lessThan(const TestTreeItem *other, SortMode mode) const;
virtual TestTreeItem *find(const TestParseResult *result) = 0;
virtual TestTreeItem *findChild(const TestTreeItem *other) = 0;

View File

@@ -158,7 +158,7 @@ QList<TestConfiguration *> TestTreeModel::getSelectedTests() const
return result;
}
QList<TestConfiguration *> TestTreeModel::getTestsForFile(const Utils::FileName &fileName) const
QList<TestConfiguration *> TestTreeModel::getTestsForFile(const Utils::FilePath &fileName) const
{
QList<TestConfiguration *> result;
for (Utils::TreeItem *frameworkRoot : *rootItem())

View File

@@ -56,7 +56,7 @@ public:
bool hasTests() const;
QList<TestConfiguration *> getAllTestCases() const;
QList<TestConfiguration *> getSelectedTests() const;
QList<TestConfiguration *> getTestsForFile(const Utils::FileName &fileName) const;
QList<TestConfiguration *> getTestsForFile(const Utils::FilePath &fileName) const;
QList<TestTreeItem *> testItemsByName(const QString &testName);
void syncTestFrameworks();
void rebuild(const QList<Core::Id> &frameworkIds);

View File

@@ -78,7 +78,7 @@ bool AutogenStep::init()
pp->setMacroExpander(bc->macroExpander());
pp->setEnvironment(bc->environment());
pp->setWorkingDirectory(bc->target()->project()->projectDirectory());
pp->setCommand(Utils::FileName::fromString("./autogen.sh"));
pp->setCommand(Utils::FilePath::fromString("./autogen.sh"));
pp->setArguments(m_additionalArgumentsAspect->value());
pp->resolveAll();
@@ -122,7 +122,7 @@ BuildStepConfigWidget *AutogenStep::createConfigWidget()
param.setMacroExpander(bc->macroExpander());
param.setEnvironment(bc->environment());
param.setWorkingDirectory(bc->target()->project()->projectDirectory());
param.setCommand(Utils::FileName::fromString("./autogen.sh"));
param.setCommand(Utils::FilePath::fromString("./autogen.sh"));
param.setArguments(m_additionalArgumentsAspect->value());
widget->setSummaryText(param.summary(displayName()));

View File

@@ -76,7 +76,7 @@ bool AutoreconfStep::init()
pp->setMacroExpander(bc->macroExpander());
pp->setEnvironment(bc->environment());
pp->setWorkingDirectory(bc->target()->project()->projectDirectory());
pp->setCommand(Utils::FileName::fromString("autoreconf"));
pp->setCommand(Utils::FilePath::fromString("autoreconf"));
pp->setArguments(m_additionalArgumentsAspect->value());
pp->resolveAll();
@@ -114,7 +114,7 @@ BuildStepConfigWidget *AutoreconfStep::createConfigWidget()
param.setMacroExpander(bc->macroExpander());
param.setEnvironment(bc->environment());
param.setWorkingDirectory(bc->target()->project()->projectDirectory());
param.setCommand(Utils::FileName::fromString("autoreconf"));
param.setCommand(Utils::FilePath::fromString("autoreconf"));
param.setArguments(m_additionalArgumentsAspect->value());
widget->setSummaryText(param.summary(displayName()));

View File

@@ -58,7 +58,7 @@ AutotoolsBuildConfiguration::AutotoolsBuildConfiguration(Target *parent, Core::I
{
// /<foobar> is used so the un-changed check in setBuildDirectory() works correctly.
// The leading / is to avoid the relative the path expansion in BuildConfiguration::buildDirectory.
setBuildDirectory(Utils::FileName::fromString("/<foobar>"));
setBuildDirectory(Utils::FilePath::fromString("/<foobar>"));
setBuildDirectoryHistoryCompleter("AutoTools.BuildDir.History");
setConfigWidgetDisplayName(tr("Autotools Manager"));
}
@@ -116,14 +116,14 @@ QList<BuildInfo> AutotoolsBuildConfigurationFactory::availableBuilds(const Targe
QList<BuildInfo> AutotoolsBuildConfigurationFactory::availableSetups(const Kit *k, const QString &projectPath) const
{
const QString path = QFileInfo(projectPath).absolutePath();
BuildInfo info = createBuildInfo(k, Utils::FileName::fromString(path));
BuildInfo info = createBuildInfo(k, Utils::FilePath::fromString(path));
//: The name of the build configuration created by default for a autotools project.
info.displayName = tr("Default");
return {info};
}
BuildInfo AutotoolsBuildConfigurationFactory::createBuildInfo(const Kit *k,
const Utils::FileName &buildDir) const
const Utils::FilePath &buildDir) const
{
BuildInfo info(this);
info.typeName = tr("Build");

View File

@@ -29,7 +29,7 @@
#include <projectexplorer/buildconfiguration.h>
namespace Utils { class FileName; }
namespace Utils { class FilePath; }
namespace AutotoolsProjectManager {
namespace Internal {
@@ -57,7 +57,7 @@ private:
QList<ProjectExplorer::BuildInfo> availableSetups(const ProjectExplorer::Kit *k,
const QString &projectPath) const override;
ProjectExplorer::BuildInfo createBuildInfo(const ProjectExplorer::Kit *k, const Utils::FileName &buildDir) const;
ProjectExplorer::BuildInfo createBuildInfo(const ProjectExplorer::Kit *k, const Utils::FilePath &buildDir) const;
};
} // namespace Internal

View File

@@ -68,7 +68,7 @@ using namespace AutotoolsProjectManager;
using namespace AutotoolsProjectManager::Internal;
using namespace ProjectExplorer;
AutotoolsProject::AutotoolsProject(const Utils::FileName &fileName) :
AutotoolsProject::AutotoolsProject(const Utils::FilePath &fileName) :
Project(Constants::MAKEFILE_MIMETYPE, fileName),
m_fileWatcher(new Utils::FileSystemWatcher(this)),
m_cppCodeModelUpdater(new CppTools::CppProjectUpdater)
@@ -204,7 +204,7 @@ void AutotoolsProject::makefileParsingFinished()
auto newRoot = std::make_unique<ProjectNode>(projectDirectory());
for (const QString &f : m_files) {
const Utils::FileName path = Utils::FileName::fromString(f);
const Utils::FilePath path = Utils::FilePath::fromString(f);
newRoot->addNestedNode(std::make_unique<FileNode>(path,
FileNode::fileTypeForFileName(path)));
}

View File

@@ -53,7 +53,7 @@ class AutotoolsProject : public ProjectExplorer::Project
Q_OBJECT
public:
explicit AutotoolsProject(const Utils::FileName &fileName);
explicit AutotoolsProject(const Utils::FilePath &fileName);
~AutotoolsProject() override;
QStringList buildTargets() const;

View File

@@ -98,7 +98,7 @@ bool ConfigureStep::init()
pp->setMacroExpander(bc->macroExpander());
pp->setEnvironment(bc->environment());
pp->setWorkingDirectory(bc->buildDirectory());
pp->setCommand(Utils::FileName::fromString(projectDirRelativeToBuildDir(bc) + "configure"));
pp->setCommand(Utils::FilePath::fromString(projectDirRelativeToBuildDir(bc) + "configure"));
pp->setArguments(m_additionalArgumentsAspect->value());
pp->resolveAll();
@@ -159,7 +159,7 @@ void ConfigureStep::updateDetails()
param.setMacroExpander(bc->macroExpander());
param.setEnvironment(bc->environment());
param.setWorkingDirectory(bc->buildDirectory());
param.setCommand(Utils::FileName::fromString(projectDirRelativeToBuildDir(bc) + "configure"));
param.setCommand(Utils::FilePath::fromString(projectDirRelativeToBuildDir(bc) + "configure"));
param.setArguments(m_additionalArgumentsAspect->value());
m_widget->setSummaryText(param.summaryInWorkdir(displayName()));

View File

@@ -53,7 +53,7 @@ static GdbServerProviderManager *m_instance = nullptr;
// GdbServerProviderManager
GdbServerProviderManager::GdbServerProviderManager()
: m_configFile(Utils::FileName::fromString(Core::ICore::userResourcePath() + fileNameKeyC))
: m_configFile(Utils::FilePath::fromString(Core::ICore::userResourcePath() + fileNameKeyC))
, m_factories({new DefaultGdbServerProviderFactory,
new OpenOcdGdbServerProviderFactory,
new StLinkUtilGdbServerProviderFactory})

View File

@@ -73,7 +73,7 @@ private:
Utils::PersistentSettingsWriter *m_writer = nullptr;
QList<GdbServerProvider *> m_providers;
const Utils::FileName m_configFile;
const Utils::FilePath m_configFile;
const QList<GdbServerProviderFactory *> m_factories;
friend class BareMetalPlugin; // for restoreProviders

View File

@@ -97,7 +97,7 @@ void IarParser::amendFilePath()
QString filePath;
while (!m_filePathParts.isEmpty())
filePath.append(m_filePathParts.takeFirst().trimmed());
m_lastTask.setFile(Utils::FileName::fromUserInput(filePath));
m_lastTask.setFile(Utils::FilePath::fromUserInput(filePath));
m_expectFilePath = false;
}
@@ -154,7 +154,7 @@ void IarParser::stdError(const QString &line)
if (match.hasMatch()) {
enum CaptureIndex { FilePathIndex = 1, LineNumberIndex,
MessageTypeIndex, MessageCodeIndex };
const Utils::FileName fileName = Utils::FileName::fromUserInput(
const Utils::FilePath fileName = Utils::FilePath::fromUserInput(
match.captured(FilePathIndex));
const int lineno = match.captured(LineNumberIndex).toInt();
const Task::TaskType type = taskType(match.captured(MessageTypeIndex));
@@ -271,7 +271,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
<< QString()
<< (Tasks() << Task(Task::Error,
QLatin1String("Error in command line: Some error"),
Utils::FileName(),
Utils::FilePath(),
-1,
categoryCompile))
<< QString();
@@ -286,7 +286,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
" Some warning \"foo\" bar\n")
<< (Tasks() << Task(Task::Warning,
QLatin1String("[Pe223]: Some warning \"foo\" bar"),
Utils::FileName::fromUserInput(QLatin1String("c:\\foo\\main.c")),
Utils::FilePath::fromUserInput(QLatin1String("c:\\foo\\main.c")),
63,
categoryCompile))
<< QString();
@@ -306,7 +306,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
QLatin1String("[Pe223]: Some warning\n"
" some_detail;\n"
" ^"),
Utils::FileName::fromUserInput(QLatin1String("c:\\foo\\main.c")),
Utils::FilePath::fromUserInput(QLatin1String("c:\\foo\\main.c")),
63,
categoryCompile))
<< QString();
@@ -322,7 +322,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
" , split\n")
<< (Tasks() << Task(Task::Warning,
QLatin1String("[Pe223]: Some warning, split"),
Utils::FileName::fromUserInput(QLatin1String("c:\\foo\\main.c")),
Utils::FilePath::fromUserInput(QLatin1String("c:\\foo\\main.c")),
63,
categoryCompile))
<< QString();
@@ -336,7 +336,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
" Some error\n")
<< (Tasks() << Task(Task::Error,
QLatin1String("[Pe223]: Some error"),
Utils::FileName::fromUserInput(QLatin1String("c:\\foo\\main.c")),
Utils::FilePath::fromUserInput(QLatin1String("c:\\foo\\main.c")),
63,
categoryCompile))
<< QString();
@@ -356,7 +356,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
QLatin1String("[Pe223]: Some error\n"
" some_detail;\n"
" ^"),
Utils::FileName::fromUserInput(QLatin1String("c:\\foo\\main.c")),
Utils::FilePath::fromUserInput(QLatin1String("c:\\foo\\main.c")),
63,
categoryCompile))
<< QString();
@@ -372,7 +372,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
" , split\n")
<< (Tasks() << Task(Task::Error,
QLatin1String("[Pe223]: Some error, split"),
Utils::FileName::fromUserInput(QLatin1String("c:\\foo\\main.c")),
Utils::FilePath::fromUserInput(QLatin1String("c:\\foo\\main.c")),
63,
categoryCompile))
<< QString();
@@ -390,7 +390,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
"]\n")
<< (Tasks() << Task(Task::Error,
QLatin1String("[Li005]: Some error \"foo\""),
Utils::FileName::fromUserInput(QLatin1String("c:\\foo\\bar\\main.c.o")),
Utils::FilePath::fromUserInput(QLatin1String("c:\\foo\\bar\\main.c.o")),
-1,
categoryCompile))
<< QString();
@@ -410,7 +410,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
QLatin1String("[Su011]: Some error:\n"
" c:\\foo.c\n"
" c:\\bar.c"),
Utils::FileName(),
Utils::FilePath(),
-1,
categoryCompile))
<< QString();
@@ -422,7 +422,7 @@ void BareMetalPlugin::testIarOutputParsers_data()
<< QString::fromLatin1("At end of source Error[Pe040]: Some error \";\"\n")
<< (Tasks() << Task(Task::Error,
QLatin1String("[Pe040]: Some error \";\""),
Utils::FileName(),
Utils::FilePath(),
-1,
categoryCompile))
<< QString();

View File

@@ -60,13 +60,13 @@ namespace Internal {
static const char compilerCommandKeyC[] = "BareMetal.IarToolChain.CompilerPath";
static const char targetAbiKeyC[] = "BareMetal.IarToolChain.TargetAbi";
static bool compilerExists(const FileName &compilerPath)
static bool compilerExists(const FilePath &compilerPath)
{
const QFileInfo fi = compilerPath.toFileInfo();
return fi.exists() && fi.isExecutable() && fi.isFile();
}
static Macros dumpPredefinedMacros(const FileName &compiler, const Core::Id languageId,
static Macros dumpPredefinedMacros(const FilePath &compiler, const Core::Id languageId,
const QStringList &env)
{
if (compiler.isEmpty() || !compiler.toFileInfo().isExecutable())
@@ -108,7 +108,7 @@ static Macros dumpPredefinedMacros(const FileName &compiler, const Core::Id lang
return Macro::toMacros(output);
}
static HeaderPaths dumpHeaderPaths(const FileName &compiler, const Core::Id languageId,
static HeaderPaths dumpHeaderPaths(const FilePath &compiler, const Core::Id languageId,
const QStringList &env)
{
if (!compiler.exists())
@@ -257,7 +257,7 @@ ToolChain::MacroInspectionRunner IarToolChain::createMacroInspectionRunner() con
Environment env = Environment::systemEnvironment();
addToEnvironment(env);
const Utils::FileName compilerCommand = m_compilerCommand;
const Utils::FilePath compilerCommand = m_compilerCommand;
const Core::Id languageId = language();
MacrosCache macrosCache = predefinedMacrosCache();
@@ -299,7 +299,7 @@ ToolChain::BuiltInHeaderPathsRunner IarToolChain::createBuiltInHeaderPathsRunner
Environment env = Environment::systemEnvironment();
addToEnvironment(env);
const Utils::FileName compilerCommand = m_compilerCommand;
const Utils::FilePath compilerCommand = m_compilerCommand;
const Core::Id languageId = language();
HeaderPathsCache headerPaths = headerPathsCache();
@@ -318,7 +318,7 @@ ToolChain::BuiltInHeaderPathsRunner IarToolChain::createBuiltInHeaderPathsRunner
}
HeaderPaths IarToolChain::builtInHeaderPaths(const QStringList &cxxFlags,
const FileName &fileName) const
const FilePath &fileName) const
{
return createBuiltInHeaderPathsRunner()(cxxFlags, fileName.toString(), "");
}
@@ -326,7 +326,7 @@ HeaderPaths IarToolChain::builtInHeaderPaths(const QStringList &cxxFlags,
void IarToolChain::addToEnvironment(Environment &env) const
{
if (!m_compilerCommand.isEmpty()) {
const FileName path = m_compilerCommand.parentDir();
const FilePath path = m_compilerCommand.parentDir();
env.prependOrSetPath(path.toString());
}
}
@@ -348,7 +348,7 @@ bool IarToolChain::fromMap(const QVariantMap &data)
{
if (!ToolChain::fromMap(data))
return false;
m_compilerCommand = FileName::fromString(data.value(compilerCommandKeyC).toString());
m_compilerCommand = FilePath::fromString(data.value(compilerCommandKeyC).toString());
m_targetAbi = Abi::fromString(data.value(targetAbiKeyC).toString());
return true;
}
@@ -369,7 +369,7 @@ bool IarToolChain::operator==(const ToolChain &other) const
;
}
void IarToolChain::setCompilerCommand(const FileName &file)
void IarToolChain::setCompilerCommand(const FilePath &file)
{
if (file == m_compilerCommand)
return;
@@ -377,12 +377,12 @@ void IarToolChain::setCompilerCommand(const FileName &file)
toolChainUpdated();
}
FileName IarToolChain::compilerCommand() const
FilePath IarToolChain::compilerCommand() const
{
return m_compilerCommand;
}
FileName IarToolChain::makeCommand(const Environment &env) const
FilePath IarToolChain::makeCommand(const Environment &env) const
{
Q_UNUSED(env)
return {};
@@ -575,7 +575,7 @@ void IarToolChainConfigWidget::setFromToolchain()
void IarToolChainConfigWidget::handleCompilerCommandChange()
{
const FileName compilerPath = m_compilerCommand->fileName();
const FilePath compilerPath = m_compilerCommand->fileName();
const bool haveCompiler = compilerExists(compilerPath);
if (haveCompiler) {
const auto env = Environment::systemEnvironment();

View File

@@ -36,7 +36,7 @@ class QTextEdit;
QT_END_NAMESPACE
namespace Utils {
class FileName;
class FilePath;
class PathChooser;
}
@@ -67,7 +67,7 @@ public:
BuiltInHeaderPathsRunner createBuiltInHeaderPathsRunner() const final;
ProjectExplorer::HeaderPaths builtInHeaderPaths(const QStringList &cxxFlags,
const Utils::FileName &) const final;
const Utils::FilePath &) const final;
void addToEnvironment(Utils::Environment &env) const final;
ProjectExplorer::IOutputParser *outputParser() const final;
@@ -78,16 +78,16 @@ public:
bool operator ==(const ToolChain &other) const final;
void setCompilerCommand(const Utils::FileName &file);
Utils::FileName compilerCommand() const final;
void setCompilerCommand(const Utils::FilePath &file);
Utils::FilePath compilerCommand() const final;
Utils::FileName makeCommand(const Utils::Environment &env) const final;
Utils::FilePath makeCommand(const Utils::Environment &env) const final;
private:
IarToolChain();
ProjectExplorer::Abi m_targetAbi;
Utils::FileName m_compilerCommand;
Utils::FilePath m_compilerCommand;
friend class IarToolChainFactory;
friend class IarToolChainConfigWidget;

Some files were not shown because too many files have changed in this diff Show More