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

List:       kde-commits
Subject:    KDE/kdelibs/khtml
From:       Germain Garand <germain () ebooksfrance ! com>
Date:       2007-10-22 23:31:53
Message-ID: 1193095913.347435.18921.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 728325 by ggarand:

Port away from Qt3Support

with advices and review
kindly provided by Maksim Orlovich

Part 4. khtml/html and khtml/java
        +port kjavaappletviewer to QTableWidget (please test)

CCBUG: 150931


 M  +40 -33    html/html_formimpl.cpp  
 M  +2 -4      html/html_formimpl.h  
 M  +14 -17    html/html_miscimpl.cpp  
 M  +1 -1      java/kjavaappletserver.cpp  
 M  +24 -15    java/kjavaappletviewer.cpp  
 M  +2 -2      java/kjavaappletviewer.h  


--- trunk/KDE/kdelibs/khtml/html/html_formimpl.cpp #728324:728325
@@ -94,12 +94,12 @@
     if (getDocument() && getDocument()->view() && getDocument()->view()->part()) {
         getDocument()->view()->part()->dequeueWallet(this);
     }
-    Q3PtrListIterator<HTMLGenericFormElementImpl> it(formElements);
-    for (; it.current(); ++it)
-        it.current()->m_form = 0;
-    Q3PtrListIterator<HTMLImageElementImpl> it2(imgElements);
-    for (; it2.current(); ++it2)
-        it2.current()->m_form = 0;
+    QListIterator<HTMLGenericFormElementImpl*> it(formElements);
+    while (it.hasNext())
+        it.next()->m_form = 0;
+    QListIterator<HTMLImageElementImpl*> it2(imgElements);
+    while (it2.hasNext())
+        it2.next()->m_form = 0;
 }
 
 NodeImpl::Id HTMLFormElementImpl::id() const
