[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