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

List:       kde-commits
Subject:    kdepim/kdgantt
From:       Dag Andersen <danders () get2net ! dk>
Date:       2004-10-23 9:29:11
Message-ID: 20041023092911.4977B16C49 () office ! kde ! org
[Download RAW message or body]

CVS commit by danders: 

Stop memory leak because tasklinks where not deleted.


  M +2 -1      KDGanttView.cpp   1.11
  M +12 -1     KDGanttViewSubwidgets.cpp   1.12
  M +2 -1      KDGanttViewSubwidgets.h   1.4
  M +5 -1      KDGanttViewTaskLink.cpp   1.6


--- kdepim/kdgantt/KDGanttView.cpp  #1.10:1.11
@@ -200,4 +200,5 @@ KDGanttView::~KDGanttView()
   // delete cut item, if there is any
   myCanvasView->resetCutPaste( 0 );
+  myTimeTable->clearTaskLinks();
 }
 /*!

--- kdepim/kdgantt/KDGanttViewSubwidgets.cpp  #1.11:1.12
@@ -51,4 +51,5 @@
 #include <qpalette.h>
 #include <qdragobject.h>
+#include <qptrlist.h>
 
 #include <klocale.h>
@@ -77,4 +78,14 @@ QPtrList<KDGanttViewTaskLink> KDTimeTabl
 }
 
+void KDTimeTableWidget::clearTaskLinks()
+{
+    // cannot use clear() here, as tasklinks will remove themselves from my list when deleted!
+    QPtrListIterator<KDGanttViewTaskLink> it(myTaskLinkList);
+    while (it.current()) {
+        delete it.current();
+    }
+        
+}
+
 void KDTimeTableWidget::resetWidth( int wid )
 {

--- kdepim/kdgantt/KDGanttViewSubwidgets.h  #1.3:1.4
@@ -259,4 +259,5 @@ public:
     bool showTaskLinks();
     QPtrList<KDGanttViewTaskLink>taskLinks();
+    void clearTaskLinks();
     void updateMyContent();
     void removeItemFromTasklinks( KDGanttViewItem * );

--- kdepim/kdgantt/KDGanttViewTaskLink.cpp  #1.5:1.6
@@ -48,4 +48,8 @@
   If one of the lists becomes empty, the complete task link is deleted
   as well.
+  
+  The task link is deleted by KDGanttViews d'tor. 
+  You may delete the task link yourself, if you do it 
+  _before_ KDGanttViews d'tor is called.
 */
 


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

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