@@ -126,9 +126,9 @@
 long HTMLFormElementImpl::length() const
 {
     int len = 0;
-    Q3PtrListIterator<HTMLGenericFormElementImpl> it(formElements);
-    for (; it.current(); ++it)
-	if (it.current()->isEnumeratable())
+    QListIterator<HTMLGenericFormElementImpl*> it(formElements);
+    while (it.hasNext())
+	if (it.next()->isEnumeratable())
 	    ++len;
 
     return len;
@@ -274,8 +274,8 @@
 
     QStringList fileUploads, fileNotUploads;
 
-    for (Q3PtrListIterator<HTMLGenericFormElementImpl> it(formElements); \
                it.current(); ++it) {
-        HTMLGenericFormElementImpl* const current = it.current();
+    for (QListIterator<HTMLGenericFormElementImpl*> it(formElements); it.hasNext();) \
{ +        HTMLGenericFormElementImpl* const current = it.next();
         khtml::encodingList lst;
 
         if (!current->disabled() && current->encoding(codec, lst, m_multipart))
@@ -468,9 +468,10 @@
     if (w->readMap(key, map))
         return; // failed, abort
 
-    for (Q3PtrListIterator<HTMLGenericFormElementImpl> it(formElements); \
                it.current(); ++it) {
-        if (it.current()->id() == ID_INPUT) {
-            HTMLInputElementImpl* const current = \
static_cast<HTMLInputElementImpl*>(it.current()); +    for \
(QListIterator<HTMLGenericFormElementImpl*> it(formElements); it.hasNext();) { +      \
HTMLGenericFormElementImpl* const cur = it.next(); +        if (cur->id() == \
ID_INPUT) { +            HTMLInputElementImpl* const current = \
                static_cast<HTMLInputElementImpl*>(cur);
             if ((current->inputType() == HTMLInputElementImpl::PASSWORD ||
                     current->inputType() == HTMLInputElementImpl::TEXT) &&
                     !current->readOnly() &&
@@ -489,15 +490,16 @@
     // if there is none, do a submit anyway if not more
     // than one <input type=text> or <input type=password>
     unsigned int inputtext = 0;
-    for (Q3PtrListIterator<HTMLGenericFormElementImpl> it(formElements); \
                it.current(); ++it) {
-        if (it.current()->id() == ID_BUTTON) {
-            HTMLButtonElementImpl* const current = static_cast<HTMLButtonElementImpl \
*>(it.current()); +    for (QListIterator<HTMLGenericFormElementImpl*> \
it(formElements); it.hasNext();) { +        HTMLGenericFormElementImpl* const cur = \
it.next(); +        if (cur->id() == ID_BUTTON) {
+            HTMLButtonElementImpl* const current = static_cast<HTMLButtonElementImpl \
                *>(cur);
             if (current->buttonType() == HTMLButtonElementImpl::SUBMIT && \
!current->disabled()) {  current->click();
                 return;
             }
-        } else if (it.current()->id() == ID_INPUT) {
-            HTMLInputElementImpl* const current = static_cast<HTMLInputElementImpl \
*>(it.current()); +        } else if (cur->id() == ID_INPUT) {
+            HTMLInputElementImpl* const current = static_cast<HTMLInputElementImpl \
*>(cur);  switch(current->inputType())  {
             case HTMLInputElementImpl::SUBMIT:
             case HTMLInputElementImpl::IMAGE:
@@ -530,9 +532,10 @@
     m_haveTextarea = false;
     const KUrl formUrl(getDocument()->URL());
     if (view && !view->nonPasswordStorableSite(formUrl.host())) {
-        for (Q3PtrListIterator<HTMLGenericFormElementImpl> it(formElements); \
                it.current(); ++it) {
-            if (it.current()->id() == ID_INPUT)  {
-                HTMLInputElementImpl* const c = static_cast<HTMLInputElementImpl*> \
(it.current()); +        for (QListIterator<HTMLGenericFormElementImpl*> \
it(formElements); it.hasNext();) { +            HTMLGenericFormElementImpl* const cur \
= it.next(); +            if (cur->id() == ID_INPUT)  {
+                HTMLInputElementImpl* const c = static_cast<HTMLInputElementImpl*> \
(cur);  if ((c->inputType() == HTMLInputElementImpl::TEXT ||
                         c->inputType() == HTMLInputElementImpl::PASSWORD) &&
                         !c->readOnly())  {
@@ -542,7 +545,7 @@
                         m_havePassword = true;
                 }
             }
-            else if (it.current()->id() == ID_TEXTAREA)
+            else if (cur->id() == ID_TEXTAREA)
                 m_haveTextarea = true;
         }
     }
@@ -701,8 +704,8 @@
         return;
     }
 
-    for (Q3PtrListIterator<HTMLGenericFormElementImpl> it(formElements); \
                it.current(); ++it)
-        it.current()->reset();
+    for (QListIterator<HTMLGenericFormElementImpl*> it(formElements); it.hasNext();)
+        it.next()->reset();
 
     m_inreset = false;
 }
@@ -780,8 +783,8 @@
 
 void HTMLFormElementImpl::radioClicked( HTMLGenericFormElementImpl *caller )
 {
-    for (Q3PtrListIterator<HTMLGenericFormElementImpl> it(formElements); \
                it.current(); ++it) {
-        HTMLGenericFormElementImpl* const current = it.current();
+    for (QListIterator<HTMLGenericFormElementImpl*> it(formElements); it.hasNext();) \
{ +        HTMLGenericFormElementImpl* const current = it.next();
         if (current->id() == ID_INPUT &&
             static_cast<HTMLInputElementImpl*>(current)->inputType() == \
                HTMLInputElementImpl::RADIO &&
             current != caller && current->form() == caller->form() && \
current->name() == caller->name()) @@ -796,7 +799,9 @@
 
 void HTMLFormElementImpl::removeFormElement(HTMLGenericFormElementImpl *e)
 {
-    formElements.remove(e);
+    int i = formElements.indexOf(e); 
+    if (i != -1)
+        formElements.removeAt(i);
 }
 
 void HTMLFormElementImpl::registerImgElement(HTMLImageElementImpl *e)
@@ -806,7 +811,9 @@
 
 void HTMLFormElementImpl::removeImgElement(HTMLImageElementImpl *e)
 {
-    imgElements.remove(e);
+    int i = imgElements.indexOf(e); 
+    if (i != -1)
+        imgElements.removeAt(i);
 }
 
 // -------------------------------------------------------------------------
@@ -2910,15 +2917,15 @@
 void HTMLTextAreaElementImpl::setDefaultValue(DOMString _defaultValue)
 {
     // there may be comments - remove all the text nodes and replace them with one
-    Q3PtrList<NodeImpl> toRemove;
+    QList<NodeImpl*> toRemove;
     NodeImpl *n;
     for (n = firstChild(); n; n = n->nextSibling())
         if (n->isTextNode())
             toRemove.append(n);
-    Q3PtrListIterator<NodeImpl> it(toRemove);
+    QListIterator<NodeImpl*> it(toRemove);
     int exceptioncode = 0;
-    for (; it.current(); ++it) {
-        removeChild(it.current(), exceptioncode);
+    while (it.hasNext()) {
+        removeChild(it.next(), exceptioncode);
     }
     insertBefore(getDocument()->createTextNode(_defaultValue.implementation()),firstChild(), \
exceptioncode);  setValue(_defaultValue);
--- trunk/KDE/kdelibs/khtml/html/html_formimpl.h #728324:728325
@@ -29,8 +29,6 @@
 #include "html/html_imageimpl.h"
 #include "dom/html_element.h"
 
-#include <Qt3Support/Q3PtrList>
-
 class QTextCodec;
 
 namespace khtml
@@ -110,8 +108,8 @@
 
 private:
     void gatherWalletData();
-    Q3PtrList<HTMLGenericFormElementImpl> formElements;
-    Q3PtrList<HTMLImageElementImpl> imgElements;
+    QList<HTMLGenericFormElementImpl*> formElements;
+    QList<HTMLImageElementImpl*> imgElements;
     DOMString m_target;
     DOMString m_enctype;
     QString m_boundary;
--- trunk/KDE/kdelibs/khtml/html/html_miscimpl.cpp #728324:728325
@@ -26,7 +26,6 @@
 #include "html_tableimpl.h"
 #include "html_formimpl.h"
 #include "html_documentimpl.h"
-#include <Qt3Support/Q3Dict>
 
 #include <misc/htmlhashes.h>
 #include <dom/dom_node.h>
@@ -55,17 +54,14 @@
 {
     static Cache* make() { return new CollectionCache; }
 
-    Q3Dict<QList<NodeImpl*> > nameCache;
+    QHash<QString,QList<NodeImpl*>* > nameCache;
 
-    CollectionCache(): nameCache(127)
-    {
-        nameCache.setAutoDelete(true);
-    }
+    CollectionCache(): nameCache(){}
 
     virtual void clear(DocumentImpl* doc)
     {
         Cache::clear(doc);
-        //qDeleteAll here in Qt4 when fully ported
+        qDeleteAll(nameCache);
         nameCache.clear();
     }
 };
@@ -293,7 +289,7 @@
     //remember stuff about elements we were asked for.
     m_cache->updateNodeListInfo(m_refNode->getDocument());
     CollectionCache* cache = static_cast<CollectionCache*>(m_cache);
-    if (QList<NodeImpl*>* info = cache->nameCache.find(key)) {
+    if (QList<NodeImpl*>* info = cache->nameCache.value(key)) {
         return *info;
     }
     else {
@@ -305,7 +301,7 @@
             match = nextNamedItem(name);
         }
 
-        cache->nameCache.insert(key, newInfo);
+        cache->nameCache.insertMulti(key, newInfo);
         return *newInfo;
     }
 }
@@ -328,8 +324,8 @@
         strt = m_cache->current.index;
     }
 
-    Q3PtrList<HTMLGenericFormElementImpl>& l = static_cast<HTMLFormElementImpl*>( \
                m_refNode )->formElements;
-    for (unsigned i = strt; i < l.count(); i++)
+    QList<HTMLGenericFormElementImpl*>& l = static_cast<HTMLFormElementImpl*>( \
m_refNode )->formElements; +    for (unsigned i = strt; i < (unsigned)l.count(); i++)
     {
         if (l.at( i )->isEnumeratable())
         {
@@ -349,9 +345,10 @@
 
 unsigned long HTMLFormCollectionImpl::calcLength(NodeImpl *start) const
 {
+    Q_UNUSED(start);
     unsigned length = 0;
-    Q3PtrList<HTMLGenericFormElementImpl> l = static_cast<HTMLFormElementImpl*>( \
                m_refNode )->formElements;
-    for ( unsigned i = 0; i < l.count(); i++ )
+    QList<HTMLGenericFormElementImpl*> l = static_cast<HTMLFormElementImpl*>( \
m_refNode )->formElements; +    for ( unsigned i = 0; i < (unsigned)l.count(); i++ )
         if ( l.at( i )->isEnumeratable() )
             ++length;
     return length;
@@ -367,10 +364,10 @@
 
 NodeImpl *HTMLFormCollectionImpl::nextNamedItem( const DOMString &name ) const
 {
-    Q3PtrList<HTMLGenericFormElementImpl>& l = static_cast<HTMLFormElementImpl*>( \
m_refNode )->formElements; +    QList<HTMLGenericFormElementImpl*>& l = \
static_cast<HTMLFormElementImpl*>( m_refNode )->formElements;  
     //Go through the list, trying to find the appropriate named form element.
-    for ( ; currentNamePos < l.count(); ++currentNamePos )
+    for ( ; currentNamePos < (unsigned)l.count(); ++currentNamePos )
     {
         HTMLGenericFormElementImpl* el = l.at(currentNamePos);
         if (el->isEnumeratable() &&
@@ -387,8 +384,8 @@
     //but only if no input tags were matched
     if (foundInput) return 0;
 
-    Q3PtrList<HTMLImageElementImpl>& il = static_cast<HTMLFormElementImpl*>( \
                m_refNode )->imgElements;
-    for ( ; currentNameImgPos < il.count(); ++currentNameImgPos )
+    QList<HTMLImageElementImpl*>& il = static_cast<HTMLFormElementImpl*>( m_refNode \
)->imgElements; +    for ( ; currentNameImgPos < (unsigned)il.count(); \
++currentNameImgPos )  {
         HTMLImageElementImpl* el = il.at(currentNameImgPos);
         if ((el->getAttribute(ATTR_ID)   == name) ||
--- trunk/KDE/kdelibs/khtml/java/kjavaappletserver.cpp #728324:728325
@@ -762,7 +762,7 @@
     killTimers();
     startTimer(15000);
     while (!frame->exit)
-		QAbstractEventDispatcher::instance()->processEvents (QEventLoop::AllEvents | \
QEventLoop::WaitForMore); +		QAbstractEventDispatcher::instance()->processEvents \
(QEventLoop::AllEvents | QEventLoop::WaitForMoreEvents);  if (d->jsstack.size() <= 1)
         killTimers();
     kDebug(6100) << "<KJavaAppletServer::waitForReturnData stacksize:" << \
                d->jsstack.size();
--- trunk/KDE/kdelibs/khtml/java/kjavaappletviewer.cpp #728324:728325
@@ -29,11 +29,11 @@
 #undef Always
 #endif
 #include <QtCore/QDir>
-#include <Qt3Support/Q3Table>
 #include <QtCore/QPair>
 #include <QtCore/QTimer>
 #include <QtCore/QPointer>
 #include <QtGui/QLabel>
+#include <QtGui/QTableWidget>
 #include <QtDBus/QtDBus>
 
 #include <kauthorized.h>
@@ -132,31 +132,40 @@
     setModal( true );
 
     KJavaApplet* const applet = parent->applet ();
-    table = new Q3Table (30, 2, this);
+    table = new QTableWidget (30, 2, this);
     table->setMinimumSize (QSize (600, 400));
     table->setColumnWidth (0, 200);
     table->setColumnWidth (1, 340);
-    Q3Header* const header = table->horizontalHeader();
-    header->setLabel (0, i18n ("Parameter"));
-    header->setLabel (1, i18n ("Value"));
-    Q3TableItem * tit = new Q3TableItem (table, Q3TableItem::Never, i18n("Class"));
+    QTableWidgetItem* const header1 = new QTableWidgetItem(i18n ("Parameter"));
+    QTableWidgetItem* const header2 = new QTableWidgetItem(i18n ("Value"));
+    table->setHorizontalHeaderItem(1, header1);
+    table->setHorizontalHeaderItem(2, header2);
+    QTableWidgetItem * tit = new QTableWidgetItem(i18n("Class"));
+    tit->setFlags( tit->flags()^Qt::ItemIsEditable );
     table->setItem (0, 0, tit);
-    tit = new Q3TableItem(table, Q3TableItem::Always, applet->appletClass());
+    tit = new QTableWidgetItem(applet->appletClass());
+    tit->setFlags( tit->flags()|Qt::ItemIsEditable );
     table->setItem (0, 1, tit);
-    tit = new Q3TableItem (table, Q3TableItem::Never, i18n ("Base URL"));
+    tit = new QTableWidgetItem (i18n ("Base URL"));
+    tit->setFlags( tit->flags()^Qt::ItemIsEditable );
     table->setItem (1, 0, tit);
-    tit = new Q3TableItem(table, Q3TableItem::Always, applet->baseURL());
+    tit = new QTableWidgetItem(applet->baseURL());
+    tit->setFlags( tit->flags()|Qt::ItemIsEditable );
     table->setItem (1, 1, tit);
-    tit = new Q3TableItem (table, Q3TableItem::Never, i18n ("Archives"));
+    tit = new QTableWidgetItem(i18n ("Archives"));
+    tit->setFlags( tit->flags()^Qt::ItemIsEditable );
     table->setItem (2, 0, tit);
-    tit = new Q3TableItem(table, Q3TableItem::Always, applet->archives());
+    tit = new QTableWidgetItem(applet->archives());
+    tit->setFlags( tit->flags()|Qt::ItemIsEditable );
     table->setItem (2, 1, tit);
     QMap<QString,QString>::const_iterator it = applet->getParams().begin();
     const QMap<QString,QString>::const_iterator itEnd = applet->getParams().end();
     for (int count = 2; it != itEnd; ++it) {
-        tit = new Q3TableItem (table, Q3TableItem::Always, it.key ());
+        tit = new QTableWidgetItem (it.key ());
+        tit->setFlags( tit->flags()|Qt::ItemIsEditable );
         table->setItem (++count, 0, tit);
-        tit = new Q3TableItem(table, Q3TableItem::Always, it.value ());
+        tit = new QTableWidgetItem(it.value());
+        tit->setFlags( tit->flags()|Qt::ItemIsEditable );
         table->setItem (count, 1, tit);
     }
     setMainWidget (table);
@@ -164,12 +173,12 @@
 }
 
 void AppletParameterDialog::slotClose () {
-    table->selectCells (0, 0, 0, 0);
+    table->setRangeSelected(QTableWidgetSelectionRange(0, 0, 0, 0), true);
     KJavaApplet* const applet = m_appletWidget->applet ();
     applet->setAppletClass (table->item (0, 1)->text ());
     applet->setBaseURL (table->item (1, 1)->text ());
     applet->setArchives (table->item (2, 1)->text ());
-    const int lim = table->numRows();
+    const int lim = table->rowCount();
     for (int i = 3; i < lim; ++i) {
         if (table->item (i, 0) && table->item (i, 1) && !table->item (i, 0)->text \
().isEmpty ())  applet->setParameter (table->item (i, 0)->text (),
--- trunk/KDE/kdelibs/khtml/java/kjavaappletviewer.h #728324:728325
@@ -36,7 +36,7 @@
 
 #include "kjavaappletwidget.h"
 
-class Q3Table;
+class QTableWidget;
 class QLabel;
 class KJavaProcess;
 class KJavaAppletViewer;
@@ -141,7 +141,7 @@
     void slotClose ();
 private:
     KJavaAppletWidget * m_appletWidget;
-    Q3Table * table;
+    QTableWidget * table;
 };
 
 #endif


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

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