aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2009-08-21 15:59:17 +0200
committercon <qtc-committer@nokia.com>2009-09-10 10:55:14 +0200
commitb48c2715ba5c36a9ab47f4acbf1c35e0ae658023 (patch)
treed8d014d541c7f11cbb77c89f7cd941a59aa2594c
parentf6ab135517d9c45b711d732bc02f107c2ee8ca1e (diff)
Fixed problem with changing tool chain type for generic projectsv1.2.901.2.90
Some fixes were needed after the tool chain type was changed from QString to an enum. Task-number: 259939 (cherry picked from commit a5b22b18bdcf57f646f39246367ecfea6acd3ff0)
-rw-r--r--src/plugins/genericprojectmanager/genericproject.cpp52
-rw-r--r--src/plugins/genericprojectmanager/genericproject.h9
-rw-r--r--src/plugins/projectexplorer/toolchain.cpp2
3 files changed, 37 insertions, 26 deletions
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index 03762dbc95..d012914dd9 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -325,31 +325,30 @@ void GenericProject::setIncludePaths(const QStringList &includePaths)
QByteArray GenericProject::defines() const
{ return m_defines; }
-void GenericProject::setToolChainId(int t)
+void GenericProject::setToolChainType(ProjectExplorer::ToolChain::ToolChainType type)
{
- ProjectExplorer::ToolChain::ToolChainType toolChainId = ProjectExplorer::ToolChain::ToolChainType(t);
using namespace ProjectExplorer;
- m_toolChainId = toolChainId;
+ m_toolChainType = type;
delete m_toolChain;
m_toolChain = 0;
- if (toolChainId == ToolChain::MinGW) {
+ if (type == ToolChain::MinGW) {
const QLatin1String qmake_cxx("g++"); // ### FIXME
const QString mingwDirectory; // ### FIXME
m_toolChain = ToolChain::createMinGWToolChain(qmake_cxx, mingwDirectory);
- } else if (toolChainId == ToolChain::MSVC) {
+ } else if (type == ToolChain::MSVC) {
const QString msvcVersion; // ### FIXME
m_toolChain = ToolChain::createMSVCToolChain(msvcVersion, false);
- } else if (toolChainId == ToolChain::WINCE) {
+ } else if (type == ToolChain::WINCE) {
const QString msvcVersion, wincePlatform; // ### FIXME
m_toolChain = ToolChain::createWinCEToolChain(msvcVersion, wincePlatform);
- } else if (toolChainId == ToolChain::GCC || toolChainId == ToolChain::GCC) {
+ } else if (type == ToolChain::GCC || type == ToolChain::GCC) {
const QLatin1String qmake_cxx("g++"); // ### FIXME
m_toolChain = ToolChain::createGccToolChain(qmake_cxx);
}
@@ -382,8 +381,8 @@ ProjectExplorer::ToolChain *GenericProject::toolChain() const
return m_toolChain;
}
-ProjectExplorer::ToolChain::ToolChainType GenericProject::toolChainId() const
-{ return m_toolChainId; }
+ProjectExplorer::ToolChain::ToolChainType GenericProject::toolChainType() const
+{ return m_toolChainType; }
QString GenericProject::name() const
{
@@ -494,21 +493,20 @@ bool GenericProject::restoreSettingsImpl(ProjectExplorer::PersistentSettingsRead
using namespace ProjectExplorer;
QString toolChainName = reader.restoreValue(QLatin1String("toolChain")).toString();
bool convertible = false;
- ToolChain::ToolChainType toolChainId = ToolChain::GCC;
- toolChainId = ToolChain::ToolChainType(toolChainName.toInt(&convertible));
+ ToolChain::ToolChainType type = ToolChain::ToolChainType(toolChainName.toInt(&convertible));
if (!convertible) {
// legacy string values
if (toolChainName == QLatin1String("gcc"))
- toolChainId = ToolChain::GCC;
+ type = ToolChain::GCC;
else if (toolChainName == QLatin1String("mingw"))
- toolChainId = ToolChain::MinGW;
+ type = ToolChain::MinGW;
else if (toolChainName == QLatin1String("msvc"))
- toolChainId = ToolChain::MSVC;
+ type = ToolChain::MSVC;
else if (toolChainName == QLatin1String("wince"))
- toolChainId = ToolChain::WINCE;
+ type = ToolChain::WINCE;
}
- setToolChainId(toolChainId); // ### move
+ setToolChainType(type); // ### move
const QStringList userIncludePaths =
reader.restoreValue(QLatin1String("includePaths")).toStringList();
@@ -523,7 +521,7 @@ void GenericProject::saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter
{
Project::saveSettingsImpl(writer);
- writer.saveValue(QLatin1String("toolChain"), m_toolChainId);
+ writer.saveValue(QLatin1String("toolChain"), m_toolChainType);
writer.saveValue(QLatin1String("includePaths"), m_includePaths);
}
@@ -548,13 +546,18 @@ GenericBuildSettingsWidget::GenericBuildSettingsWidget(GenericProject *project)
QComboBox *toolChainChooser = new QComboBox;
toolChainChooser->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
using namespace ProjectExplorer;
+ int index = 0;
+ int selectedIndex = -1;
foreach (ToolChain::ToolChainType tc, ToolChain::supportedToolChains()) {
- toolChainChooser->addItem(ToolChain::toolChainName(tc), tc);
+ toolChainChooser->addItem(ToolChain::toolChainName(tc), QVariant::fromValue<ToolChain::ToolChainType>(tc));
+ if (m_project->toolChainType() == tc)
+ selectedIndex = index;
+ ++index;
}
- toolChainChooser->setCurrentIndex(toolChainChooser->findData(m_project->toolChainId()));
+ toolChainChooser->setCurrentIndex(selectedIndex);
fl->addRow(tr("Tool Chain:"), toolChainChooser);
- connect(toolChainChooser, SIGNAL(activated(QString)), m_project, SLOT(setToolChainId(int)));
+ connect(toolChainChooser, SIGNAL(activated(int)), this, SLOT(toolChainSelected(int)));
}
GenericBuildSettingsWidget::~GenericBuildSettingsWidget()
@@ -574,6 +577,15 @@ void GenericBuildSettingsWidget::buildDirectoryChanged()
m_project->setValue(m_buildConfiguration, "buildDirectory", m_pathChooser->path());
}
+void GenericBuildSettingsWidget::toolChainSelected(int index)
+{
+ using namespace ProjectExplorer;
+
+ QComboBox *toolChainChooser = qobject_cast<QComboBox*>(sender());
+ ToolChain::ToolChainType type = toolChainChooser->itemData(index).value<ToolChain::ToolChainType>();
+ m_project->setToolChainType(type);
+}
+
////////////////////////////////////////////////////////////////////////////////////
// GenericProjectFile
////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/plugins/genericprojectmanager/genericproject.h b/src/plugins/genericprojectmanager/genericproject.h
index c775d804c6..686ea7b9dd 100644
--- a/src/plugins/genericprojectmanager/genericproject.h
+++ b/src/plugins/genericprojectmanager/genericproject.h
@@ -111,10 +111,8 @@ public:
QStringList projectIncludePaths() const;
QStringList files() const;
QStringList generated() const;
- ProjectExplorer::ToolChain::ToolChainType toolChainId() const;
-
-public Q_SLOTS:
- void setToolChainId(int);
+ ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
+ void setToolChainType(ProjectExplorer::ToolChain::ToolChainType type);
protected:
virtual void saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter &writer);
@@ -140,7 +138,7 @@ private:
GenericProjectNode *m_rootNode;
ProjectExplorer::ToolChain *m_toolChain;
- ProjectExplorer::ToolChain::ToolChainType m_toolChainId;
+ ProjectExplorer::ToolChain::ToolChainType m_toolChainType;
};
class GenericProjectFile : public Core::IFile
@@ -183,6 +181,7 @@ public:
private Q_SLOTS:
void buildDirectoryChanged();
+ void toolChainSelected(int index);
private:
GenericProject *m_project;
diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp
index c3beba59f8..1050514816 100644
--- a/src/plugins/projectexplorer/toolchain.cpp
+++ b/src/plugins/projectexplorer/toolchain.cpp
@@ -135,7 +135,7 @@ QString ToolChain::toolChainName(ToolChainType tc)
return QCoreApplication::translate("ToolChain", "<Invalid>");
case UNKNOWN:
break;
- default:
+ default:
Q_ASSERT("Missing name for Toolchaintype");
};
return QCoreApplication::translate("ToolChain", "<Unknown>");