Utils: Allow icons to be used for aspect actions

Useful for toggles in tool buttons, as used e.g. in valgrind.

Change-Id: I61f5d4ba86d1f39d0071e4c0e37d2447f408a91e
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2021-03-01 08:41:49 +01:00
parent a5d5887908
commit 60a9529485
2 changed files with 10 additions and 1 deletions

View File

@@ -67,6 +67,7 @@ public:
QString m_tooltip; QString m_tooltip;
QString m_labelText; QString m_labelText;
QPixmap m_labelPixmap; QPixmap m_labelPixmap;
QIcon m_icon;
QPointer<QLabel> m_label; // Owned by configuration widget QPointer<QLabel> m_label; // Owned by configuration widget
QPointer<QAction> m_action; // Owned by us. QPointer<QAction> m_action; // Owned by us.
@@ -240,6 +241,13 @@ void BaseAspect::setLabelPixmap(const QPixmap &labelPixmap)
d->m_label->setPixmap(labelPixmap); d->m_label->setPixmap(labelPixmap);
} }
void BaseAspect::setIcon(const QIcon &icon)
{
d->m_icon = icon;
if (d->m_action)
d->m_action->setIcon(icon);
}
/*! /*!
Returns the current text for the separate label in the visual Returns the current text for the separate label in the visual
representation of this aspect. representation of this aspect.
@@ -371,8 +379,8 @@ QWidget *BaseAspect::createConfigWidget() const
QAction *BaseAspect::action() QAction *BaseAspect::action()
{ {
if (!d->m_action) { if (!d->m_action) {
//qDebug() << "Creation action for " << labelText() << "with" << value();
d->m_action = new QAction(labelText()); d->m_action = new QAction(labelText());
d->m_action->setIcon(d->m_icon);
} }
return d->m_action; return d->m_action;
} }

View File

@@ -97,6 +97,7 @@ public:
QString labelText() const; QString labelText() const;
void setLabelText(const QString &labelText); void setLabelText(const QString &labelText);
void setLabelPixmap(const QPixmap &labelPixmap); void setLabelPixmap(const QPixmap &labelPixmap);
void setIcon(const QIcon &labelIcon);
using ConfigWidgetCreator = std::function<QWidget *()>; using ConfigWidgetCreator = std::function<QWidget *()>;
void setConfigWidgetCreator(const ConfigWidgetCreator &configWidgetCreator); void setConfigWidgetCreator(const ConfigWidgetCreator &configWidgetCreator);