[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kde-workspace/KDE/4.9] plasma/generic/applets/notifications/ui: fix html tag handling in notificati
From:       Martin Koller <kollix () aon ! at>
Date:       2012-08-03 11:41:35
Message-ID: 20120803114135.00A02A6094 () git ! kde ! org
[Download RAW message or body]

Git commit d057abca241d950df8dd264041e9ad70c8f65528 by Martin Koller.
Committed on 03/08/2012 at 13:37.
Pushed by mkoller into branch 'KDE/4.9'.

fix html tag handling in notification message

BUG: 302890

M  +6    -3    plasma/generic/applets/notifications/ui/notificationwidget.cpp

http://commits.kde.org/kde-workspace/d057abca241d950df8dd264041e9ad70c8f65528

diff --git a/plasma/generic/applets/notifications/ui/notificationwidget.cpp \
b/plasma/generic/applets/notifications/ui/notificationwidget.cpp index \
                880f1e4..02ed38f 100644
--- a/plasma/generic/applets/notifications/ui/notificationwidget.cpp
+++ b/plasma/generic/applets/notifications/ui/notificationwidget.cpp
@@ -328,7 +328,7 @@ void NotificationWidgetPrivate::setTextFields(const QString \
&applicationName,  QString processed = message.trimmed();
 
     /*if there is a < that is not closed as a tag, replace it with an entity*/
-    processed = processed.replace(QRegExp("<([^>]*($|<))"), "&lt;\\1");
+    processed = processed.replace(QRegExp("<(?![^<]*>)"), "&lt;");
     processed.replace('\n', "<br>");
 
     QFontMetricsF fm(messageLabel->font());
@@ -353,10 +353,13 @@ void NotificationWidgetPrivate::setTextFields(const QString \
&applicationName,  word.append(c);
         } else if (c == '>') {
             word.append(c);
+            if (!sentence.isEmpty()) {
+                parsed.append(fm.elidedText(sentence, Qt::ElideRight, maxLine*4.6));
+                sentence.clear();
+            }
             inTag = false;
             parsed.append(word);
             word = QString();
-            sentence = QString();
         } else if (c == ' ') {
             word.append(c);
             if (inTag) {
@@ -375,7 +378,7 @@ void NotificationWidgetPrivate::setTextFields(const QString \
&applicationName,  sentence.append(word);
     parsed.append(fm.elidedText(sentence, Qt::ElideRight, maxLine*4.6));
 
-    messageLabel->setText(parsed);
+    messageLabel->setText(QLatin1String("<html>") + parsed + \
QLatin1String("</html>"));  
     if (!collapsed) {
         icon->setGeometry(bigIconRect());


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic