projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
We hate uninitialized values
[quassel.git]
/
src
/
uisupport
/
styledlabel.cpp
diff --git
a/src/uisupport/styledlabel.cpp
b/src/uisupport/styledlabel.cpp
index
372b9bb
..
38250ea
100644
(file)
--- a/
src/uisupport/styledlabel.cpp
+++ b/
src/uisupport/styledlabel.cpp
@@
-30,7
+30,8
@@
StyledLabel::StyledLabel(QWidget *parent)
: QFrame(parent),
_wrapMode(QTextOption::NoWrap),
_alignment(Qt::AlignVCenter|Qt::AlignLeft),
: QFrame(parent),
_wrapMode(QTextOption::NoWrap),
_alignment(Qt::AlignVCenter|Qt::AlignLeft),
- _toolTipEnabled(true)
+ _toolTipEnabled(true),
+ _resizeMode(NoResize)
{
setMouseTracking(true);
{
setMouseTracking(true);
@@
-40,6
+41,12
@@
StyledLabel::StyledLabel(QWidget *parent)
_layout.setTextOption(opt);
}
_layout.setTextOption(opt);
}
+void StyledLabel::setCustomFont(const QFont &font) {
+ setFont(font);
+ _layout.setFont(font);
+ setText(_layout.text());
+}
+
void StyledLabel::setWrapMode(QTextOption::WrapMode mode) {
if(_wrapMode == mode)
return;
void StyledLabel::setWrapMode(QTextOption::WrapMode mode) {
if(_wrapMode == mode)
return;
@@
-64,6
+71,17
@@
void StyledLabel::setAlignment(Qt::Alignment alignment) {
layout();
}
layout();
}
+void StyledLabel::setResizeMode(ResizeMode mode) {
+ if(_resizeMode == mode)
+ return;
+
+ _resizeMode = mode;
+ if(mode == DynamicResize)
+ setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+ else
+ setWrapMode(QTextOption::NoWrap);
+}
+
void StyledLabel::resizeEvent(QResizeEvent *event) {
QFrame::resizeEvent(event);
void StyledLabel::resizeEvent(QResizeEvent *event) {
QFrame::resizeEvent(event);
@@
-127,7
+145,7
@@
void StyledLabel::updateToolTip() {
void StyledLabel::layout() {
qreal h = 0;
void StyledLabel::layout() {
qreal h = 0;
- qreal w =
frameRect().width() - 2*frameW
idth();
+ qreal w =
contentsRect().w
idth();
_layout.beginLayout();
forever {
_layout.beginLayout();
forever {
@@
-145,11
+163,12
@@
void StyledLabel::layout() {
update();
}
update();
}
-void StyledLabel::paintEvent(QPaintEvent *) {
+void StyledLabel::paintEvent(QPaintEvent *e) {
+ QFrame::paintEvent(e);
QPainter painter(this);
QPainter painter(this);
- qreal y =
(frame
Rect().height() - _layout.boundingRect().height()) / 2;
- _layout.draw(&painter, QPointF(
0
, y), _extraLayoutList);
+ qreal y =
contentsRect().y() + (contents
Rect().height() - _layout.boundingRect().height()) / 2;
+ _layout.draw(&painter, QPointF(
contentsRect().x()
, y), _extraLayoutList);
}
int StyledLabel::posToCursor(const QPointF &pos) {
}
int StyledLabel::posToCursor(const QPointF &pos) {
@@
-175,8
+194,15
@@
void StyledLabel::mouseMoveEvent(QMouseEvent *event) {
}
}
}
}
+void StyledLabel::enterEvent(QEvent *) {
+ if(resizeMode() == ResizeOnHover)
+ setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+}
+
void StyledLabel::leaveEvent(QEvent *) {
endHoverMode();
void StyledLabel::leaveEvent(QEvent *) {
endHoverMode();
+ if(resizeMode() == ResizeOnHover)
+ setWrapMode(QTextOption::NoWrap);
}
void StyledLabel::mousePressEvent(QMouseEvent *event) {
}
void StyledLabel::mousePressEvent(QMouseEvent *event) {