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

List:       kde-commits
Subject:    branches/KDE/4.0/kdelibs/khtml
From:       Maks Orlovich <maksim () kde ! org>
Date:       2008-04-09 2:16:54
Message-ID: 1207707414.435286.27319.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 794973 by orlovich:

Make searching within textareas work again. Seems like we used to attach their
kids back in the days?
BUG: 160490


 M  +15 -31    khtml_part.cpp  


--- branches/KDE/4.0/kdelibs/khtml/khtml_part.cpp #794972:794973
@@ -3015,7 +3015,6 @@
   KFind::Result res = KFind::NoMatch;
   khtml::RenderObject* obj = d->m_findNode ? d->m_findNode->renderer() : 0;
   khtml::RenderObject* end = d->m_findNodeEnd ? d->m_findNodeEnd->renderer() : 0;
-  khtml::RenderTextArea *tmpTextArea=0L;
   //kDebug(6050) << "obj=" << obj << " end=" << end;
   while( res == KFind::NoMatch )
   {
@@ -3038,16 +3037,12 @@
       {
         // Grab text from render object
         QString s;
-        bool renderAreaText = obj->parent() && \
                (QByteArray(obj->parent()->renderName())== "RenderTextArea");
-        bool renderLineText = (QByteArray(obj->renderName())== "RenderLineEdit");
-        if ( renderAreaText )
+        if ( obj->renderName() == QLatin1String("RenderTextArea") )
         {
-          khtml::RenderTextArea *parent= static_cast<khtml::RenderTextArea \
                *>(obj->parent());
-          s = parent->text();
+          s = static_cast<khtml::RenderTextArea *>(obj)->text();
           s = s.replace(0xa0, ' ');
-          tmpTextArea = parent;
         }
-        else if ( renderLineText )
+        else if ( obj->renderName() ==  QLatin1String("RenderLineEdit") )
         {
           khtml::RenderLineEdit *parentLine= static_cast<khtml::RenderLineEdit \
*>(obj);  if (parentLine->widget()->echoMode() == QLineEdit::Normal)
@@ -3077,7 +3072,7 @@
             isLink = true;
           }
 
-          if ( isLink && obj->parent()!=tmpTextArea )
+          if ( isLink )
           {
             s = static_cast<khtml::RenderText *>(obj)->data().string();
             s = s.replace(0xa0, ' ');
@@ -3190,25 +3185,20 @@
   d->m_startOffset = index - (*prev).index;
 
   khtml::RenderObject* obj = node->renderer();
-  khtml::RenderTextArea *parent = 0L;
-  khtml::RenderLineEdit *parentLine = 0L;
-  bool renderLineText =false;
+  khtml::RenderTextArea *renderTextArea = 0L;
+  khtml::RenderLineEdit *renderLineEdit = 0L;
 
   QRect highlightedRect;
-  bool renderAreaText =false;
   Q_ASSERT( obj );
   if ( obj )
   {
     int x = 0, y = 0;
-    renderAreaText = (QByteArray(obj->parent()->renderName())== "RenderTextArea");
-    renderLineText = (QByteArray(obj->renderName())== "RenderLineEdit");
 
-
-    if( renderAreaText )
-      parent= static_cast<khtml::RenderTextArea *>(obj->parent());
-    if ( renderLineText )
-      parentLine= static_cast<khtml::RenderLineEdit *>(obj);
-    if ( !renderLineText )
+    if ( obj->renderName() == QLatin1String("RenderTextArea") )
+      renderTextArea = static_cast<khtml::RenderTextArea *>(obj);
+    if ( obj->renderName() == QLatin1String("RenderLineEdit") )
+      renderLineEdit = static_cast<khtml::RenderLineEdit *>(obj);
+    if ( !renderLineEdit && !renderTextArea )
       //if (static_cast<khtml::RenderText *>(node->renderer())
       //    ->posOfChar(d->m_startOffset, x, y))
       {
@@ -3272,16 +3262,10 @@
   for ( ; it != d->m_stringPortions.end() ; ++it )
     kDebug(6050) << "  StringPortion: from index=" << (*it).index << " -> node=" << \
(*it).node;  #endif
-  if( renderAreaText )
-  {
-    if( parent )
-      parent->highLightWord( length, d->m_endOffset-length );
-  }
-  else if ( renderLineText )
-  {
-    if( parentLine )
-      parentLine->highLightWord( length, d->m_endOffset-length );
-  }
+  if ( renderTextArea )
+    renderTextArea->highLightWord( length, d->m_endOffset-length );
+  else if ( renderLineEdit )
+    renderLineEdit->highLightWord( length, d->m_endOffset-length );
   else
   {
     d->m_doc->setSelection( d->m_selectionStart.handle(), d->m_startOffset,


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

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