// For license of this file, see /LICENSE.md. #include "gui/plaintoolbutton.h" #include #include #include #include #include #include PlainToolButton::PlainToolButton(QWidget* parent) : QToolButton(parent), m_padding(0) {} PlainToolButton::~PlainToolButton() {} void PlainToolButton::paintEvent(QPaintEvent* e) { Q_UNUSED(e) QPainter p(this); QRect rect(QPoint(0, 0), size()); // Set padding. rect.adjust(m_padding, m_padding, -m_padding, -m_padding); if (isEnabled()) { if (underMouse() || isChecked()) { p.setOpacity(0.7); } } else { p.setOpacity(0.3); } icon().paint(&p, rect); } int PlainToolButton::padding() const { return m_padding; } void PlainToolButton::setPadding(int padding) { m_padding = padding; repaint(); } void PlainToolButton::setChecked(bool checked) { QToolButton::setChecked(checked); repaint(); } void PlainToolButton::reactOnActionChange(QAction* action) { if (action != nullptr) { setEnabled(action->isEnabled()); setCheckable(action->isCheckable()); setChecked(action->isChecked()); setIcon(action->icon()); setToolTip(action->toolTip()); } } void PlainToolButton::reactOnSenderActionChange() { reactOnActionChange(qobject_cast(sender())); }