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 }