LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
elidinglabel.cpp
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#include "
elidinglabel.h
"
10
11
#include <QEvent>
12
13
namespace
LC::Util
14
{
15
ElidingLabel::ElidingLabel
(QWidget *parent)
16
: QLabel { parent }
17
{
18
setTextFormat (Qt::PlainText);
19
}
20
21
void
ElidingLabel::SetFullText
(
const
QString& text)
22
{
23
if
(FullText_ == text)
24
return
;
25
26
FullText_ = text;
27
UpdateElide ();
28
}
29
30
QString
ElidingLabel::GetFullText
()
const
31
{
32
return
FullText_;
33
}
34
35
void
ElidingLabel::SetElideMode
(Qt::TextElideMode mode)
36
{
37
if
(ElideMode_ == mode)
38
return
;
39
40
ElideMode_ = mode;
41
UpdateElide ();
42
}
43
44
Qt::TextElideMode
ElidingLabel::GetElideMode
()
const
45
{
46
return
ElideMode_;
47
}
48
49
QSize
ElidingLabel::sizeHint
()
const
50
{
51
const
auto
& cm = contentsMargins ();
52
53
auto
result = QLabel::sizeHint ();
54
const
auto
textWidth = fontMetrics ().horizontalAdvance (FullText_) + 1;
55
result.setWidth (std::max (result.width (), textWidth + cm.left () + cm.right ()));
56
return
result;
57
}
58
59
void
ElidingLabel::changeEvent
(QEvent *ev)
60
{
61
QLabel::changeEvent (ev);
62
switch
(ev->type ())
63
{
64
case
QEvent::FontChange:
65
case
QEvent::StyleChange:
66
case
QEvent::ApplicationFontChange:
67
case
QEvent::LayoutDirectionChange:
68
UpdateElide ();
69
break
;
70
default
:
71
break
;
72
}
73
}
74
75
void
ElidingLabel::resizeEvent
(QResizeEvent *ev)
76
{
77
QLabel::resizeEvent (ev);
78
UpdateElide ();
79
}
80
81
void
ElidingLabel::UpdateElide ()
82
{
83
const
auto
& fm = fontMetrics ();
84
85
const
auto
& elided = fm.elidedText (FullText_, ElideMode_, contentsRect ().width ());
86
setText (elided);
87
}
88
}
LC::Util::ElidingLabel::resizeEvent
void resizeEvent(QResizeEvent *) override
Definition
elidinglabel.cpp:75
LC::Util::ElidingLabel::SetElideMode
void SetElideMode(Qt::TextElideMode)
Definition
elidinglabel.cpp:35
LC::Util::ElidingLabel::SetFullText
void SetFullText(const QString &)
Definition
elidinglabel.cpp:21
LC::Util::ElidingLabel::ElidingLabel
ElidingLabel(QWidget *=nullptr)
Definition
elidinglabel.cpp:15
LC::Util::ElidingLabel::sizeHint
QSize sizeHint() const override
Definition
elidinglabel.cpp:49
LC::Util::ElidingLabel::changeEvent
void changeEvent(QEvent *) override
Definition
elidinglabel.cpp:59
LC::Util::ElidingLabel::GetElideMode
Qt::TextElideMode GetElideMode() const
Definition
elidinglabel.cpp:44
LC::Util::ElidingLabel::GetFullText
QString GetFullText() const
Definition
elidinglabel.cpp:30
elidinglabel.h
LC::Util
Definition
icoreproxy.h:34
src
util
gui
elidinglabel.cpp
Generated by
1.17.0