[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: [PATCH] Multiline support in KSqueezedTextLabel
From: Aurélien_Gâteau <aurelien.gateau () free ! fr>
Date: 2008-07-10 21:36:28
Message-ID: 487680DC.5000202 () free ! fr
[Download RAW message or body]
Hello,
Attached patch adds multiline support to KSqueezedTextLabel. Is it ok to
commit and backport to 4.1?
Aurélien
["ksqueezedtextlabel-handle-multiline.diff" (text/x-diff)]
diff --git a/kdeui/widgets/ksqueezedtextlabel.cpp b/kdeui/widgets/ksqueezedtextlabel.cpp
index 34b0073..83929fc 100644
--- a/kdeui/widgets/ksqueezedtextlabel.cpp
+++ b/kdeui/widgets/ksqueezedtextlabel.cpp
@@ -94,10 +94,20 @@ void KSqueezedTextLabel::setText( const QString &text ) {
void KSqueezedTextLabel::squeezeTextToLabel() {
QFontMetrics fm(fontMetrics());
int labelWidth = size().width();
- int textWidth = fm.width(d->fullText);
- if (textWidth > labelWidth) {
- QString squeezedText = fm.elidedText(d->fullText, d->elideMode, labelWidth);
- QLabel::setText(squeezedText);
+ QStringList squeezedLines;
+ bool squeezed = false;
+ Q_FOREACH(const QString& line, d->fullText.split("\n")) {
+ int lineWidth = fm.width(line);
+ if (lineWidth > labelWidth) {
+ squeezed = true;
+ squeezedLines << fm.elidedText(line, d->elideMode, labelWidth);
+ } else {
+ squeezedLines << line;
+ }
+ }
+
+ if (squeezed) {
+ QLabel::setText(squeezedLines.join("\n"));
setToolTip(d->fullText);
} else {
QLabel::setText(d->fullText);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic