void ToolButton::mousePressEvent(QMouseEvent* e) { if (popupMode() == QToolButton::DelayedPopup) m_pressTimer.start(); if (e->buttons() == Qt::LeftButton && menu() && popupMode() == QToolButton::InstantPopup) { setDown(true); showMenu(); } else if (e->buttons() == Qt::RightButton && menu()) { setDown(true); showMenu(); } else { QToolButton::mousePressEvent(e); } }
void ToolButton::mousePressEvent(QMouseEvent* e) { if (e->buttons() == Qt::LeftButton && menu() && popupMode() == QToolButton::InstantPopup) { setDown(true); showMenu(); return; } if (e->buttons() == Qt::RightButton && menu()) { setDown(true); showMenu(); return; } if (e->buttons() == Qt::MiddleButton) { setDown(true); } QToolButton::mousePressEvent(e); }
/*! \reimp */ QSize LabeledToolButton::sizeHint() const { /* Q_D(const QToolButton); if (d->sizeHint.isValid()) return d->sizeHint; */ ensurePolished(); int w = 0, h = 0; QStyleOptionToolButton opt; initStyleOption(&opt); QSize sz =m_label->sizeHint(); w = sz.width(); h = sz.height(); opt.rect.setSize(QSize(w, h)); // PM_MenuButtonIndicator depends on the height if (popupMode() == MenuButtonPopup) w += style()->pixelMetric(QStyle::PM_MenuButtonIndicator, &opt, this); QSize rawSize = style()->sizeFromContents(QStyle::CT_ToolButton, &opt, QSize(w, h), this); QSize sizeHint = rawSize.expandedTo(QApplication::globalStrut()); return sizeHint; }