23#include <QApplication>
31 setFocusPolicy(Qt::NoFocus);
33 m_badgeLabel =
new QLabel(
this);
34 m_badgeLabel->setObjectName(
QSL(
"navigation-toolbutton-badge"));
35 QFont f = m_badgeLabel->font();
36 f.setPixelSize(m_badgeLabel->height() / 2.5);
37 m_badgeLabel->setFont(f);
56void NavigationBarToolButton::clicked()
60 c->popupPosition = [=](
const QSize &size) {
61 QPoint pos = mapToGlobal(rect().bottomRight());
62 if (QApplication::isRightToLeft()) {
63 pos.setX(pos.x() - rect().width());
65 pos.setX(pos.x() - size.width());
67 c->popupOpened =
true;
70 c->popupClosed = [=]() {
82void NavigationBarToolButton::updateIcon()
84 const QIcon::Mode mode = m_button->
isActive() ? QIcon::Normal : QIcon::Disabled;
85 const QImage img = m_button->
icon().pixmap(iconSize(), mode).toImage();
86 setIcon(QPixmap::fromImage(img, Qt::MonoOnly));
89void NavigationBarToolButton::updateBadge()
94 m_badgeLabel->setText(m_button->
badgeText());
95 m_badgeLabel->resize(m_badgeLabel->sizeHint());
96 m_badgeLabel->move(width() - m_badgeLabel->width(), 0);
101void NavigationBarToolButton::mouseReleaseEvent(QMouseEvent *e)
105 bool popupOpened =
false;
107 if (e->button() == Qt::LeftButton && rect().contains(e->pos())) {
109 popupOpened = isDown();
113 setUpdatesEnabled(
false);
120 setUpdatesEnabled(
true);