forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -53,6 +53,7 @@ public:
|
|||||||
virtual QString toolTip() const { return QString(); }
|
virtual QString toolTip() const { return QString(); }
|
||||||
virtual void makeReadOnly() = 0;
|
virtual void makeReadOnly() = 0;
|
||||||
virtual void refresh() = 0;
|
virtual void refresh() = 0;
|
||||||
|
virtual bool visibleInKit() { return true; }
|
||||||
|
|
||||||
virtual QWidget *mainWidget() const = 0;
|
virtual QWidget *mainWidget() const = 0;
|
||||||
virtual QWidget *buttonWidget() const { return 0; }
|
virtual QWidget *buttonWidget() const { return 0; }
|
||||||
|
|||||||
@@ -379,6 +379,8 @@ Internal::KitManagerConfigWidget *KitManager::createConfigWidget(Kit *k) const
|
|||||||
foreach (KitInformation *ki, d->m_informationList)
|
foreach (KitInformation *ki, d->m_informationList)
|
||||||
result->addConfigWidget(ki->createConfigWidget(result->workingCopy()));
|
result->addConfigWidget(ki->createConfigWidget(result->workingCopy()));
|
||||||
|
|
||||||
|
result->updateVisibility();
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ public:
|
|||||||
|
|
||||||
virtual unsigned int priority() const = 0; // the higher the closer to the top.
|
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;
|
virtual QVariant defaultValue(Kit *) const = 0;
|
||||||
|
|
||||||
// called to find issues with the kit
|
// called to find issues with the kit
|
||||||
|
|||||||
@@ -75,8 +75,11 @@ KitManagerConfigWidget::KitManagerConfigWidget(Kit *k) :
|
|||||||
mainLayout->setMargin(1);
|
mainLayout->setMargin(1);
|
||||||
mainLayout->addWidget(scroll, 0, 0);
|
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.");
|
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);
|
m_iconButton->setToolTip(toolTip);
|
||||||
|
|
||||||
discard();
|
discard();
|
||||||
@@ -171,9 +174,26 @@ void KitManagerConfigWidget::addConfigWidget(ProjectExplorer::KitConfigWidget *w
|
|||||||
m_layout->addWidget(widget->mainWidget(), row, WidgetColumn);
|
m_layout->addWidget(widget->mainWidget(), row, WidgetColumn);
|
||||||
if (QWidget *button = widget->buttonWidget())
|
if (QWidget *button = widget->buttonWidget())
|
||||||
m_layout->addWidget(button, row, ButtonColumn);
|
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_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()
|
void KitManagerConfigWidget::makeReadOnly()
|
||||||
@@ -249,6 +269,7 @@ void KitManagerConfigWidget::workingCopyWasUpdated(Kit *k)
|
|||||||
w->refresh();
|
w->refresh();
|
||||||
m_nameEdit->setText(k->displayName());
|
m_nameEdit->setText(k->displayName());
|
||||||
m_iconButton->setIcon(k->icon());
|
m_iconButton->setIcon(k->icon());
|
||||||
|
updateVisibility();
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -256,15 +277,14 @@ void KitManagerConfigWidget::kitWasUpdated(Kit *k)
|
|||||||
{
|
{
|
||||||
if (m_kit == k)
|
if (m_kit == k)
|
||||||
discard();
|
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);
|
QLabel *label = new QLabel(name);
|
||||||
label->setToolTip(toolTip);
|
label->setToolTip(toolTip);
|
||||||
m_layout->addWidget(label, row, LabelColumn, alignment);
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KitManagerConfigWidget::paintEvent(QPaintEvent *)
|
void KitManagerConfigWidget::paintEvent(QPaintEvent *)
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QGridLayout;
|
class QGridLayout;
|
||||||
|
class QLabel;
|
||||||
class QLineEdit;
|
class QLineEdit;
|
||||||
class QToolButton;
|
class QToolButton;
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
@@ -68,6 +69,7 @@ public:
|
|||||||
void setIsDefaultKit(bool d);
|
void setIsDefaultKit(bool d);
|
||||||
bool isDefaultKit() const;
|
bool isDefaultKit() const;
|
||||||
void removeKit();
|
void removeKit();
|
||||||
|
void updateVisibility();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void dirty();
|
void dirty();
|
||||||
@@ -85,13 +87,14 @@ private:
|
|||||||
ButtonColumn
|
ButtonColumn
|
||||||
};
|
};
|
||||||
|
|
||||||
void setLabel(const QString &name, const QString &toolTip, int row);
|
QLabel *createLabel(const QString &name, const QString &toolTip);
|
||||||
void paintEvent(QPaintEvent *ev);
|
void paintEvent(QPaintEvent *ev);
|
||||||
|
|
||||||
QGridLayout *m_layout;
|
QGridLayout *m_layout;
|
||||||
QToolButton *m_iconButton;
|
QToolButton *m_iconButton;
|
||||||
QLineEdit *m_nameEdit;
|
QLineEdit *m_nameEdit;
|
||||||
QList<KitConfigWidget *> m_widgets;
|
QList<KitConfigWidget *> m_widgets;
|
||||||
|
QList<QLabel *> m_labels;
|
||||||
Kit *m_kit;
|
Kit *m_kit;
|
||||||
Kit *m_modifiedKit;
|
Kit *m_modifiedKit;
|
||||||
bool m_isDefaultKit;
|
bool m_isDefaultKit;
|
||||||
|
|||||||
Reference in New Issue
Block a user