forked from qt-creator/qt-creator
ProjectExplorer: Make sure the working dir is properly expanded
... in the path chooser. Fixes: QTCREATORBUG-26274 Change-Id: I4aa920888b9bef2820ed883e1f34a5c670a545d6 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -233,6 +233,8 @@ bool RunConfiguration::isEnabled() const
|
|||||||
|
|
||||||
QWidget *RunConfiguration::createConfigurationWidget()
|
QWidget *RunConfiguration::createConfigurationWidget()
|
||||||
{
|
{
|
||||||
|
if (const auto wdAspect = aspect<WorkingDirectoryAspect>())
|
||||||
|
wdAspect->setMacroExpanderProvider([this] { return &m_expander; });
|
||||||
Layouting::Form builder;
|
Layouting::Form builder;
|
||||||
for (BaseAspect *aspect : qAsConst(m_aspects)) {
|
for (BaseAspect *aspect : qAsConst(m_aspects)) {
|
||||||
if (aspect->isVisible())
|
if (aspect->isVisible())
|
||||||
|
@@ -176,6 +176,8 @@ void WorkingDirectoryAspect::addToLayout(LayoutBuilder &builder)
|
|||||||
{
|
{
|
||||||
QTC_CHECK(!m_chooser);
|
QTC_CHECK(!m_chooser);
|
||||||
m_chooser = new PathChooser;
|
m_chooser = new PathChooser;
|
||||||
|
if (m_expanderProvider)
|
||||||
|
m_chooser->setMacroExpander(m_expanderProvider());
|
||||||
m_chooser->setHistoryCompleter(settingsKey());
|
m_chooser->setHistoryCompleter(settingsKey());
|
||||||
m_chooser->setExpectedKind(Utils::PathChooser::Directory);
|
m_chooser->setExpectedKind(Utils::PathChooser::Directory);
|
||||||
m_chooser->setPromptDialogTitle(tr("Select Working Directory"));
|
m_chooser->setPromptDialogTitle(tr("Select Working Directory"));
|
||||||
@@ -291,6 +293,11 @@ void WorkingDirectoryAspect::setDefaultWorkingDirectory(const FilePath &defaultW
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WorkingDirectoryAspect::setMacroExpanderProvider(const MacroExpanderProvider &expanderProvider)
|
||||||
|
{
|
||||||
|
m_expanderProvider = expanderProvider;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\internal
|
\internal
|
||||||
*/
|
*/
|
||||||
|
@@ -82,6 +82,7 @@ public:
|
|||||||
Utils::FilePath defaultWorkingDirectory() const;
|
Utils::FilePath defaultWorkingDirectory() const;
|
||||||
Utils::FilePath unexpandedWorkingDirectory() const;
|
Utils::FilePath unexpandedWorkingDirectory() const;
|
||||||
void setDefaultWorkingDirectory(const Utils::FilePath &defaultWorkingDirectory);
|
void setDefaultWorkingDirectory(const Utils::FilePath &defaultWorkingDirectory);
|
||||||
|
void setMacroExpanderProvider(const Utils::MacroExpanderProvider &expanderProvider);
|
||||||
Utils::PathChooser *pathChooser() const;
|
Utils::PathChooser *pathChooser() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -95,6 +96,7 @@ private:
|
|||||||
Utils::FilePath m_defaultWorkingDirectory;
|
Utils::FilePath m_defaultWorkingDirectory;
|
||||||
QPointer<Utils::PathChooser> m_chooser;
|
QPointer<Utils::PathChooser> m_chooser;
|
||||||
QPointer<QToolButton> m_resetButton;
|
QPointer<QToolButton> m_resetButton;
|
||||||
|
Utils::MacroExpanderProvider m_expanderProvider;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PROJECTEXPLORER_EXPORT ArgumentsAspect : public Utils::BaseAspect
|
class PROJECTEXPLORER_EXPORT ArgumentsAspect : public Utils::BaseAspect
|
||||||
|
Reference in New Issue
Block a user