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