summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2013-01-31 14:13:24 +0100
committerDaniel Teske <daniel.teske@digia.com>2013-01-31 16:14:31 +0100
commit0a02ce6ae23e15f7ddd394ec2edd4cbf03dd66a6 (patch)
tree3483fdfa2cf9efef7b8e4a06ed300cfd597d8463 /src
parent61dc2936289d817bf4960383a39364c8ce3ff8cb (diff)
downloadqt-creator-0a02ce6ae23e15f7ddd394ec2edd4cbf03dd66a6.tar.gz
KitManager: Enable KitInformations to be invisible for Kits
This was only possible in theory but not in pratice. Change-Id: Ia5100569c371134e3cabacfcd76084c8763f5ecc Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/projectexplorer/kitconfigwidget.h1
-rw-r--r--src/plugins/projectexplorer/kitmanager.cpp2
-rw-r--r--src/plugins/projectexplorer/kitmanager.h1
-rw-r--r--src/plugins/projectexplorer/kitmanagerconfigwidget.cpp32
-rw-r--r--src/plugins/projectexplorer/kitmanagerconfigwidget.h5
5 files changed, 33 insertions, 8 deletions
diff --git a/src/plugins/projectexplorer/kitconfigwidget.h b/src/plugins/projectexplorer/kitconfigwidget.h
index b1d518900e..ccee9c3269 100644
--- a/src/plugins/projectexplorer/kitconfigwidget.h
+++ b/src/plugins/projectexplorer/kitconfigwidget.h
@@ -53,6 +53,7 @@ public:
virtual QString toolTip() const { return QString(); }
virtual void makeReadOnly() = 0;
virtual void refresh() = 0;
+ virtual bool visibleInKit() { return true; }
virtual QWidget *mainWidget() const = 0;
virtual QWidget *buttonWidget() const { return 0; }
diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp
index 44c3c1910b..b57869d1b2 100644
--- a/src/plugins/projectexplorer/kitmanager.cpp
+++ b/src/plugins/projectexplorer/kitmanager.cpp
@@ -379,6 +379,8 @@ Internal::KitManagerConfigWidget *KitManager::createConfigWidget(Kit *k) const
foreach (KitInformation *ki, d->m_informationList)
result->addConfigWidget(ki->createConfigWidget(result->workingCopy()));
+ result->updateVisibility();
+
return result;
}
diff --git a/src/plugins/projectexplorer/kitmanager.h b/src/plugins/projectexplorer/kitmanager.h
index bfe1b9ff38..4180378559 100644
--- a/src/plugins/projectexplorer/kitmanager.h
+++ b/src/plugins/projectexplorer/kitmanager.h
@@ -72,7 +72,6 @@ public:
virtual unsigned int priority() const = 0; // the higher the closer to the top.
- virtual bool visibleIn(Kit *) { return true; }
virtual QVariant defaultValue(Kit *) const = 0;
// called to find issues with the kit
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
index 52421f3051..64af360bed 100644
--- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
+++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
@@ -75,8 +75,11 @@ KitManagerConfigWidget::KitManagerConfigWidget(Kit *k) :
mainLayout->setMargin(1);
mainLayout->addWidget(scroll, 0, 0);
+ static const Qt::Alignment alignment
+ = static_cast<Qt::Alignment>(style()->styleHint(QStyle::SH_FormLayoutLabelAlignment));
QString toolTip = tr("Kit name and icon.");
- setLabel(tr("Name:"), toolTip, 0);
+ QLabel *label = createLabel(tr("Name:"), toolTip);
+ m_layout->addWidget(label, 0, LabelColumn, alignment);
m_iconButton->setToolTip(toolTip);
discard();
@@ -171,9 +174,26 @@ void KitManagerConfigWidget::addConfigWidget(ProjectExplorer::KitConfigWidget *w
m_layout->addWidget(widget->mainWidget(), row, WidgetColumn);
if (QWidget *button = widget->buttonWidget())
m_layout->addWidget(button, row, ButtonColumn);
- setLabel(name, toolTip, row);
+ static const Qt::Alignment alignment
+ = static_cast<Qt::Alignment>(style()->styleHint(QStyle::SH_FormLayoutLabelAlignment));
+ QLabel *label = createLabel(name, toolTip);
+ m_layout->addWidget(label, row, LabelColumn, alignment);
m_widgets.append(widget);
+ m_labels.append(label);
+}
+
+void KitManagerConfigWidget::updateVisibility()
+{
+ int count = m_widgets.count();
+ for (int i = 0; i < count; ++i) {
+ KitConfigWidget *widget = m_widgets.at(i);
+ bool visible = widget->visibleInKit();
+ widget->mainWidget()->setVisible(visible);
+ if (widget->buttonWidget())
+ widget->buttonWidget()->setVisible(visible);
+ m_labels.at(i)->setVisible(visible);
+ }
}
void KitManagerConfigWidget::makeReadOnly()
@@ -249,6 +269,7 @@ void KitManagerConfigWidget::workingCopyWasUpdated(Kit *k)
w->refresh();
m_nameEdit->setText(k->displayName());
m_iconButton->setIcon(k->icon());
+ updateVisibility();
emit dirty();
}
@@ -256,15 +277,14 @@ void KitManagerConfigWidget::kitWasUpdated(Kit *k)
{
if (m_kit == k)
discard();
+ updateVisibility();
}
-void KitManagerConfigWidget::setLabel(const QString &name, const QString &toolTip, int row)
+QLabel *KitManagerConfigWidget::createLabel(const QString &name, const QString &toolTip)
{
- static const Qt::Alignment alignment
- = static_cast<Qt::Alignment>(style()->styleHint(QStyle::SH_FormLayoutLabelAlignment));
QLabel *label = new QLabel(name);
label->setToolTip(toolTip);
- m_layout->addWidget(label, row, LabelColumn, alignment);
+ return label;
}
void KitManagerConfigWidget::paintEvent(QPaintEvent *)
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.h b/src/plugins/projectexplorer/kitmanagerconfigwidget.h
index 8c969aa6cf..0945e6dc36 100644
--- a/src/plugins/projectexplorer/kitmanagerconfigwidget.h
+++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.h
@@ -36,6 +36,7 @@
QT_BEGIN_NAMESPACE
class QGridLayout;
+class QLabel;
class QLineEdit;
class QToolButton;
QT_END_NAMESPACE
@@ -68,6 +69,7 @@ public:
void setIsDefaultKit(bool d);
bool isDefaultKit() const;
void removeKit();
+ void updateVisibility();
signals:
void dirty();
@@ -85,13 +87,14 @@ private:
ButtonColumn
};
- void setLabel(const QString &name, const QString &toolTip, int row);
+ QLabel *createLabel(const QString &name, const QString &toolTip);
void paintEvent(QPaintEvent *ev);
QGridLayout *m_layout;
QToolButton *m_iconButton;
QLineEdit *m_nameEdit;
QList<KitConfigWidget *> m_widgets;
+ QList<QLabel *> m_labels;
Kit *m_kit;
Kit *m_modifiedKit;
bool m_isDefaultKit;