From kde-commits Fri May 31 22:01:19 2013 From: Emmanuel Lepage Vallee Date: Fri, 31 May 2013 22:01:19 +0000 To: kde-commits Subject: [sflphone-kde/abstractmodels] src: [ #24595 ] Fix memory leak Message-Id: <20130531220119.DD8E1A6067 () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=137003769007563 Git commit 158ae1dfe67f81465e0c1af207ee5f7da9e14ecf by Emmanuel Lepage Vall= ee. 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/categori= zeddelegate.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, con= st QModelIndex& index) const { //Only do it for categories and objects deeper than 1 level, use precal= culated values for others if (index.parent().isValid() && !index.parent().parent().isValid() && m= _pChildDelegate) { diff --git a/src/delegates/categorizeddelegate.h b/src/delegates/categorize= ddelegate.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& i= ndex) const; QRect fullCategoryRect(const QStyleOptionViewItem& option, const QModel= Index& 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 #include = -bool ResizeEventFilter::eventFilter(QObject *obj, QEvent *event) +bool TipManager::eventFilter(QObject *obj, QEvent *event) { Q_UNUSED(obj); if (event->type() =3D=3D 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 =3D new ResizeEventFilter(this); - parent->installEventFilter(filter); + parent->installEventFilter(this); parent->setProperty("tipManager",QVariant::fromValue(qobject_cast(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 =3D 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 =3D new KComboBox(bar); - AccountListNoCheckProxyModel* accountModel =3D new AccountListNoCheckPr= oxyModel(); - m_pAccountStatus->setModel(accountModel); + m_pAccountModel =3D 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/callviewo= verlaytoolbar.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) : QWidge= t(parent),m_pRightRender(0),m_pLeftRender(0),m_pParent(parent) +CallViewOverlayToolbar::CallViewOverlayToolbar(QTreeView* parent) : QWidge= t(parent),m_pRightRender(nullptr),m_pLeftRender(nullptr),m_pParent(parent) { m_pRightRender =3D new QSvgRenderer( KStandardDirs::locate("data","sflp= hone-client-kde/overlay_right_corner.svg") ); m_pLeftRender =3D new QSvgRenderer( KStandardDirs::locate("data","sflp= hone-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/callviewove= rlaytoolbar.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 =3D nullptr); + virtual ~CallViewOverlayToolbar(); = private: //Attributes