forked from qt-creator/qt-creator
ProjectExplorer: Consider build environment
... in "Open Terminal Here" action in the build configuration. Change-Id: I0b1b15d4f1097cf48eb5a977f2ca5951b2f78377 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -285,7 +285,10 @@ void CorePlugin::addToPathChooserContextMenu(Utils::PathChooser *pathChooser, QM
|
||||
|
||||
auto *showInTerminal = new QAction(Core::FileUtils::msgTerminalHereAction(), menu);
|
||||
connect(showInTerminal, &QAction::triggered, pathChooser, [pathChooser]() {
|
||||
Core::FileUtils::openTerminal(pathChooser->filePath().toString());
|
||||
if (pathChooser->openTerminalHandler())
|
||||
pathChooser->openTerminalHandler()();
|
||||
else
|
||||
FileUtils::openTerminal(pathChooser->filePath().toString());
|
||||
});
|
||||
menu->insertAction(firstAction, showInTerminal);
|
||||
|
||||
|
||||
@@ -25,9 +25,12 @@
|
||||
|
||||
#include "buildaspects.h"
|
||||
|
||||
#include "buildconfiguration.h"
|
||||
#include "buildpropertiessettings.h"
|
||||
#include "projectexplorer.h"
|
||||
|
||||
#include <coreplugin/fileutils.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/infolabel.h>
|
||||
#include <utils/layoutbuilder.h>
|
||||
@@ -47,12 +50,15 @@ public:
|
||||
QPointer<InfoLabel> problemLabel;
|
||||
};
|
||||
|
||||
BuildDirectoryAspect::BuildDirectoryAspect() : d(new Private)
|
||||
BuildDirectoryAspect::BuildDirectoryAspect(const BuildConfiguration *bc) : d(new Private)
|
||||
{
|
||||
setSettingsKey("ProjectExplorer.BuildConfiguration.BuildDirectory");
|
||||
setLabelText(tr("Build directory:"));
|
||||
setDisplayStyle(PathChooserDisplay);
|
||||
setExpectedKind(Utils::PathChooser::Directory);
|
||||
setOpenTerminalHandler([this, bc] {
|
||||
Core::FileUtils::openTerminal(value(), bc->environment());
|
||||
});
|
||||
}
|
||||
|
||||
BuildDirectoryAspect::~BuildDirectoryAspect()
|
||||
|
||||
@@ -32,12 +32,13 @@
|
||||
namespace Utils { class FilePath; }
|
||||
|
||||
namespace ProjectExplorer {
|
||||
class BuildConfiguration;
|
||||
|
||||
class PROJECTEXPLORER_EXPORT BuildDirectoryAspect : public Utils::StringAspect
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
BuildDirectoryAspect();
|
||||
explicit BuildDirectoryAspect(const BuildConfiguration *bc);
|
||||
~BuildDirectoryAspect() override;
|
||||
|
||||
void allowInSourceBuilds(const Utils::FilePath &sourceDir);
|
||||
|
||||
@@ -197,7 +197,7 @@ BuildConfiguration::BuildConfiguration(Target *target, Utils::Id id)
|
||||
connect(ProjectTree::instance(), &ProjectTree::currentProjectChanged,
|
||||
this, &BuildConfiguration::updateCacheAndEmitEnvironmentChanged);
|
||||
|
||||
d->m_buildDirectoryAspect = addAspect<BuildDirectoryAspect>();
|
||||
d->m_buildDirectoryAspect = addAspect<BuildDirectoryAspect>(this);
|
||||
d->m_buildDirectoryAspect->setBaseFileName(target->project()->projectDirectory());
|
||||
d->m_buildDirectoryAspect->setEnvironment(environment());
|
||||
d->m_buildDirectoryAspect->setMacroExpanderProvider([this] { return macroExpander(); });
|
||||
|
||||
Reference in New Issue
Block a user