X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Ftopiclabel.cpp;h=ec9fc4eb52a1d5a2b2df12fbe8714b1c222a03e2;hp=33a752c04a19bb3423936a2aee92725a71afe515;hb=e6fa25ffd902f5784bcd2d4c7bdfa50d6ef23423;hpb=982ece4929696e3817875543cab527740cc7e023 diff --git a/src/qtui/topiclabel.cpp b/src/qtui/topiclabel.cpp index 33a752c0..ec9fc4eb 100644 --- a/src/qtui/topiclabel.cpp +++ b/src/qtui/topiclabel.cpp @@ -37,8 +37,11 @@ TopicLabel::TopicLabel(QWidget *parent) : QFrame(parent), offset(0), dragStartX(0), + textWidth(0), dragMode(false) { + setToolTip(tr("Drag to scroll the topic!")); + setCursor(Qt::OpenHandCursor); } void TopicLabel::paintEvent(QPaintEvent *event) { @@ -63,6 +66,7 @@ void TopicLabel::paintEvent(QPaintEvent *event) { painter.drawText(drawRect, Qt::AlignLeft|Qt::AlignVCenter, textPart, &brect); drawRect.setLeft(brect.right()); } + textWidth = brect.right(); #endif } @@ -71,6 +75,7 @@ void TopicLabel::setText(const QString &text) { return; _text = text; + offset = 0; update(); #ifndef SPUTDEV @@ -87,7 +92,6 @@ void TopicLabel::setText(const QString &text) { // setFixedHeight(height); #endif // show topic in tooltip - setToolTip(_text); } @@ -96,7 +100,14 @@ void TopicLabel::mouseMoveEvent(QMouseEvent *event) { return; event->accept(); - offset = event->pos().x() - dragStartX; + int newOffset = event->pos().x() - dragStartX; + if(newOffset > 0) + offset = 0; + else if(width() < textWidth || offset < newOffset) + offset = newOffset; +// qDebug() << offset << (width() - textWidth) << width() << textWidth; +// if(offset < width() - textWidth) +// offset = width() - textWidth; update(); } @@ -104,15 +115,17 @@ void TopicLabel::mousePressEvent(QMouseEvent *event) { event->accept(); dragMode = true; dragStartX = event->pos().x() - offset; + setCursor(Qt::ClosedHandCursor); } void TopicLabel::mouseReleaseEvent(QMouseEvent *event) { event->accept(); dragMode = false; - if(qAbs(offset) < 10) { + if(qAbs(offset) < 30) { offset = 0; update(); } + setCursor(Qt::OpenHandCursor); } void TopicLabel::mouseDoubleClickEvent(QMouseEvent *event) {