]> Git trees. - libqmvoc.git/commitdiff
Fix two memleaks, port half of the class to pure Qt4
authorCarsten Niehaus <cniehaus@gmx.de>
Thu, 19 Oct 2006 15:17:24 +0000 (15:17 +0000)
committerCarsten Niehaus <cniehaus@gmx.de>
Thu, 19 Oct 2006 15:17:24 +0000 (15:17 +0000)
svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=597195

kdeeduui/kdeeduglossary.cpp

index 4837c31ffeea2b279414d23b9df1e3792e340ab3..952a06fc48cbb6719d4a32d6b626306c3d63c90e 100644 (file)
@@ -44,6 +44,10 @@ Glossary::Glossary()
 
 Glossary::~Glossary()
 {
+    foreach ( GlossaryItem * item, m_itemlist ) {
+        delete item;
+        item = 0;
+    }
 }
 
 void Glossary::init( const KUrl& url, const QString& path )
@@ -120,21 +124,17 @@ void Glossary::setBackgroundPicture( const QString& filename )
 
 void Glossary::fixImagePath()
 {
-       kDebug() << "Glossary::fixImagePath()" << endl;
-       QList<GlossaryItem*>::iterator it = m_itemlist.begin();
-       const QList<GlossaryItem*>::iterator itEnd = m_itemlist.end();
        QString imgtag = "<img src=\"" + m_picturepath + '/' + "\\1\" />";
        QRegExp exp( "\\[img\\]([^[]+)\\[/img\\]" );
 
-       for ( ; it != itEnd ; ++it )
-       {
-               QString tmp = ( *it )->desc();
-               while ( exp.indexIn( tmp ) > -1 )
-               {
-                       tmp = tmp.replace( exp, imgtag );
-               }
-               ( *it )->setDesc( tmp );
-       }
+  foreach (GlossaryItem * item, m_itemlist) {
+      QString tmp = item->desc();
+      while ( exp.indexIn( tmp ) > -1 )
+      {
+          tmp = tmp.replace( exp, imgtag );
+      }
+      item->setDesc( tmp );
+  }
 }
 
 QList<GlossaryItem*> Glossary::readItems( QDomDocument &itemDocument )
@@ -256,6 +256,10 @@ GlossaryDialog::GlossaryDialog( bool folded, QWidget *parent )
 
 GlossaryDialog::~GlossaryDialog()
 {
+    foreach ( Glossary * glossar, m_glossaries ) {
+        delete glossar;
+        glossar = 0;
+    }
 }
 
 void GlossaryDialog::keyPressEvent(QKeyEvent* e)
@@ -290,40 +294,31 @@ void GlossaryDialog::displayItem( const KUrl& url, const KParts::URLArgs& )
 
 void GlossaryDialog::updateTree()
 {
-       m_glosstree->clear();
-
-       QList<Glossary*>::const_iterator itGl = m_glossaries.begin();
-       const QList<Glossary*>::const_iterator itGlEnd = m_glossaries.end();
-       
-       for ( ; itGl != itGlEnd ; ++itGl )
-       {
-               QList<GlossaryItem*> items = ( *itGl )->itemlist();
-               QList<GlossaryItem*>::iterator it = items.begin();
-               const QList<GlossaryItem*>::iterator itEnd = items.end();
-
-               Q3ListViewItem *main = new Q3ListViewItem( m_glosstree, ( *itGl )->name() );
-               main->setExpandable( true );
-               main->setSelectable( false );
-
-               for ( ; it != itEnd ; ++it )
-               {
-                       if ( m_folded )
-                       {
-                               QChar thisletter = ( *it )->name().toUpper()[0];
-                               Q3ListViewItem *thisletteritem = findTreeWithLetter( thisletter, main );
-                               if ( !thisletteritem )
-                               {
-                                       thisletteritem = new Q3ListViewItem( main, QString(thisletter) );
-                                       thisletteritem->setExpandable( true );
-                                       thisletteritem->setSelectable( false );
-                               }
-                               new Q3ListViewItem( thisletteritem, ( *it )->name() );
-                       }
-                       else
-                               new Q3ListViewItem( main, ( *it )->name() );
-               }
-               main->sort();
-       }
+    m_glosstree->clear();
+
+    foreach (Glossary * glossar, m_glossaries) {
+        Q3ListViewItem *main = new Q3ListViewItem( m_glosstree, glossar->name() );
+        main->setExpandable( true );
+        main->setSelectable( false );
+        foreach (GlossaryItem * item, glossar->itemlist()) {
+            if ( m_folded )
+            {
+                QChar thisletter = item->name().toUpper()[0];
+                Q3ListViewItem *thisletteritem = findTreeWithLetter( thisletter, main );
+                if ( !thisletteritem )
+                {
+                    thisletteritem = new Q3ListViewItem( main, QString(thisletter) );
+                    thisletteritem->setExpandable( true );
+                    thisletteritem->setSelectable( false );
+                }
+                new Q3ListViewItem( thisletteritem, item->name() );
+            }
+            else
+                new Q3ListViewItem( main, item->name() );
+
+        }
+        main->sort();
+    }
 }
 
 void GlossaryDialog::addGlossary( Glossary* newgloss )
@@ -332,9 +327,6 @@ void GlossaryDialog::addGlossary( Glossary* newgloss )
        if ( newgloss->isEmpty() ) return;
        m_glossaries.append( newgloss );
 
-       kDebug() << "Count of the new glossary: " << newgloss->itemlist().count() << endl;
-       kDebug() << "Number of glossaries: " << m_glossaries.count() << endl;
-
        updateTree();
 }