Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Tobias Hunger
qt-creator
Commits
10151809
Commit
10151809
authored
May 27, 2009
by
dt
Browse files
Add Environment settings to CMakeRunConfiguration
parent
efc865a4
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/plugins/cmakeprojectmanager/cmakeproject.cpp
View file @
10151809
...
...
@@ -459,7 +459,10 @@ ProjectExplorer::Environment CMakeProject::environment(const QString &buildConfi
void
CMakeProject
::
setUseSystemEnvironment
(
const
QString
&
buildConfiguration
,
bool
b
)
{
if
(
b
==
useSystemEnvironment
(
buildConfiguration
))
return
;
setValue
(
buildConfiguration
,
"clearSystemEnvironment"
,
!
b
);
emit
environmentChanged
(
buildConfiguration
);
}
bool
CMakeProject
::
useSystemEnvironment
(
const
QString
&
buildConfiguration
)
const
...
...
@@ -475,7 +478,11 @@ QList<ProjectExplorer::EnvironmentItem> CMakeProject::userEnvironmentChanges(con
void
CMakeProject
::
setUserEnvironmentChanges
(
const
QString
&
buildConfig
,
const
QList
<
ProjectExplorer
::
EnvironmentItem
>
&
diff
)
{
QStringList
list
=
EnvironmentItem
::
toStringList
(
diff
);
if
(
list
==
value
(
buildConfig
,
"userEnvironmentChanges"
))
return
;
setValue
(
buildConfig
,
"userEnvironmentChanges"
,
EnvironmentItem
::
toStringList
(
diff
));
emit
environmentChanged
(
buildConfig
);
}
QString
CMakeProject
::
buildDirectory
(
const
QString
&
buildConfiguration
)
const
...
...
src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
View file @
10151809
...
...
@@ -49,6 +49,12 @@ CMakeRunConfiguration::CMakeRunConfiguration(CMakeProject *pro, const QString &t
,
m_title
(
title
)
{
setName
(
title
);
connect
(
pro
,
SIGNAL
(
activeBuildConfigurationChanged
()),
this
,
SIGNAL
(
baseEnvironmentChanged
()));
connect
(
pro
,
SIGNAL
(
environmentChanged
(
QString
)),
this
,
SIGNAL
(
baseEnvironmentChanged
()));
}
CMakeRunConfiguration
::~
CMakeRunConfiguration
()
...
...
@@ -80,11 +86,6 @@ QStringList CMakeRunConfiguration::commandLineArguments() const
return
ProjectExplorer
::
Environment
::
parseCombinedArgString
(
m_arguments
);
}
ProjectExplorer
::
Environment
CMakeRunConfiguration
::
environment
()
const
{
return
project
()
->
environment
(
project
()
->
activeBuildConfiguration
());
}
QString
CMakeRunConfiguration
::
title
()
const
{
return
m_title
;
...
...
@@ -108,6 +109,7 @@ void CMakeRunConfiguration::save(ProjectExplorer::PersistentSettingsWriter &writ
writer
.
saveValue
(
"CMakeRunConfiguration.UseTerminal"
,
m_runMode
==
Console
);
writer
.
saveValue
(
"CMakeRunConfiguation.Title"
,
m_title
);
writer
.
saveValue
(
"CMakeRunConfiguration.Arguments"
,
m_arguments
);
writer
.
saveValue
(
"CMakeRunConfiguration.UserEnvironmentChanges"
,
ProjectExplorer
::
EnvironmentItem
::
toStringList
(
m_userEnvironmentChanges
));
}
void
CMakeRunConfiguration
::
restore
(
const
ProjectExplorer
::
PersistentSettingsReader
&
reader
)
...
...
@@ -118,19 +120,12 @@ void CMakeRunConfiguration::restore(const ProjectExplorer::PersistentSettingsRea
m_runMode
=
reader
.
restoreValue
(
"CMakeRunConfiguration.UseTerminal"
).
toBool
()
?
Console
:
Gui
;
m_title
=
reader
.
restoreValue
(
"CMakeRunConfiguation.Title"
).
toString
();
m_arguments
=
reader
.
restoreValue
(
"CMakeRunConfiguration.Arguments"
).
toString
();
m_userEnvironmentChanges
=
ProjectExplorer
::
EnvironmentItem
::
fromStringList
(
reader
.
restoreValue
(
"CMakeRunConfiguration.UserEnvironmentChanges"
).
toStringList
());
}
QWidget
*
CMakeRunConfiguration
::
configurationWidget
()
{
QWidget
*
widget
=
new
QWidget
();
QFormLayout
*
fl
=
new
QFormLayout
();
widget
->
setLayout
(
fl
);
QLineEdit
*
argumentsLineEdit
=
new
QLineEdit
(
widget
);
argumentsLineEdit
->
setText
(
m_arguments
);
connect
(
argumentsLineEdit
,
SIGNAL
(
textChanged
(
QString
)),
this
,
SLOT
(
setArguments
(
QString
)));
fl
->
addRow
(
tr
(
"Arguments:"
),
argumentsLineEdit
);
return
widget
;
return
new
CMakeRunConfigurationWidget
(
this
);
}
void
CMakeRunConfiguration
::
setArguments
(
const
QString
&
newText
)
...
...
@@ -145,6 +140,89 @@ QString CMakeRunConfiguration::dumperLibrary() const
return
dhl
;
}
ProjectExplorer
::
Environment
CMakeRunConfiguration
::
baseEnvironment
()
const
{
// TODO use either System Environment
// build environment
// or empty
//Environment env = Environment(QProcess::systemEnvironment());
QString
config
=
project
()
->
activeBuildConfiguration
();
ProjectExplorer
::
Environment
env
=
project
()
->
environment
(
project
()
->
activeBuildConfiguration
());
return
env
;
}
ProjectExplorer
::
Environment
CMakeRunConfiguration
::
environment
()
const
{
ProjectExplorer
::
Environment
env
=
baseEnvironment
();
env
.
modify
(
userEnvironmentChanges
());
return
env
;
}
QList
<
ProjectExplorer
::
EnvironmentItem
>
CMakeRunConfiguration
::
userEnvironmentChanges
()
const
{
return
m_userEnvironmentChanges
;
}
void
CMakeRunConfiguration
::
setUserEnvironmentChanges
(
const
QList
<
ProjectExplorer
::
EnvironmentItem
>
&
diff
)
{
if
(
m_userEnvironmentChanges
!=
diff
)
{
m_userEnvironmentChanges
=
diff
;
emit
userEnvironmentChangesChanged
(
diff
);
}
}
// Configuration widget
CMakeRunConfigurationWidget
::
CMakeRunConfigurationWidget
(
CMakeRunConfiguration
*
cmakeRunConfiguration
,
QWidget
*
parent
)
:
QWidget
(
parent
),
m_cmakeRunConfiguration
(
cmakeRunConfiguration
)
{
QFormLayout
*
fl
=
new
QFormLayout
();
QLineEdit
*
argumentsLineEdit
=
new
QLineEdit
();
argumentsLineEdit
->
setText
(
ProjectExplorer
::
Environment
::
joinArgumentList
(
cmakeRunConfiguration
->
commandLineArguments
()));
connect
(
argumentsLineEdit
,
SIGNAL
(
textChanged
(
QString
)),
this
,
SLOT
(
setArguments
(
QString
)));
fl
->
addRow
(
tr
(
"Arguments:"
),
argumentsLineEdit
);
QVBoxLayout
*
vbx
=
new
QVBoxLayout
(
this
);
vbx
->
addLayout
(
fl
);
m_environmentWidget
=
new
ProjectExplorer
::
EnvironmentWidget
(
this
);
vbx
->
addWidget
(
m_environmentWidget
);
m_environmentWidget
->
setBaseEnvironment
(
m_cmakeRunConfiguration
->
baseEnvironment
());
m_environmentWidget
->
setUserChanges
(
m_cmakeRunConfiguration
->
userEnvironmentChanges
());
connect
(
m_environmentWidget
,
SIGNAL
(
userChangesUpdated
()),
this
,
SLOT
(
userChangesUpdated
()));
connect
(
m_cmakeRunConfiguration
,
SIGNAL
(
baseEnvironmentChanged
()),
this
,
SLOT
(
baseEnvironmentChanged
()));
connect
(
m_cmakeRunConfiguration
,
SIGNAL
(
userEnvironmentChangesChanged
(
QList
<
ProjectExplorer
::
EnvironmentItem
>
)),
this
,
SLOT
(
userEnvironmentChangesChanged
()));
}
void
CMakeRunConfigurationWidget
::
userChangesUpdated
()
{
m_cmakeRunConfiguration
->
setUserEnvironmentChanges
(
m_environmentWidget
->
userChanges
());
}
void
CMakeRunConfigurationWidget
::
baseEnvironmentChanged
()
{
m_environmentWidget
->
setBaseEnvironment
(
m_cmakeRunConfiguration
->
baseEnvironment
());
}
void
CMakeRunConfigurationWidget
::
userEnvironmentChangesChanged
()
{
m_environmentWidget
->
setUserChanges
(
m_cmakeRunConfiguration
->
userEnvironmentChanges
());
}
void
CMakeRunConfigurationWidget
::
setArguments
(
const
QString
&
args
)
{
m_cmakeRunConfiguration
->
setArguments
(
args
);
}
// Factory
CMakeRunConfigurationFactory
::
CMakeRunConfigurationFactory
()
{
...
...
src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
View file @
10151809
...
...
@@ -33,6 +33,7 @@
#include
<projectexplorer/applicationrunconfiguration.h>
#include
<projectexplorer/environment.h>
#include
<projectexplorer/persistentsettings.h>
#include
<projectexplorer/environmenteditmodel.h>
namespace
CMakeProjectManager
{
namespace
Internal
{
...
...
@@ -41,6 +42,7 @@ class CMakeProject;
class
CMakeRunConfiguration
:
public
ProjectExplorer
::
ApplicationRunConfiguration
{
friend
class
CMakeRunConfigurationWidget
;
Q_OBJECT
public:
CMakeRunConfiguration
(
CMakeProject
*
pro
,
const
QString
&
target
,
const
QString
&
workingDirectory
,
const
QString
&
title
);
...
...
@@ -62,24 +64,41 @@ public:
virtual
void
restore
(
const
ProjectExplorer
::
PersistentSettingsReader
&
reader
);
virtual
QString
dumperLibrary
()
const
;
signals:
void
baseEnvironmentChanged
();
void
userEnvironmentChangesChanged
(
const
QList
<
ProjectExplorer
::
EnvironmentItem
>
&
diff
);
private
slots
:
void
setArguments
(
const
QString
&
newText
);
private:
ProjectExplorer
::
Environment
baseEnvironment
()
const
;
void
setUserEnvironmentChanges
(
const
QList
<
ProjectExplorer
::
EnvironmentItem
>
&
diff
);
QList
<
ProjectExplorer
::
EnvironmentItem
>
userEnvironmentChanges
()
const
;
RunMode
m_runMode
;
QString
m_target
;
QString
m_workingDirectory
;
QString
m_title
;
QString
m_arguments
;
QList
<
ProjectExplorer
::
EnvironmentItem
>
m_userEnvironmentChanges
;
};
class
CMakeRunConfigurationWidget
:
public
QWidget
{
Q_OBJECT
public:
CMakeRunConfigurationWidget
(
CMakeRunConfiguration
*
cmakeRunConfiguration
,
QWidget
*
parent
=
0
);
private
slots
:
void
setArguments
(
const
QString
&
args
);
void
baseEnvironmentChanged
();
void
userEnvironmentChangesChanged
();
void
userChangesUpdated
();
private:
CMakeRunConfiguration
*
m_cmakeRunConfiguration
;
ProjectExplorer
::
EnvironmentWidget
*
m_environmentWidget
;
};
/* The run configuration factory is used for restoring run configurations from
* settings. And used to create new runconfigurations in the "Run Settings" Dialog.
* For the first case bool canCreate(const QString &type) and
* QSharedPointer<RunConfiguration> create(Project *project, QString type) are used.
* For the second type the functions QStringList canCreate(Project *pro) and
* QString nameForType(const QString&) are used to generate a list of creatable
* RunConfigurations, and create(..) is used to create it.
*/
class
CMakeRunConfigurationFactory
:
public
ProjectExplorer
::
IRunConfigurationFactory
{
Q_OBJECT
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment