diff options
Diffstat (limited to 'src/libs/advanceddockingsystem/elidinglabel.cpp')
-rw-r--r-- | src/libs/advanceddockingsystem/elidinglabel.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/libs/advanceddockingsystem/elidinglabel.cpp b/src/libs/advanceddockingsystem/elidinglabel.cpp index dfd812bae2..75808ff9c1 100644 --- a/src/libs/advanceddockingsystem/elidinglabel.cpp +++ b/src/libs/advanceddockingsystem/elidinglabel.cpp @@ -115,9 +115,8 @@ namespace ADS { void ElidingLabel::mouseReleaseEvent(QMouseEvent *event) { Super::mouseReleaseEvent(event); - if (event->button() != Qt::LeftButton) { + if (event->button() != Qt::LeftButton) return; - } emit clicked(); } @@ -131,17 +130,26 @@ namespace ADS { void ElidingLabel::resizeEvent(QResizeEvent *event) { - if (!d->isModeElideNone()) { + if (!d->isModeElideNone()) d->elideText(event->size().width()); - } + Super::resizeEvent(event); } + bool ElidingLabel::hasPixmap() const + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + return !pixmap().isNull(); +#else + return pixmap() != nullptr; +#endif + } + QSize ElidingLabel::minimumSizeHint() const { - if (pixmap() != nullptr || d->isModeElideNone()) { + if (hasPixmap() || d->isModeElideNone()) return QLabel::minimumSizeHint(); - } + const QFontMetrics &fm = fontMetrics(); #if (QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)) QSize size(fm.horizontalAdvance(d->m_text.left(2) + "…"), fm.height()); @@ -153,9 +161,9 @@ namespace ADS { QSize ElidingLabel::sizeHint() const { - if (pixmap() != nullptr || d->isModeElideNone()) { + if (hasPixmap() || d->isModeElideNone()) return QLabel::sizeHint(); - } + const QFontMetrics &fm = fontMetrics(); #if (QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)) QSize size(fm.horizontalAdvance(d->m_text), QLabel::sizeHint().height()); @@ -167,10 +175,10 @@ namespace ADS { void ElidingLabel::setText(const QString &text) { + d->m_text = text; if (d->isModeElideNone()) { Super::setText(text); } else { - d->m_text = text; internal::setToolTip(this, text); d->elideText(this->size().width()); } |