]> git.sesse.net Git - nageru/blob - ellipsis_label.h
Release Nageru 1.7.2.
[nageru] / ellipsis_label.h
1 #ifndef _ELLIPSIS_LABEL_H
2 #define _ELLIPSIS_LABEL_H 1
3
4 #include <QLabel>
5
6 class EllipsisLabel : public QLabel {
7         Q_OBJECT
8
9 public:
10         EllipsisLabel(QWidget *parent) : QLabel(parent) {}
11
12         void setFullText(const QString &s)
13         {
14                 full_text = s;
15                 updateEllipsisText();
16         }
17
18 protected:
19         void resizeEvent(QResizeEvent *event) override
20         {
21                 QLabel::resizeEvent(event);
22                 updateEllipsisText();
23         }
24
25 private:
26         void updateEllipsisText()
27         {
28                 QFontMetrics metrics(this->font());
29                 this->setText(metrics.elidedText(full_text, Qt::ElideRight, this->width()));
30         }
31
32         QString full_text;
33 };
34
35 #endif  // !defined(_ELLIPSIS_LABEL_H)