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

List:       kde-commits
Subject:    [sflphone-kde/abstractmodels] src: [ #24595 ] Fix memory leak
From:       Emmanuel Lepage Vallee <emmanuel.lepage () savoirfairelinux ! com>
Date:       2013-05-31 22:01:19
Message-ID: 20130531220119.DD8E1A6067 () git ! kde ! org
[Download RAW message or body]

Git commit 158ae1dfe67f81465e0c1af207ee5f7da9e14ecf by Emmanuel Lepage Vallee.
Committed on 01/06/2013 at 00:01.
Pushed by lepagevalleeemmanuel into branch 'abstractmodels'.

[ #24595 ] Fix memory leak

M  +6    -0    src/delegates/categorizeddelegate.cpp
M  +1    -0    src/delegates/categorizeddelegate.h
M  +8    -4    src/klib/tipmanager.cpp
M  +4    -14   src/klib/tipmanager.h
M  +3    -2    src/sflphone.cpp
M  +2    -0    src/sflphone.h
M  +7    -1    src/widgets/callviewoverlaytoolbar.cpp
M  +1    -0    src/widgets/callviewoverlaytoolbar.h

http://commits.kde.org/sflphone-kde/158ae1dfe67f81465e0c1af207ee5f7da9e14ecf

diff --git a/src/delegates/categorizeddelegate.cpp \
b/src/delegates/categorizeddelegate.cpp index 19d35df..c3e5e03 100644
--- a/src/delegates/categorizeddelegate.cpp
+++ b/src/delegates/categorizeddelegate.cpp
@@ -29,6 +29,12 @@ SortedTreeDelegate::SortedTreeDelegate(QTreeView* widget)
 {
 }
 
+SortedTreeDelegate::~SortedTreeDelegate()
+{
+   if (m_pChildDelegate) delete m_pChildDelegate;
+   if (m_pChildChildDelegate) delete m_pChildChildDelegate;
+}
+
 QSize SortedTreeDelegate::sizeHint(const QStyleOptionViewItem& option, const \
QModelIndex& index) const {  //Only do it for categories and objects deeper than 1 \
level, use precalculated values for others  if (index.parent().isValid() && \
                !index.parent().parent().isValid() && m_pChildDelegate) {
diff --git a/src/delegates/categorizeddelegate.h \
b/src/delegates/categorizeddelegate.h index a128924..869f615 100644
--- a/src/delegates/categorizeddelegate.h
+++ b/src/delegates/categorizeddelegate.h
@@ -26,6 +26,7 @@ class SortedTreeDelegate : public QStyledItemDelegate
 {
   public:
    SortedTreeDelegate(QTreeView* widget);
+   virtual ~SortedTreeDelegate();
 
    QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) \
const;  QRect fullCategoryRect(const QStyleOptionViewItem& option, const QModelIndex& \
                index) const;
diff --git a/src/klib/tipmanager.cpp b/src/klib/tipmanager.cpp
index 81cf3a3..d259e05 100644
--- a/src/klib/tipmanager.cpp
+++ b/src/klib/tipmanager.cpp
@@ -27,11 +27,11 @@
 #include <KDebug>
 #include <KStandardDirs>
 
-bool ResizeEventFilter::eventFilter(QObject *obj, QEvent *event)
+bool TipManager::eventFilter(QObject *obj, QEvent *event)
 {
    Q_UNUSED(obj);
    if (event->type() == QEvent::Resize) {
-      m_pLoader->changeSize();
+      changeSize();
    }
    return false;
 }
@@ -41,8 +41,7 @@ TipManager::TipManager(QTreeView* parent):QObject(parent),
 m_OriginalPalette(parent->palette()),m_pParent(parent),m_BottomMargin(0),m_TopMargin(0),
  m_pAnim(this),m_pCurrentTip(nullptr),m_pTimer(new QTimer())
 {
-   ResizeEventFilter* filter = new ResizeEventFilter(this);
-   parent->installEventFilter(filter);
+   parent->installEventFilter(this);
    parent->setProperty("tipManager",QVariant::fromValue(qobject_cast<TipManager*>(this)));
  reload();
 
@@ -52,6 +51,11 @@ m_pAnim(this),m_pCurrentTip(nullptr),m_pTimer(new QTimer())
    connect(&m_pAnim,SIGNAL(animationEnded()),this,SLOT(animationEnded()));
 }
 
+TipManager::~TipManager()
+{
+   delete m_pTimer;
+}
+
 ///Get the current image
 QImage TipManager::getImage()
 {
diff --git a/src/klib/tipmanager.h b/src/klib/tipmanager.h
index 2f6d4eb..ea55822 100644
--- a/src/klib/tipmanager.h
+++ b/src/klib/tipmanager.h
@@ -32,20 +32,6 @@ class QTimer;
 #include "tipanimationwrapper.h"
 class TipManager;
 
-//Classes
-class ResizeEventFilter : public QObject
-{
-   Q_OBJECT
-public:
-   explicit ResizeEventFilter(TipManager* parent) : QObject(0) {
-      m_pLoader =  parent;
-   }
-protected:
-   bool eventFilter(QObject *obj, QEvent *event);
-private:
-   TipManager* m_pLoader;
-};
-
 ///This class create a background brush for a QWidget with a tip window
 class LIB_EXPORT TipManager : public QObject
 {
@@ -54,6 +40,7 @@ class LIB_EXPORT TipManager : public QObject
 public:
    //Constructor
    explicit TipManager(QTreeView* parent);
+   virtual ~TipManager();
 
    //Mutator
    void hideTip(Tip* tip);
@@ -67,6 +54,9 @@ public:
    void setBottomMargin(int margin);
    void setCurrentTip(Tip* tip);
 
+protected:
+   bool eventFilter(QObject *obj, QEvent *event);
+
 private:
    //Methods
    void reload();
diff --git a/src/sflphone.cpp b/src/sflphone.cpp
index e3b1cac..f0a00cc 100644
--- a/src/sflphone.cpp
+++ b/src/sflphone.cpp
@@ -154,6 +154,7 @@ SFLPhone::~SFLPhone()
    delete m_pCentralDW       ;
    delete m_pHistoryDW       ;
    delete m_pBookmarkDW      ;
+   delete m_pAccountModel    ;
 
    delete AkonadiBackend::getInstance();
    delete CallModel::instance();
@@ -287,8 +288,8 @@ bool SFLPhone::initialize()
    bar->addPermanentWidget(curAccL);
 
    m_pAccountStatus = new KComboBox(bar);
-   AccountListNoCheckProxyModel* accountModel = new AccountListNoCheckProxyModel();
-   m_pAccountStatus->setModel(accountModel);
+   m_pAccountModel = new AccountListNoCheckProxyModel();
+   m_pAccountStatus->setModel(m_pAccountModel);
    m_pAccountStatus->setMinimumSize(100,0);
    bar->addPermanentWidget(m_pAccountStatus);
    
diff --git a/src/sflphone.h b/src/sflphone.h
index 690af65..720f6a3 100644
--- a/src/sflphone.h
+++ b/src/sflphone.h
@@ -44,6 +44,7 @@ class HistoryDock;
 class CallTreeItem;
 class VideoRenderer;
 class ExtendedAction;
+class AccountListNoCheckProxyModel;
 
 
 /**
@@ -119,6 +120,7 @@ private:
 
    static SFLPhone*            m_sApp;
    static CallModel* m_pModel;
+   AccountListNoCheckProxyModel* m_pAccountModel;
 
    //Setters
    void setObjectNames();
diff --git a/src/widgets/callviewoverlaytoolbar.cpp \
b/src/widgets/callviewoverlaytoolbar.cpp index ab89c8d..a9887d0 100644
--- a/src/widgets/callviewoverlaytoolbar.cpp
+++ b/src/widgets/callviewoverlaytoolbar.cpp
@@ -51,7 +51,7 @@ const TypedStateMachine< TypedStateMachine< bool , Call::State > , \
ActionButton  }};
 
 ///Constructor
-CallViewOverlayToolbar::CallViewOverlayToolbar(QTreeView* parent) : \
QWidget(parent),m_pRightRender(0),m_pLeftRender(0),m_pParent(parent) \
+CallViewOverlayToolbar::CallViewOverlayToolbar(QTreeView* parent) : \
QWidget(parent),m_pRightRender(nullptr),m_pLeftRender(nullptr),m_pParent(parent)  {
    m_pRightRender = new QSvgRenderer( \
KStandardDirs::locate("data","sflphone-client-kde/overlay_right_corner.svg") );  \
m_pLeftRender  = new QSvgRenderer( \
KStandardDirs::locate("data","sflphone-client-kde/overlay_left_corner.svg" ) ); @@ \
-95,6 +95,12 @@ CallViewOverlayToolbar::CallViewOverlayToolbar(QTreeView* parent) : \
QWidget(pare  hideEvent(nullptr);
 } //CallViewOverlayToolbar
 
+CallViewOverlayToolbar::~CallViewOverlayToolbar()
+{
+   delete m_pRightRender;
+   delete m_pLeftRender;
+}
+
 ///Resize event
 void CallViewOverlayToolbar::resizeEvent(QResizeEvent* event)
 {
diff --git a/src/widgets/callviewoverlaytoolbar.h \
b/src/widgets/callviewoverlaytoolbar.h index 0f14686..643a4c0 100644
--- a/src/widgets/callviewoverlaytoolbar.h
+++ b/src/widgets/callviewoverlaytoolbar.h
@@ -66,6 +66,7 @@ class CallViewOverlayToolbar : public QWidget
    Q_OBJECT
 public:
    explicit CallViewOverlayToolbar(QTreeView* parent = nullptr);
+   virtual ~CallViewOverlayToolbar();
 
 private:
    //Attributes


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

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