diff options
author | Daniel Teske <daniel.teske@digia.com> | 2013-01-31 14:13:24 +0100 |
---|---|---|
committer | Daniel Teske <daniel.teske@digia.com> | 2013-01-31 16:14:31 +0100 |
commit | 0a02ce6ae23e15f7ddd394ec2edd4cbf03dd66a6 (patch) | |
tree | 3483fdfa2cf9efef7b8e4a06ed300cfd597d8463 /src | |
parent | 61dc2936289d817bf4960383a39364c8ce3ff8cb (diff) | |
download | qt-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.h | 1 | ||||
-rw-r--r-- | src/plugins/projectexplorer/kitmanager.cpp | 2 | ||||
-rw-r--r-- | src/plugins/projectexplorer/kitmanager.h | 1 | ||||
-rw-r--r-- | src/plugins/projectexplorer/kitmanagerconfigwidget.cpp | 32 | ||||
-rw-r--r-- | src/plugins/projectexplorer/kitmanagerconfigwidget.h | 5 |
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; |