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());
|
||||
}
|
||||
|
||||
// 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)
|
||||
{
|
||||
d->m_lineEdit->setText(QDir::toNativeSeparators(path));
|
||||
|
||||
@@ -96,6 +96,9 @@ public:
|
||||
FileName rawFileName() const; // The raw unexpanded input.
|
||||
FileName fileName() const;
|
||||
|
||||
static QString expandedDirectory(const QString &input, const Utils::Environment &env,
|
||||
const QString &baseDir);
|
||||
|
||||
QString baseDirectory() const;
|
||||
void setBaseDirectory(const QString &directory);
|
||||
|
||||
|
||||
@@ -204,11 +204,20 @@ void WorkingDirectoryAspect::toMap(QVariantMap &data) const
|
||||
|
||||
FileName WorkingDirectoryAspect::workingDirectory() const
|
||||
{
|
||||
QTC_ASSERT(m_chooser, return m_defaultWorkingDirectory);
|
||||
if (m_workingDirectory.isEmpty())
|
||||
return m_defaultWorkingDirectory;
|
||||
|
||||
if (m_chooser) {
|
||||
return FileName::fromString(
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user