| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | /**************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-06-17 00:01:27 +10:00
										 |  |  | ** Contact: Nokia Corporation (qt-info@nokia.com) | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Commercial Usage | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Licensees holding valid Qt Commercial licenses may use this file in | 
					
						
							|  |  |  | ** accordance with the Qt Commercial License Agreement provided with the | 
					
						
							|  |  |  | ** Software or, alternatively, in accordance with the terms contained in | 
					
						
							|  |  |  | ** a written agreement between you and Nokia. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** GNU Lesser General Public License Usage | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Alternatively, this file may be used under the terms of the GNU Lesser | 
					
						
							|  |  |  | ** General Public License version 2.1 as published by the Free Software | 
					
						
							|  |  |  | ** Foundation and appearing in the file LICENSE.LGPL included in the | 
					
						
							|  |  |  | ** packaging of this file.  Please review the following information to | 
					
						
							|  |  |  | ** ensure the GNU Lesser General Public License version 2.1 requirements | 
					
						
							|  |  |  | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** If you are unsure which license is appropriate for your use, please | 
					
						
							| 
									
										
										
										
											2009-08-14 09:30:56 +02:00
										 |  |  | ** contact the sales department at http://qt.nokia.com/contact.
 | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | ** | 
					
						
							|  |  |  | **************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | #include "genericmakestep.h"
 | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | #include "genericprojectconstants.h"
 | 
					
						
							|  |  |  | #include "genericproject.h"
 | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  | #include "ui_genericmakestep.h"
 | 
					
						
							| 
									
										
										
										
											2009-11-25 18:50:20 +01:00
										 |  |  | #include "genericbuildconfiguration.h"
 | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | #include <extensionsystem/pluginmanager.h>
 | 
					
						
							| 
									
										
										
										
											2009-03-18 14:35:35 +01:00
										 |  |  | #include <projectexplorer/toolchain.h>
 | 
					
						
							| 
									
										
										
										
											2009-09-29 11:39:55 +02:00
										 |  |  | #include <projectexplorer/projectexplorer.h>
 | 
					
						
							| 
									
										
										
										
											2009-12-09 13:54:46 +01:00
										 |  |  | #include <projectexplorer/gnumakeparser.h>
 | 
					
						
							| 
									
										
										
										
											2009-07-13 11:39:08 +02:00
										 |  |  | #include <coreplugin/variablemanager.h>
 | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  | #include <utils/qtcassert.h>
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | #include <QtGui/QFormLayout>
 | 
					
						
							|  |  |  | #include <QtGui/QGroupBox>
 | 
					
						
							|  |  |  | #include <QtGui/QCheckBox>
 | 
					
						
							|  |  |  | #include <QtGui/QLineEdit>
 | 
					
						
							|  |  |  | #include <QtGui/QListWidget>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | using namespace GenericProjectManager; | 
					
						
							|  |  |  | using namespace GenericProjectManager::Internal; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-09 13:54:46 +01:00
										 |  |  | GenericMakeStep::GenericMakeStep(ProjectExplorer::BuildConfiguration *bc) : | 
					
						
							|  |  |  |     AbstractProcessStep(bc) | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-09 13:54:46 +01:00
										 |  |  | GenericMakeStep::GenericMakeStep(GenericMakeStep *bs, ProjectExplorer::BuildConfiguration *bc) : | 
					
						
							|  |  |  |     AbstractProcessStep(bs, bc) | 
					
						
							| 
									
										
										
										
											2009-11-19 17:45:43 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     m_buildTargets = bs->m_buildTargets; | 
					
						
							|  |  |  |     m_makeArguments = bs->m_makeArguments; | 
					
						
							|  |  |  |     m_makeCommand = bs->m_makeCommand; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | GenericMakeStep::~GenericMakeStep() | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-26 14:43:27 +01:00
										 |  |  | GenericBuildConfiguration *GenericMakeStep::genericBuildConfiguration() const | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return static_cast<GenericBuildConfiguration *>(buildConfiguration()); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  | bool GenericMakeStep::init() | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-26 14:43:27 +01:00
										 |  |  |     GenericBuildConfiguration *bc = genericBuildConfiguration(); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-15 19:06:51 +02:00
										 |  |  |     setEnabled(true); | 
					
						
							| 
									
										
										
										
											2009-07-13 11:39:08 +02:00
										 |  |  |     Core::VariableManager *vm = Core::VariableManager::instance(); | 
					
						
							| 
									
										
										
										
											2009-11-25 18:50:20 +01:00
										 |  |  |     const QString rawBuildDir = bc->buildDirectory(); | 
					
						
							| 
									
										
										
										
											2009-07-13 11:39:08 +02:00
										 |  |  |     const QString buildDir = vm->resolve(rawBuildDir); | 
					
						
							| 
									
										
										
										
											2009-10-15 19:06:51 +02:00
										 |  |  |     setWorkingDirectory(buildDir); | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     setCommand(makeCommand()); | 
					
						
							|  |  |  |     setArguments(replacedArguments()); | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 18:50:20 +01:00
										 |  |  |     setEnvironment(bc->environment()); | 
					
						
							| 
									
										
										
										
											2009-12-09 13:54:46 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     setOutputParser(new ProjectExplorer::GnuMakeParser(buildDir)); | 
					
						
							|  |  |  |     if (bc->genericProject()->toolChain()) | 
					
						
							|  |  |  |         appendOutputParser(bc->genericProject()->toolChain()->outputParser()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return AbstractProcessStep::init(); | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  | void GenericMakeStep::restoreFromLocalMap(const QMap<QString, QVariant> &map) | 
					
						
							| 
									
										
										
										
											2009-10-15 19:06:51 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     m_buildTargets = map.value("buildTargets").toStringList(); | 
					
						
							|  |  |  |     m_makeArguments = map.value("makeArguments").toStringList(); | 
					
						
							|  |  |  |     m_makeCommand = map.value("makeCommand").toString(); | 
					
						
							| 
									
										
										
										
											2009-12-09 13:54:46 +01:00
										 |  |  |     ProjectExplorer::AbstractProcessStep::restoreFromLocalMap(map); | 
					
						
							| 
									
										
										
										
											2009-10-15 19:06:51 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  | void GenericMakeStep::storeIntoLocalMap(QMap<QString, QVariant> &map) | 
					
						
							| 
									
										
										
										
											2009-10-15 19:06:51 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     map["buildTargets"] = m_buildTargets; | 
					
						
							|  |  |  |     map["makeArguments"] = m_makeArguments; | 
					
						
							|  |  |  |     map["makeCommand"] = m_makeCommand; | 
					
						
							| 
									
										
										
										
											2009-12-09 13:54:46 +01:00
										 |  |  |     ProjectExplorer::AbstractProcessStep::storeIntoLocalMap(map); | 
					
						
							| 
									
										
										
										
											2009-10-15 19:06:51 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  | QStringList GenericMakeStep::replacedArguments() const | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     Core::VariableManager *vm = Core::VariableManager::instance(); | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     const QStringList targets = m_buildTargets; | 
					
						
							|  |  |  |     QStringList arguments = m_makeArguments; | 
					
						
							| 
									
										
										
										
											2009-07-13 11:39:08 +02:00
										 |  |  |     QStringList replacedArguments; | 
					
						
							|  |  |  |     foreach (const QString &arg, arguments) { | 
					
						
							|  |  |  |       replacedArguments.append(vm->resolve(arg)); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     foreach (const QString &arg, targets) { | 
					
						
							|  |  |  |       replacedArguments.append(vm->resolve(arg)); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  |     return replacedArguments; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  | QString GenericMakeStep::makeCommand() const | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     QString command = m_makeCommand; | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  |     if (command.isEmpty()) { | 
					
						
							| 
									
										
										
										
											2009-11-26 14:43:27 +01:00
										 |  |  |         GenericProject *pro = genericBuildConfiguration()->genericProject(); | 
					
						
							| 
									
										
										
										
											2009-11-23 15:47:26 +01:00
										 |  |  |         if (ProjectExplorer::ToolChain *toolChain = pro->toolChain()) | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  |             command = toolChain->makeCommand(); | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |             command = QLatin1String("make"); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return command; | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | void GenericMakeStep::run(QFutureInterface<bool> &fi) | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     AbstractProcessStep::run(fi); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  | QString GenericMakeStep::id() | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     return Constants::MAKESTEP; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | QString GenericMakeStep::displayName() | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     return "Make"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | ProjectExplorer::BuildStepConfigWidget *GenericMakeStep::createConfigWidget() | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  |     return new GenericMakeStepConfigWidget(this); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | bool GenericMakeStep::immutable() const | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  | bool GenericMakeStep::buildsTarget(const QString &target) const | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     return m_buildTargets.contains(target); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  | void GenericMakeStep::setBuildTarget(const QString &target, bool on) | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     QStringList old = m_buildTargets; | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  |     if (on && !old.contains(target)) | 
					
						
							| 
									
										
										
										
											2009-10-15 19:06:51 +02:00
										 |  |  |          old << target; | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  |     else if(!on && old.contains(target)) | 
					
						
							| 
									
										
										
										
											2009-10-27 16:14:18 +01:00
										 |  |  |         old.removeOne(target); | 
					
						
							| 
									
										
										
										
											2009-10-15 19:06:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     m_buildTargets = old; | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | // GenericMakeStepConfigWidget
 | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | //
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | GenericMakeStepConfigWidget::GenericMakeStepConfigWidget(GenericMakeStep *makeStep) | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  |     : m_makeStep(makeStep) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  |     m_ui = new Ui::GenericMakeStep; | 
					
						
							|  |  |  |     m_ui->setupUi(this); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // TODO update this list also on rescans of the GenericLists.txt
 | 
					
						
							| 
									
										
										
										
											2009-11-26 14:43:27 +01:00
										 |  |  |     GenericProject *pro = m_makeStep->genericBuildConfiguration()->genericProject(); | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  |     foreach (const QString &target, pro->targets()) { | 
					
						
							|  |  |  |         QListWidgetItem *item = new QListWidgetItem(target, m_ui->targetsList); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  |         item->setFlags(item->flags() | Qt::ItemIsUserCheckable); | 
					
						
							|  |  |  |         item->setCheckState(Qt::Unchecked); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  |     connect(m_ui->targetsList, SIGNAL(itemChanged(QListWidgetItem*)), | 
					
						
							|  |  |  |             this, SLOT(itemChanged(QListWidgetItem*))); | 
					
						
							| 
									
										
										
										
											2009-03-18 17:43:55 +01:00
										 |  |  |     connect(m_ui->makeLineEdit, SIGNAL(textEdited(QString)), | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  |             this, SLOT(makeLineEditTextEdited())); | 
					
						
							| 
									
										
										
										
											2009-03-18 17:43:55 +01:00
										 |  |  |     connect(m_ui->makeArgumentsLineEdit, SIGNAL(textEdited(QString)), | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  |             this, SLOT(makeArgumentsLineEditTextEdited())); | 
					
						
							| 
									
										
										
										
											2009-08-12 17:02:28 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     connect(ProjectExplorer::ProjectExplorerPlugin::instance(), SIGNAL(settingsChanged()), | 
					
						
							|  |  |  |             this, SLOT(updateMakeOverrrideLabel())); | 
					
						
							|  |  |  |     connect(ProjectExplorer::ProjectExplorerPlugin::instance(), SIGNAL(settingsChanged()), | 
					
						
							|  |  |  |             this, SLOT(updateDetails())); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | QString GenericMakeStepConfigWidget::displayName() const | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     return "Make"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-12 17:02:28 +02:00
										 |  |  | // TODO: Label should update when tool chain is changed
 | 
					
						
							|  |  |  | void GenericMakeStepConfigWidget::updateMakeOverrrideLabel() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     m_ui->makeLabel->setText(tr("Override %1:").arg(m_makeStep->makeCommand())); | 
					
						
							| 
									
										
										
										
											2009-08-12 17:02:28 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  | void GenericMakeStepConfigWidget::init() | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-08-12 17:02:28 +02:00
										 |  |  |     updateMakeOverrrideLabel(); | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     QString makeCommand = m_makeStep->m_makeCommand; | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  |     m_ui->makeLineEdit->setText(makeCommand); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     const QStringList &makeArguments = m_makeStep->m_makeArguments; | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  |     m_ui->makeArgumentsLineEdit->setText(ProjectExplorer::Environment::joinArgumentList(makeArguments)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Disconnect to make the changes to the items
 | 
					
						
							|  |  |  |     disconnect(m_ui->targetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*))); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int count = m_ui->targetsList->count(); | 
					
						
							|  |  |  |     for (int i = 0; i < count; ++i) { | 
					
						
							|  |  |  |         QListWidgetItem *item = m_ui->targetsList->item(i); | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |         item->setCheckState(m_makeStep->buildsTarget(item->text()) ? Qt::Checked : Qt::Unchecked); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  |     updateDetails(); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  |     // and connect again
 | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  |     connect(m_ui->targetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*))); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  | void GenericMakeStepConfigWidget::updateDetails() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     m_summaryText = tr("<b>Make:</b> %1 %2") | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |                     .arg(m_makeStep->makeCommand(), | 
					
						
							|  |  |  |                          ProjectExplorer::Environment::joinArgumentList(m_makeStep->replacedArguments())); | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  |     emit updateSummary(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-06 15:31:32 +02:00
										 |  |  | QString GenericMakeStepConfigWidget::summaryText() const | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  |     return m_summaryText; | 
					
						
							| 
									
										
										
										
											2009-08-06 15:31:32 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  | void GenericMakeStepConfigWidget::itemChanged(QListWidgetItem *item) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     m_makeStep->setBuildTarget(item->text(), item->checkState() & Qt::Checked); | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  |     updateDetails(); | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void GenericMakeStepConfigWidget::makeLineEditTextEdited() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     m_makeStep->m_makeCommand = m_ui->makeLineEdit->text(); | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  |     updateDetails(); | 
					
						
							| 
									
										
										
										
											2009-03-18 15:58:36 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void GenericMakeStepConfigWidget::makeArgumentsLineEditTextEdited() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  |     m_makeStep->m_makeArguments = | 
					
						
							|  |  |  |             ProjectExplorer::Environment::parseCombinedArgString(m_ui->makeArgumentsLineEdit->text()); | 
					
						
							| 
									
										
										
										
											2009-08-06 18:31:46 +02:00
										 |  |  |     updateDetails(); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							| 
									
										
										
										
											2009-03-18 13:33:00 +01:00
										 |  |  | // GenericMakeStepFactory
 | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | //
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  | bool GenericMakeStepFactory::canCreate(const QString &id) const | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  |     return (Constants::MAKESTEP == id); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 15:47:26 +01:00
										 |  |  | ProjectExplorer::BuildStep *GenericMakeStepFactory::create(ProjectExplorer::BuildConfiguration *bc, | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  |                                                            const QString &id) const | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  |     Q_ASSERT(id == Constants::MAKESTEP); | 
					
						
							| 
									
										
										
										
											2009-11-23 15:47:26 +01:00
										 |  |  |     return new GenericMakeStep(bc); | 
					
						
							| 
									
										
										
										
											2009-10-27 14:16:28 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ProjectExplorer::BuildStep *GenericMakeStepFactory::clone(ProjectExplorer::BuildStep *bs, | 
					
						
							|  |  |  |                                                           ProjectExplorer::BuildConfiguration *bc) const | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return new GenericMakeStep(static_cast<GenericMakeStep*>(bs), bc); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  | QStringList GenericMakeStepFactory::canCreateForBuildConfiguration(ProjectExplorer::BuildConfiguration *bc) const | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  |     Q_UNUSED(bc); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  |     return QStringList(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  | QString GenericMakeStepFactory::displayNameForId(const QString &id) const | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  |     QTC_ASSERT(id == Constants::MAKESTEP, return QString()); | 
					
						
							| 
									
										
										
										
											2009-03-10 14:20:07 +01:00
										 |  |  |     return "Make"; | 
					
						
							|  |  |  | } |