forked from qt-creator/qt-creator
PathChooser: Provide static way to expand a directory...
...to be able to fetch working directory even for non-active targets. Change-Id: I563e9b56e8a8393b998811e0fb364078d4c37d03 Reviewed-by: hjk <hjk@theqtcompany.com>
This commit is contained in:
@@ -330,6 +330,20 @@ FileName PathChooser::fileName() const
|
|||||||
return FileName::fromString(path());
|
return FileName::fromString(path());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: try to remove again
|
||||||
|
QString PathChooser::expandedDirectory(const QString &input, const Environment &env,
|
||||||
|
const QString &baseDir)
|
||||||
|
{
|
||||||
|
if (input.isEmpty())
|
||||||
|
return input;
|
||||||
|
const QString path = QDir::cleanPath(env.expandVariables(input));
|
||||||
|
if (path.isEmpty())
|
||||||
|
return path;
|
||||||
|
if (!baseDir.isEmpty() && QFileInfo(path).isRelative())
|
||||||
|
return QFileInfo(baseDir + QLatin1Char('/') + path).absoluteFilePath();
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
void PathChooser::setPath(const QString &path)
|
void PathChooser::setPath(const QString &path)
|
||||||
{
|
{
|
||||||
d->m_lineEdit->setText(QDir::toNativeSeparators(path));
|
d->m_lineEdit->setText(QDir::toNativeSeparators(path));
|
||||||
|
|||||||
@@ -96,6 +96,9 @@ public:
|
|||||||
FileName rawFileName() const; // The raw unexpanded input.
|
FileName rawFileName() const; // The raw unexpanded input.
|
||||||
FileName fileName() const;
|
FileName fileName() const;
|
||||||
|
|
||||||
|
static QString expandedDirectory(const QString &input, const Utils::Environment &env,
|
||||||
|
const QString &baseDir);
|
||||||
|
|
||||||
QString baseDirectory() const;
|
QString baseDirectory() const;
|
||||||
void setBaseDirectory(const QString &directory);
|
void setBaseDirectory(const QString &directory);
|
||||||
|
|
||||||
|
|||||||
@@ -204,11 +204,20 @@ void WorkingDirectoryAspect::toMap(QVariantMap &data) const
|
|||||||
|
|
||||||
FileName WorkingDirectoryAspect::workingDirectory() const
|
FileName WorkingDirectoryAspect::workingDirectory() const
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_chooser, return m_defaultWorkingDirectory);
|
|
||||||
if (m_workingDirectory.isEmpty())
|
if (m_workingDirectory.isEmpty())
|
||||||
return m_defaultWorkingDirectory;
|
return m_defaultWorkingDirectory;
|
||||||
return FileName::fromString(
|
|
||||||
|
if (m_chooser) {
|
||||||
|
return FileName::fromString(
|
||||||
runConfiguration()->macroExpander()->expandProcessArgs(m_chooser->path()));
|
runConfiguration()->macroExpander()->expandProcessArgs(m_chooser->path()));
|
||||||
|
} else {
|
||||||
|
auto envAspect = runConfiguration()->extraAspect<EnvironmentAspect>();
|
||||||
|
const Utils::Environment env = envAspect ? envAspect->environment()
|
||||||
|
: Utils::Environment::systemEnvironment();
|
||||||
|
return FileName::fromString(
|
||||||
|
runConfiguration()->macroExpander()->expandProcessArgs(
|
||||||
|
PathChooser::expandedDirectory(m_workingDirectory.toString(), env, QString())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FileName WorkingDirectoryAspect::defaultWorkingDirectory() const
|
FileName WorkingDirectoryAspect::defaultWorkingDirectory() const
|
||||||
|
|||||||
Reference in New Issue
Block a user