From: Carsten Niehaus Date: Thu, 19 Oct 2006 15:17:24 +0000 (+0000) Subject: Fix two memleaks, port half of the class to pure Qt4 X-Git-Tag: v3.80.2~8 X-Git-Url: https://git.rmz.fi/?a=commitdiff_plain;h=306d3b109a371da4af27f10d1312ab3175b6f1e6;p=libqmvoc.git Fix two memleaks, port half of the class to pure Qt4 svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=597195 --- diff --git a/kdeeduui/kdeeduglossary.cpp b/kdeeduui/kdeeduglossary.cpp index 4837c31..952a06f 100644 --- a/kdeeduui/kdeeduglossary.cpp +++ b/kdeeduui/kdeeduglossary.cpp @@ -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::iterator it = m_itemlist.begin(); - const QList::iterator itEnd = m_itemlist.end(); QString imgtag = ""; 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 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::const_iterator itGl = m_glossaries.begin(); - const QList::const_iterator itGlEnd = m_glossaries.end(); - - for ( ; itGl != itGlEnd ; ++itGl ) - { - QList items = ( *itGl )->itemlist(); - QList::iterator it = items.begin(); - const QList::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(); }