File indexing completed on 2024-06-09 04:25:02

0001 /*
0002  *  SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "kis_elided_label.h"
0008 
0009 struct KisElidedLabel::Private
0010 {
0011     QString longText;
0012     Qt::TextElideMode mode;
0013 };
0014 
0015 KisElidedLabel::KisElidedLabel(const QString &text, Qt::TextElideMode mode, QWidget *parent)
0016     : QLabel(text, parent),
0017       m_d(new Private)
0018 {
0019     m_d->mode = mode;
0020     m_d->longText = text;
0021 }
0022 
0023 KisElidedLabel::~KisElidedLabel()
0024 {
0025 }
0026 
0027 void KisElidedLabel::setLongText(const QString &text)
0028 {
0029     m_d->longText = text;
0030     updateText();
0031 }
0032 
0033 void KisElidedLabel::resizeEvent(QResizeEvent *event)
0034 {
0035     QLabel::resizeEvent(event);
0036     updateText();
0037 }
0038 
0039 void KisElidedLabel::updateText()
0040 {
0041     QFontMetrics metrics(font());
0042     QString elidedText = metrics.elidedText(m_d->longText, m_d->mode, width());
0043     setText(elidedText);
0044 }