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

List:       kde-commits
Subject:    kdenetwork/kit
From:       Neil Stevens <neil () qualityassistant ! com>
Date:       2003-01-06 0:23:04
[Download RAW message or body]

CVS commit by neil: 

Fix some odd messages.  Notice when shift gets released even when focus is lost.


  M +23 -3     tmessage.cpp   1.46


--- kdenetwork/kit/tmessage.cpp  #1.45:1.46
@@ -38,4 +38,6 @@ inline bool tagIsOpen(const QString &htm
 }
 
+#define SKIP_TO_SEMI {while(newstr[++i] != ';' && i < newstr.length());}
+
 #define SKIP_TO_GT {while(newstr[++i] != '>' && i < newstr.length());}
 
@@ -64,7 +66,15 @@ void parseAndProcess(QString &newstr)
                 else if(newstr[i] == '&')
                 {
+                        QRegExp entity("^&(?=[^;<>&]*;)");
+                        if(entity.search(newstr.mid(i)) == 0)
+                        {
+                                SKIP_TO_SEMI
+                        }
+                        else
+                        {
                         newstr.replace(i, 1, "&amp;");
                         i += 4;
                 }
+                }
                 else if(newstr[i] == '<')
                 {
@@ -297,5 +307,8 @@ void TMessage::keyPressEvent(QKeyEvent *
 {
         if(e->key() == Qt::Key_Shift)
+        {
+                edit->grabKeyboard();
                 lineBreak = true;
+        }
 }
 
@@ -303,5 +316,8 @@ void TMessage::keyReleaseEvent(QKeyEvent
 {
         if(e->key() == Qt::Key_Shift)
+        {
+                edit->releaseKeyboard();
                 lineBreak = false;
+        }
 }
 
@@ -338,5 +354,9 @@ void TMessage::send(void)
                         back.red(), back.green(), back.blue(), fore.red(), fore.green(), fore.blue());
                 if(bold) aolHTML += "<B>";
-                aolHTML += message.replace(QRegExp("\n"), "<br/>");
+                message.replace(QRegExp("&"), "&amp;");
+                message.replace(QRegExp("<"), "&lt;");
+                message.replace(QRegExp(">"), "&gt;");
+                message.replace(QRegExp("\n"), "<br/>");
+                aolHTML += message;
                 if(bold) aolHTML += "</B>";
                 aolHTML += "</FONT></BODY></HTML>";


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

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