summaryrefslogtreecommitdiff
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)
downloadqt-creator-1.2.90.tar.gz
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>");