forked from qt-creator/qt-creator
ProjectExplorer: Make more aspects directly usable in AspectContainers
Change-Id: I6634c27c8d516411ad84e6cb7c361262ead53124 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -21,7 +21,8 @@ const char PRINT_ON_RUN_KEY[] = "PE.EnvironmentAspect.PrintOnRun";
|
||||
// EnvironmentAspect:
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
EnvironmentAspect::EnvironmentAspect()
|
||||
EnvironmentAspect::EnvironmentAspect(AspectContainer *container)
|
||||
: BaseAspect(container)
|
||||
{
|
||||
setDisplayName(Tr::tr("Environment"));
|
||||
setId("EnvironmentAspect");
|
||||
|
||||
@@ -20,7 +20,7 @@ class PROJECTEXPLORER_EXPORT EnvironmentAspect : public Utils::BaseAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EnvironmentAspect();
|
||||
EnvironmentAspect(Utils::AspectContainer *container = nullptr);
|
||||
|
||||
// The environment including the user's modifications.
|
||||
Utils::Environment environment() const;
|
||||
|
||||
@@ -724,7 +724,8 @@ void ExecutableAspect::toMap(QVariantMap &map) const
|
||||
on Windows and LD_LIBRARY_PATH everywhere else.
|
||||
*/
|
||||
|
||||
UseLibraryPathsAspect::UseLibraryPathsAspect()
|
||||
UseLibraryPathsAspect::UseLibraryPathsAspect(AspectContainer *container)
|
||||
: BoolAspect(container)
|
||||
{
|
||||
setId("UseLibraryPath");
|
||||
setSettingsKey("RunConfiguration.UseLibrarySearchPath");
|
||||
@@ -749,7 +750,8 @@ UseLibraryPathsAspect::UseLibraryPathsAspect()
|
||||
DYLD_IMAGE_SUFFIX environment variable should be used on Mac.
|
||||
*/
|
||||
|
||||
UseDyldSuffixAspect::UseDyldSuffixAspect()
|
||||
UseDyldSuffixAspect::UseDyldSuffixAspect(AspectContainer *container)
|
||||
: BoolAspect(container)
|
||||
{
|
||||
setId("UseDyldSuffix");
|
||||
setSettingsKey("RunConfiguration.UseDyldImageSuffix");
|
||||
@@ -765,7 +767,8 @@ UseDyldSuffixAspect::UseDyldSuffixAspect()
|
||||
application should run with root permissions.
|
||||
*/
|
||||
|
||||
RunAsRootAspect::RunAsRootAspect()
|
||||
RunAsRootAspect::RunAsRootAspect(AspectContainer *container)
|
||||
: BoolAspect(container)
|
||||
{
|
||||
setId("RunAsRoot");
|
||||
setSettingsKey("RunConfiguration.RunAsRoot");
|
||||
@@ -794,7 +797,8 @@ Interpreter::Interpreter(const QString &_id,
|
||||
to use with files or projects using an interpreted language.
|
||||
*/
|
||||
|
||||
InterpreterAspect::InterpreterAspect()
|
||||
InterpreterAspect::InterpreterAspect(AspectContainer *container)
|
||||
: BaseAspect(container)
|
||||
{
|
||||
addDataExtractor(this, &InterpreterAspect::currentInterpreter, &Data::interpreter);
|
||||
}
|
||||
@@ -904,8 +908,8 @@ static QString defaultDisplay()
|
||||
return qtcEnvironmentVariable("DISPLAY");
|
||||
}
|
||||
|
||||
X11ForwardingAspect::X11ForwardingAspect(const MacroExpander *expander)
|
||||
: m_macroExpander(expander)
|
||||
X11ForwardingAspect::X11ForwardingAspect(AspectContainer *container)
|
||||
: StringAspect(container)
|
||||
{
|
||||
setLabelText(Tr::tr("X11 Forwarding:"));
|
||||
setDisplayStyle(LineEditDisplay);
|
||||
@@ -918,10 +922,33 @@ X11ForwardingAspect::X11ForwardingAspect(const MacroExpander *expander)
|
||||
addDataExtractor(this, &X11ForwardingAspect::display, &Data::display);
|
||||
}
|
||||
|
||||
void X11ForwardingAspect::setMacroExpander(const MacroExpander *expander)
|
||||
{
|
||||
m_macroExpander = expander;
|
||||
}
|
||||
|
||||
QString X11ForwardingAspect::display() const
|
||||
{
|
||||
QTC_ASSERT(m_macroExpander, return value());
|
||||
return !isChecked() ? QString() : m_macroExpander->expandProcessArgs(value());
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
\class ProjectExplorer::SymbolFileAspect
|
||||
\inmodule QtCreator
|
||||
|
||||
\brief The SymbolFileAspect class lets a user specify a symbol file
|
||||
for debugging.
|
||||
*/
|
||||
|
||||
|
||||
SymbolFileAspect::SymbolFileAspect(AspectContainer *container)
|
||||
: FilePathAspect(container)
|
||||
{}
|
||||
|
||||
MainScriptAspect::MainScriptAspect(AspectContainer *container)
|
||||
: StringAspect(container)
|
||||
{}
|
||||
|
||||
} // namespace ProjectExplorer
|
||||
|
||||
@@ -131,7 +131,7 @@ class PROJECTEXPLORER_EXPORT UseLibraryPathsAspect : public Utils::BoolAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
UseLibraryPathsAspect();
|
||||
UseLibraryPathsAspect(Utils::AspectContainer *container = nullptr);
|
||||
};
|
||||
|
||||
class PROJECTEXPLORER_EXPORT UseDyldSuffixAspect : public Utils::BoolAspect
|
||||
@@ -139,7 +139,7 @@ class PROJECTEXPLORER_EXPORT UseDyldSuffixAspect : public Utils::BoolAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
UseDyldSuffixAspect();
|
||||
UseDyldSuffixAspect(Utils::AspectContainer *container = nullptr);
|
||||
};
|
||||
|
||||
class PROJECTEXPLORER_EXPORT RunAsRootAspect : public Utils::BoolAspect
|
||||
@@ -147,7 +147,7 @@ class PROJECTEXPLORER_EXPORT RunAsRootAspect : public Utils::BoolAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
RunAsRootAspect();
|
||||
RunAsRootAspect(Utils::AspectContainer *container = nullptr);
|
||||
};
|
||||
|
||||
class PROJECTEXPLORER_EXPORT ExecutableAspect : public Utils::BaseAspect
|
||||
@@ -197,7 +197,7 @@ class PROJECTEXPLORER_EXPORT SymbolFileAspect : public Utils::FilePathAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SymbolFileAspect() = default;
|
||||
SymbolFileAspect(Utils::AspectContainer *container = nullptr);
|
||||
};
|
||||
|
||||
class PROJECTEXPLORER_EXPORT Interpreter
|
||||
@@ -227,7 +227,7 @@ class PROJECTEXPLORER_EXPORT InterpreterAspect : public Utils::BaseAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
InterpreterAspect();
|
||||
InterpreterAspect(Utils::AspectContainer *container = nullptr);
|
||||
|
||||
Interpreter currentInterpreter() const;
|
||||
void updateInterpreters(const QList<Interpreter> &interpreters);
|
||||
@@ -256,7 +256,7 @@ class PROJECTEXPLORER_EXPORT MainScriptAspect : public Utils::StringAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MainScriptAspect() = default;
|
||||
MainScriptAspect(Utils::AspectContainer *container = nullptr);
|
||||
};
|
||||
|
||||
class PROJECTEXPLORER_EXPORT X11ForwardingAspect : public Utils::StringAspect
|
||||
@@ -264,7 +264,9 @@ class PROJECTEXPLORER_EXPORT X11ForwardingAspect : public Utils::StringAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
X11ForwardingAspect(const Utils::MacroExpander *macroExpander);
|
||||
X11ForwardingAspect(Utils::AspectContainer *container = nullptr);
|
||||
|
||||
void setMacroExpander(const Utils::MacroExpander *macroExpander);
|
||||
|
||||
struct Data : StringAspect::Data { QString display; };
|
||||
|
||||
|
||||
@@ -209,8 +209,10 @@ PythonRunConfiguration::PythonRunConfiguration(Target *target, Id id)
|
||||
|
||||
addAspect<TerminalAspect>();
|
||||
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
addAspect<X11ForwardingAspect>(macroExpander());
|
||||
if (HostOsInfo::isAnyUnixHost()) {
|
||||
auto x11Forwarding = addAspect<X11ForwardingAspect>();
|
||||
x11Forwarding->setMacroExpander(macroExpander());
|
||||
}
|
||||
|
||||
setCommandLineGetter([bufferedAspect, interpreterAspect, argumentsAspect, scriptAspect] {
|
||||
CommandLine cmd{interpreterAspect->currentInterpreter().command};
|
||||
|
||||
@@ -166,8 +166,10 @@ QmlProjectRunConfiguration::QmlProjectRunConfiguration(Target *target, Id id)
|
||||
return envModifier(environment);
|
||||
});
|
||||
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
addAspect<X11ForwardingAspect>(macroExpander());
|
||||
if (HostOsInfo::isAnyUnixHost()) {
|
||||
auto x11Forwarding = addAspect<X11ForwardingAspect>();
|
||||
x11Forwarding->setMacroExpander(macroExpander());
|
||||
}
|
||||
|
||||
setRunnableModifier([this](Runnable &r) {
|
||||
const QmlBuildSystem *bs = static_cast<QmlBuildSystem *>(activeBuildSystem());
|
||||
|
||||
@@ -55,8 +55,11 @@ RemoteLinuxCustomRunConfiguration::RemoteLinuxCustomRunConfiguration(Target *tar
|
||||
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
addAspect<TerminalAspect>();
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
addAspect<X11ForwardingAspect>(macroExpander());
|
||||
|
||||
if (HostOsInfo::isAnyUnixHost()) {
|
||||
auto x11Forwarding = addAspect<X11ForwardingAspect>();
|
||||
x11Forwarding->setMacroExpander(macroExpander());
|
||||
}
|
||||
|
||||
setDefaultDisplayName(runConfigDefaultDisplayName());
|
||||
}
|
||||
|
||||
@@ -56,8 +56,11 @@ RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Id id)
|
||||
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
addAspect<TerminalAspect>();
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
addAspect<X11ForwardingAspect>(macroExpander());
|
||||
|
||||
if (HostOsInfo::isAnyUnixHost()) {
|
||||
auto x11Forwarding = addAspect<X11ForwardingAspect>();
|
||||
x11Forwarding->setMacroExpander(macroExpander());
|
||||
}
|
||||
|
||||
auto libAspect = addAspect<UseLibraryPathsAspect>();
|
||||
libAspect->setValue(false);
|
||||
|
||||
Reference in New Issue
Block a user