summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <qthjk@ovi.com>2012-08-16 15:59:10 +0200
committerhjk <qthjk@ovi.com>2012-08-16 17:11:55 +0200
commit958965199924bec357b05ed650bc4f191d8ef353 (patch)
tree7b9ef432aaaea3f97e88895922186ea36acd1618
parent6f32b8e25722a461f9e24e32a8fd94929926bda2 (diff)
downloadqt-creator-958965199924bec357b05ed650bc4f191d8ef353.tar.gz
toolchainoptionpage: make name editable next to other fields
Change-Id: I35bc69c9c26a0cf4a8ed4e1e6044428d24cdb003 Reviewed-by: hjk <qthjk@ovi.com>
-rw-r--r--src/libs/utils/detailswidget.cpp10
-rw-r--r--src/libs/utils/detailswidget.h1
-rw-r--r--src/plugins/android/androidtoolchain.cpp22
-rw-r--r--src/plugins/android/androidtoolchain.h8
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.cpp25
-rw-r--r--src/plugins/projectexplorer/gcctoolchainfactories.h9
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.cpp15
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.h9
-rw-r--r--src/plugins/projectexplorer/toolchainconfigwidget.cpp36
-rw-r--r--src/plugins/projectexplorer/toolchainconfigwidget.h21
-rw-r--r--src/plugins/projectexplorer/toolchainoptionspage.cpp80
-rw-r--r--src/plugins/projectexplorer/toolchainoptionspage.h9
-rw-r--r--src/plugins/projectexplorer/wincetoolchain.cpp9
-rw-r--r--src/plugins/projectexplorer/wincetoolchain.h9
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp7
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h10
16 files changed, 118 insertions, 162 deletions
diff --git a/src/libs/utils/detailswidget.cpp b/src/libs/utils/detailswidget.cpp
index 1d52577c12..ff5b8ca083 100644
--- a/src/libs/utils/detailswidget.cpp
+++ b/src/libs/utils/detailswidget.cpp
@@ -339,6 +339,16 @@ QWidget *DetailsWidget::widget() const
return d->m_widget;
}
+QWidget *DetailsWidget::takeWidget()
+{
+ QWidget *widget = d->m_widget;
+ d->m_widget = 0;
+ d->m_grid->removeWidget(widget);
+ if (widget)
+ widget->setParent(0);
+ return widget;
+}
+
void DetailsWidget::setWidget(QWidget *widget)
{
if (d->m_widget == widget)
diff --git a/src/libs/utils/detailswidget.h b/src/libs/utils/detailswidget.h
index 70454fc621..6ad51e199f 100644
--- a/src/libs/utils/detailswidget.h
+++ b/src/libs/utils/detailswidget.h
@@ -72,6 +72,7 @@ public:
void setWidget(QWidget *widget);
QWidget *widget() const;
+ QWidget *takeWidget();
void setToolWidget(Utils::FadingPanel *widget);
QWidget *toolWidget() const;
diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp
index ef88ec2a15..6b0a7e94f1 100644
--- a/src/plugins/android/androidtoolchain.cpp
+++ b/src/plugins/android/androidtoolchain.cpp
@@ -44,6 +44,7 @@
#include <utils/environment.h>
#include <QDir>
+#include <QFormLayout>
#include <QLabel>
#include <QVBoxLayout>
@@ -204,25 +205,8 @@ QList<Abi> AndroidToolChain::detectSupportedAbis() const
AndroidToolChainConfigWidget::AndroidToolChainConfigWidget(AndroidToolChain *tc) :
ToolChainConfigWidget(tc)
{
- QVBoxLayout *layout = new QVBoxLayout(this);
- QLabel *label = new QLabel;
- label->setText(tr("NDK Root: %1").arg(AndroidConfigurations::instance().config().ndkLocation.toUserOutput()));
- layout->addWidget(label);
-}
-
-void AndroidToolChainConfigWidget::apply()
-{
- // nothing to do!
-}
-
-void AndroidToolChainConfigWidget::discard()
-{
- // nothing to do!
-}
-
-bool AndroidToolChainConfigWidget::isDirty() const
-{
- return false;
+ QLabel *label = new QLabel(AndroidConfigurations::instance().config().ndkLocation.toUserOutput());
+ m_mainLayout->addRow(tr("NDK Root:"), label);
}
// --------------------------------------------------------------------------
diff --git a/src/plugins/android/androidtoolchain.h b/src/plugins/android/androidtoolchain.h
index f91310e941..aed65a0451 100644
--- a/src/plugins/android/androidtoolchain.h
+++ b/src/plugins/android/androidtoolchain.h
@@ -80,9 +80,11 @@ class AndroidToolChainConfigWidget : public ProjectExplorer::ToolChainConfigWidg
public:
AndroidToolChainConfigWidget(AndroidToolChain *);
- void apply();
- void discard();
- bool isDirty() const;
+private:
+ void applyImpl() {}
+ void discardImpl() {}
+ bool isDirtyImpl() const { return false; }
+ void makeReadOnlyImpl() {}
};
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index 7fccf6b847..2c626d95a2 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -676,25 +676,13 @@ Internal::GccToolChainConfigWidget::GccToolChainConfigWidget(GccToolChain *tc) :
{
Q_ASSERT(tc);
- Utils::DetailsWidget *details = new Utils::DetailsWidget(this);
- details->setState(Utils::DetailsWidget::NoSummary);
- QVBoxLayout *box = new QVBoxLayout(this);
- box->setMargin(0);
- box->addWidget(details);
-
- QWidget *widget = new QWidget(details);
- details->setWidget(widget);
-
- QFormLayout *layout = new QFormLayout(widget);
-
const QStringList gnuVersionArgs = QStringList(QLatin1String("--version"));
m_compilerCommand->setExpectedKind(Utils::PathChooser::ExistingCommand);
m_compilerCommand->setCommandVersionArguments(gnuVersionArgs);
- layout->addRow(tr("&Compiler path:"), m_compilerCommand);
- layout->addRow(tr("&ABI:"), m_abiWidget);
+ m_mainLayout->addRow(tr("&Compiler path:"), m_compilerCommand);
+ m_mainLayout->addRow(tr("&ABI:"), m_abiWidget);
m_abiWidget->setEnabled(false);
-
- addErrorLabel(layout);
+ addErrorLabel();
setFromToolchain();
@@ -702,7 +690,7 @@ Internal::GccToolChainConfigWidget::GccToolChainConfigWidget(GccToolChain *tc) :
connect(m_abiWidget, SIGNAL(abiChanged()), this, SIGNAL(dirty()));
}
-void Internal::GccToolChainConfigWidget::apply()
+void Internal::GccToolChainConfigWidget::applyImpl()
{
if (toolChain()->isAutoDetected())
return;
@@ -727,7 +715,7 @@ void Internal::GccToolChainConfigWidget::setFromToolchain()
blockSignals(blocked);
}
-bool Internal::GccToolChainConfigWidget::isDirty() const
+bool Internal::GccToolChainConfigWidget::isDirtyImpl() const
{
GccToolChain *tc = static_cast<GccToolChain *>(toolChain());
Q_ASSERT(tc);
@@ -735,12 +723,11 @@ bool Internal::GccToolChainConfigWidget::isDirty() const
|| m_abiWidget->currentAbi() != tc->targetAbi();
}
-void Internal::GccToolChainConfigWidget::makeReadOnly()
+void Internal::GccToolChainConfigWidget::makeReadOnlyImpl()
{
m_compilerCommand->setEnabled(false);
m_abiWidget->setEnabled(false);
m_isReadOnly = true;
- ToolChainConfigWidget::makeReadOnly();
}
void Internal::GccToolChainConfigWidget::handleCompilerCommandChange()
diff --git a/src/plugins/projectexplorer/gcctoolchainfactories.h b/src/plugins/projectexplorer/gcctoolchainfactories.h
index 4cde5f5255..661a196858 100644
--- a/src/plugins/projectexplorer/gcctoolchainfactories.h
+++ b/src/plugins/projectexplorer/gcctoolchainfactories.h
@@ -85,15 +85,16 @@ class GccToolChainConfigWidget : public ToolChainConfigWidget
public:
GccToolChainConfigWidget(GccToolChain *);
- void apply();
- void discard() { setFromToolchain(); }
- bool isDirty() const;
- void makeReadOnly();
private slots:
void handleCompilerCommandChange();
private:
+ void applyImpl();
+ void discardImpl() { setFromToolchain(); }
+ bool isDirtyImpl() const;
+ void makeReadOnlyImpl();
+
void setFromToolchain();
Utils::PathChooser *m_compilerCommand;
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index 5fd3d29b35..74dc957bbc 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -405,17 +405,13 @@ MsvcToolChainConfigWidget::MsvcToolChainConfigWidget(ToolChain *tc) :
ToolChainConfigWidget(tc),
m_varsBatDisplayLabel(new QLabel(this))
{
- QFormLayout *formLayout = new QFormLayout(this);
- formLayout->addRow(new QLabel(tc->displayName()));
+ m_mainLayout->addRow(new QLabel(tc->displayName()));
m_varsBatDisplayLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
- formLayout->addRow(tr("Initialization:"), m_varsBatDisplayLabel);
- addErrorLabel(formLayout);
+ m_mainLayout->addRow(tr("Initialization:"), m_varsBatDisplayLabel);
+ addErrorLabel();
setFromToolChain();
}
-void MsvcToolChainConfigWidget::apply()
-{ }
-
void MsvcToolChainConfigWidget::setFromToolChain()
{
MsvcToolChain *tc = static_cast<MsvcToolChain *>(toolChain());
@@ -428,11 +424,6 @@ void MsvcToolChainConfigWidget::setFromToolChain()
m_varsBatDisplayLabel->setText(varsBatDisplay);
}
-bool MsvcToolChainConfigWidget::isDirty() const
-{
- return false;
-}
-
// --------------------------------------------------------------------------
// MsvcToolChainFactory
// --------------------------------------------------------------------------
diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h
index 8cb2c037f7..bfec69250f 100644
--- a/src/plugins/projectexplorer/msvctoolchain.h
+++ b/src/plugins/projectexplorer/msvctoolchain.h
@@ -115,11 +115,12 @@ class MsvcToolChainConfigWidget : public ToolChainConfigWidget
public:
MsvcToolChainConfigWidget(ToolChain *);
- void apply();
- void discard() { setFromToolChain(); }
- bool isDirty() const;
-
private:
+ void applyImpl() {}
+ void discardImpl() { setFromToolChain(); }
+ bool isDirtyImpl() const { return false; }
+ void makeReadOnlyImpl() {}
+
void setFromToolChain();
QLabel *m_varsBatDisplayLabel;
diff --git a/src/plugins/projectexplorer/toolchainconfigwidget.cpp b/src/plugins/projectexplorer/toolchainconfigwidget.cpp
index 8483b676dc..93d280cfeb 100644
--- a/src/plugins/projectexplorer/toolchainconfigwidget.cpp
+++ b/src/plugins/projectexplorer/toolchainconfigwidget.cpp
@@ -47,11 +47,29 @@ ToolChainConfigWidget::ToolChainConfigWidget(ToolChain *tc) :
m_toolChain(tc), m_errorLabel(0)
{
QTC_CHECK(tc);
+ m_nameLineEdit = new QLineEdit(this);
+ m_nameLineEdit->setText(tc->displayName());
+ m_mainLayout = new QFormLayout(this);
+ m_mainLayout->addRow(tr("Name:"), m_nameLineEdit);
+
+ connect(m_nameLineEdit, SIGNAL(textChanged(QString)), SIGNAL(dirty()));
+}
+
+void ToolChainConfigWidget::apply()
+{
+ m_toolChain->setDisplayName(m_nameLineEdit->text());
+ applyImpl();
+}
+
+void ToolChainConfigWidget::discard()
+{
+ m_nameLineEdit->setText(m_toolChain->displayName());
+ discardImpl();
}
-void ToolChainConfigWidget::setDisplayName(const QString &name)
+bool ToolChainConfigWidget::isDirty() const
{
- m_toolChain->setDisplayName(name);
+ return m_nameLineEdit->text() != m_toolChain->displayName() || isDirtyImpl();
}
ToolChain *ToolChainConfigWidget::toolChain() const
@@ -60,24 +78,18 @@ ToolChain *ToolChainConfigWidget::toolChain() const
}
void ToolChainConfigWidget::makeReadOnly()
-{ }
-
-void ToolChainConfigWidget::addErrorLabel(QFormLayout *lt)
{
- if (!m_errorLabel) {
- m_errorLabel = new QLabel;
- m_errorLabel->setVisible(false);
- }
- lt->addRow(m_errorLabel);
+ m_nameLineEdit->setEnabled(false);
+ makeReadOnlyImpl();
}
-void ToolChainConfigWidget::addErrorLabel(QGridLayout *lt, int row, int column, int colSpan)
+void ToolChainConfigWidget::addErrorLabel()
{
if (!m_errorLabel) {
m_errorLabel = new QLabel;
m_errorLabel->setVisible(false);
}
- lt->addWidget(m_errorLabel, row, column, 1, colSpan);
+ m_mainLayout->addRow(m_errorLabel);
}
void ToolChainConfigWidget::setErrorMessage(const QString &m)
diff --git a/src/plugins/projectexplorer/toolchainconfigwidget.h b/src/plugins/projectexplorer/toolchainconfigwidget.h
index 7ae8616e90..db4785abf3 100644
--- a/src/plugins/projectexplorer/toolchainconfigwidget.h
+++ b/src/plugins/projectexplorer/toolchainconfigwidget.h
@@ -40,6 +40,7 @@
QT_BEGIN_NAMESPACE
class QFormLayout;
class QGridLayout;
+class QLineEdit;
class QLabel;
QT_END_NAMESPACE
@@ -58,14 +59,12 @@ class PROJECTEXPLORER_EXPORT ToolChainConfigWidget : public QWidget
public:
ToolChainConfigWidget(ProjectExplorer::ToolChain *);
- void setDisplayName(const QString &);
- virtual void apply() = 0;
- virtual void discard() = 0;
- virtual bool isDirty() const = 0;
-
ProjectExplorer::ToolChain *toolChain() const;
- virtual void makeReadOnly();
+ void apply();
+ void discard();
+ bool isDirty() const;
+ void makeReadOnly();
signals:
void dirty();
@@ -75,8 +74,14 @@ protected slots:
void clearErrorMessage();
protected:
- void addErrorLabel(QFormLayout *lt);
- void addErrorLabel(QGridLayout *lt, int row = 0, int column = 0, int colSpan = 1);
+ virtual void applyImpl() = 0;
+ virtual void discardImpl() = 0;
+ virtual bool isDirtyImpl() const = 0;
+ virtual void makeReadOnlyImpl() = 0;
+
+ void addErrorLabel();
+ QFormLayout *m_mainLayout;
+ QLineEdit *m_nameLineEdit;
private:
ToolChain *m_toolChain;
diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp
index 87a1178a1e..5055ce9f54 100644
--- a/src/plugins/projectexplorer/toolchainoptionspage.cpp
+++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp
@@ -38,6 +38,7 @@
#include <coreplugin/icore.h>
#include <extensionsystem/pluginmanager.h>
+#include <utils/detailswidget.h>
#include <utils/qtcassert.h>
#include <QAction>
@@ -67,11 +68,8 @@ public:
if (p)
p->childNodes.append(this);
widget = tc ? tc->configurationWidget() : 0;
- if (widget) {
- if (tc && tc->isAutoDetected())
- widget->makeReadOnly();
- widget->setVisible(false);
- }
+ if (widget && tc->isAutoDetected())
+ widget->makeReadOnly();
}
~ToolChainNode()
@@ -86,7 +84,6 @@ public:
}
ToolChainNode *parent;
- QString newName;
QList<ToolChainNode *> childNodes;
ToolChain *toolChain;
ToolChainConfigWidget *widget;
@@ -97,12 +94,9 @@ public:
// ToolChainModel
// --------------------------------------------------------------------------
-ToolChainModel::ToolChainModel(QBoxLayout *parentLayout, QObject *parent) :
- QAbstractItemModel(parent),
- m_parentLayout(parentLayout)
+ToolChainModel::ToolChainModel(QObject *parent) :
+ QAbstractItemModel(parent)
{
- Q_ASSERT(m_parentLayout);
-
connect(ToolChainManager::instance(), SIGNAL(toolChainAdded(ProjectExplorer::ToolChain*)),
this, SLOT(addToolChain(ProjectExplorer::ToolChain*)));
connect(ToolChainManager::instance(), SIGNAL(toolChainRemoved(ProjectExplorer::ToolChain*)),
@@ -189,16 +183,13 @@ QVariant ToolChainModel::data(const QModelIndex &index, int role) const
if (node->toolChain) {
if (role == Qt::FontRole) {
QFont f = QApplication::font();
- if (node->changed) {
+ if (node->changed)
f.setBold(true);
- }
return f;
}
- if (role == Qt::DisplayRole || role == Qt::EditRole) {
- if (index.column() == 0) {
- return node->newName.isEmpty() ?
- node->toolChain->displayName() : node->newName;
- }
+ if (role == Qt::DisplayRole) {
+ if (index.column() == 0)
+ return node->toolChain->displayName();
return node->toolChain->typeDisplayName();
}
if (role == Qt::ToolTipRole) {
@@ -209,21 +200,6 @@ QVariant ToolChainModel::data(const QModelIndex &index, int role) const
return QVariant();
}
-bool ToolChainModel::setData(const QModelIndex &index, const QVariant &value, int role)
-{
- if (!index.isValid())
- return false;
-
- ToolChainNode *node = static_cast<ToolChainNode *>(index.internalPointer());
- Q_ASSERT(node);
- if (index.column() != 0 || !node->toolChain || role != Qt::EditRole)
- return false;
- node->newName = value.toString();
- if (!node->newName.isEmpty() && node->newName != node->toolChain->displayName())
- node->changed = true;
- return true;
-}
-
Qt::ItemFlags ToolChainModel::flags(const QModelIndex &index) const
{
if (!index.isValid())
@@ -234,12 +210,7 @@ Qt::ItemFlags ToolChainModel::flags(const QModelIndex &index) const
if (!node->toolChain)
return Qt::ItemIsEnabled;
- if (node->toolChain->isAutoDetected())
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
- else if (index.column() == 0)
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
- else
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
+ return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
}
QVariant ToolChainModel::headerData(int section, Qt::Orientation orientation, int role) const
@@ -316,10 +287,6 @@ void ToolChainModel::apply()
Q_ASSERT(n);
if (n->changed) {
Q_ASSERT(n->toolChain);
- if (!n->newName.isEmpty()) {
- n->toolChain->setDisplayName(n->newName);
- n->newName.clear();
- }
if (n->widget)
n->widget->apply();
n->changed = false;
@@ -408,10 +375,8 @@ QModelIndex ToolChainModel::index(ToolChainNode *node, int column) const
ToolChainNode *ToolChainModel::createNode(ToolChainNode *parent, ToolChain *tc, bool changed)
{
ToolChainNode *node = new ToolChainNode(parent, tc, changed);
- if (node->widget) {
- m_parentLayout->addWidget(node->widget);
+ if (node->widget)
connect(node->widget, SIGNAL(dirty()), this, SLOT(setDirty()));
- }
return node;
}
@@ -475,8 +440,8 @@ void ToolChainModel::removeToolChain(ToolChain *tc)
// --------------------------------------------------------------------------
ToolChainOptionsPage::ToolChainOptionsPage() :
- m_model(0), m_selectionModel(0), m_currentTcWidget(0),
- m_toolChainView(0), m_addButton(0), m_cloneButton(0), m_delButton(0)
+ m_model(0), m_selectionModel(0), m_toolChainView(0), m_container(0),
+ m_addButton(0), m_cloneButton(0), m_delButton(0)
{
setId(QLatin1String(Constants::TOOLCHAIN_SETTINGS_PAGE_ID));
setDisplayName(tr("Tool Chains"));
@@ -491,8 +456,6 @@ QWidget *ToolChainOptionsPage::createPage(QWidget *parent)
// Actual page setup:
m_configWidget = new QWidget(parent);
- m_currentTcWidget = 0;
-
m_toolChainView = new QTreeView(m_configWidget);
m_toolChainView->setUniformRowHeights(true);
m_toolChainView->header()->setStretchLastSection(false);
@@ -501,6 +464,10 @@ QWidget *ToolChainOptionsPage::createPage(QWidget *parent)
m_cloneButton = new QPushButton(tr("Clone"), m_configWidget);
m_delButton = new QPushButton(tr("Remove"), m_configWidget);
+ m_container = new Utils::DetailsWidget(m_configWidget);
+ m_container->setState(Utils::DetailsWidget::NoSummary);
+ m_container->setVisible(false);
+
QVBoxLayout *buttonLayout = new QVBoxLayout();
buttonLayout->setSpacing(6);
buttonLayout->setContentsMargins(0, 0, 0, 0);
@@ -511,6 +478,7 @@ QWidget *ToolChainOptionsPage::createPage(QWidget *parent)
QVBoxLayout *verticalLayout = new QVBoxLayout();
verticalLayout->addWidget(m_toolChainView);
+ verticalLayout->addWidget(m_container);
QHBoxLayout *horizontalLayout = new QHBoxLayout(m_configWidget);
horizontalLayout->addLayout(verticalLayout);
@@ -587,7 +555,6 @@ void ToolChainOptionsPage::finish()
m_configWidget = 0; // deleted by settingsdialog
m_selectionModel = 0; // child of m_configWidget
- m_currentTcWidget = 0; // deleted by the model
// childs of m_configWidget
m_toolChainView = 0;
m_addButton = 0;
@@ -602,14 +569,11 @@ bool ToolChainOptionsPage::matches(const QString &s) const
void ToolChainOptionsPage::toolChainSelectionChanged()
{
- if (m_currentTcWidget)
- m_currentTcWidget->setVisible(false);
-
QModelIndex current = currentIndex();
- m_currentTcWidget = current.isValid() ? m_model->widget(current) : 0;
-
- if (m_currentTcWidget)
- m_currentTcWidget->setVisible(true);
+ (void)m_container->takeWidget(); // Prevent deletion.
+ QWidget *currentTcWidget = current.isValid() ? m_model->widget(current) : 0;
+ m_container->setWidget(currentTcWidget);
+ m_container->setVisible(currentTcWidget != 0);
updateState();
}
diff --git a/src/plugins/projectexplorer/toolchainoptionspage.h b/src/plugins/projectexplorer/toolchainoptionspage.h
index 9cffdf0f6b..2e818a2b5b 100644
--- a/src/plugins/projectexplorer/toolchainoptionspage.h
+++ b/src/plugins/projectexplorer/toolchainoptionspage.h
@@ -43,6 +43,8 @@ class QTreeView;
class QTreeWidgetItem;
QT_END_NAMESPACE
+namespace Utils { class DetailsWidget; }
+
namespace ProjectExplorer {
class ToolChain;
@@ -62,7 +64,7 @@ class ToolChainModel : public QAbstractItemModel
Q_OBJECT
public:
- explicit ToolChainModel(QBoxLayout *parentLayout, QObject *parent = 0);
+ explicit ToolChainModel(QObject *parent = 0);
~ToolChainModel();
QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
@@ -72,7 +74,6 @@ public:
int columnCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
Qt::ItemFlags flags(const QModelIndex &index) const;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
@@ -107,8 +108,6 @@ private:
QList<ToolChainNode *> m_toAddList;
QList<ToolChainNode *> m_toRemoveList;
-
- QBoxLayout *m_parentLayout;
};
// --------------------------------------------------------------------------
@@ -142,8 +141,8 @@ private:
ToolChainModel *m_model;
QList<ToolChainFactory *> m_factories;
QItemSelectionModel * m_selectionModel;
- ToolChainConfigWidget *m_currentTcWidget;
QTreeView *m_toolChainView;
+ Utils::DetailsWidget *m_container;
QPushButton *m_addButton;
QPushButton *m_cloneButton;
QPushButton *m_delButton;
diff --git a/src/plugins/projectexplorer/wincetoolchain.cpp b/src/plugins/projectexplorer/wincetoolchain.cpp
index eb08ddba9e..e355da374d 100644
--- a/src/plugins/projectexplorer/wincetoolchain.cpp
+++ b/src/plugins/projectexplorer/wincetoolchain.cpp
@@ -469,11 +469,10 @@ WinCEToolChainConfigWidget::WinCEToolChainConfigWidget(ToolChain *tc) :
WinCEToolChain *toolChain = static_cast<WinCEToolChain *>(tc);
QTC_ASSERT(tc, return);
- QFormLayout *formLayout = new QFormLayout(this);
- formLayout->addRow(tr("SDK:"), new QLabel(toolChain->displayName()));
- formLayout->addRow(tr("WinCE Version:"), new QLabel(toolChain->ceVer()));
- formLayout->addRow(tr("ABI:"), new QLabel(toolChain->targetAbi().toString()));
- addErrorLabel(formLayout);
+ m_mainLayout->addRow(tr("SDK:"), new QLabel(toolChain->displayName()));
+ m_mainLayout->addRow(tr("WinCE Version:"), new QLabel(toolChain->ceVer()));
+ m_mainLayout->addRow(tr("ABI:"), new QLabel(toolChain->targetAbi().toString()));
+ addErrorLabel();
}
} // namespace Internal
diff --git a/src/plugins/projectexplorer/wincetoolchain.h b/src/plugins/projectexplorer/wincetoolchain.h
index 2f8e7db30b..323a4f730e 100644
--- a/src/plugins/projectexplorer/wincetoolchain.h
+++ b/src/plugins/projectexplorer/wincetoolchain.h
@@ -99,10 +99,11 @@ class WinCEToolChainConfigWidget : public ToolChainConfigWidget
public:
WinCEToolChainConfigWidget(ToolChain *);
- void apply() {}
- void discard() { }
- bool isDirty() const {return false;}
-
+private:
+ void applyImpl() {}
+ void discardImpl() { }
+ bool isDirtyImpl() const {return false;}
+ void makeReadOnlyImpl() {}
};
class WinCEToolChainFactory : public ToolChainFactory
diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp
index c8fbf4d849..541d721dc7 100644
--- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp
@@ -380,7 +380,7 @@ RvctToolChainConfigWidget::~RvctToolChainConfigWidget()
delete m_ui;
}
-void RvctToolChainConfigWidget::apply()
+void RvctToolChainConfigWidget::applyImpl()
{
RvctToolChain *tc = static_cast<RvctToolChain *>(toolChain());
Q_ASSERT(tc);
@@ -404,7 +404,7 @@ void RvctToolChainConfigWidget::setFromToolChain()
m_ui->versionComboBox->setCurrentIndex(static_cast<int>(tc->armVersion()));
}
-bool RvctToolChainConfigWidget::isDirty() const
+bool RvctToolChainConfigWidget::isDirtyImpl() const
{
RvctToolChain *tc = static_cast<RvctToolChain *>(toolChain());
Q_ASSERT(tc);
@@ -414,12 +414,11 @@ bool RvctToolChainConfigWidget::isDirty() const
|| tc->environmentChanges() != environmentChanges();
}
-void RvctToolChainConfigWidget::makeReadOnly()
+void RvctToolChainConfigWidget::makeReadOnlyImpl()
{
m_ui->versionComboBox->setEnabled(false);
m_ui->compilerPath->setEnabled(false);
m_ui->environmentView->setEditTriggers(QAbstractItemView::NoEditTriggers);
- ProjectExplorer::ToolChainConfigWidget::makeReadOnly();
}
QList<Utils::EnvironmentItem> RvctToolChainConfigWidget::environmentChanges() const
diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h
index 65e1b0685f..cdd8b47505 100644
--- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h
@@ -139,13 +139,13 @@ public:
RvctToolChainConfigWidget(RvctToolChain *tc);
~RvctToolChainConfigWidget();
- void apply();
- void discard() { setFromToolChain(); }
- bool isDirty() const;
- void makeReadOnly();
+private:
+ void applyImpl();
+ void discardImpl() { setFromToolChain(); }
+ bool isDirtyImpl() const;
+ void makeReadOnlyImpl();
void changeEvent(QEvent *ev);
-private:
void setFromToolChain();
QList<Utils::EnvironmentItem> environmentChanges() const;