From: Jean-Baptiste Kempf Date: Fri, 1 Aug 2008 18:39:00 +0000 (-0700) Subject: Preferences: fix some memleaks and fix horrible video-filter bug. :D X-Git-Tag: 0.9.0-test3~43 X-Git-Url: https://git.sesse.net/?p=vlc;a=commitdiff_plain;h=36f0edc98752f8afa17a50cb8de086b30ba54c2e Preferences: fix some memleaks and fix horrible video-filter bug. :D --- diff --git a/modules/gui/qt4/components/complete_preferences.cpp b/modules/gui/qt4/components/complete_preferences.cpp index d6cd6160c7..8c68d16b43 100644 --- a/modules/gui/qt4/components/complete_preferences.cpp +++ b/modules/gui/qt4/components/complete_preferences.cpp @@ -518,5 +518,12 @@ void AdvPrefsPanel::apply() c->doApply( p_intf ); } } + void AdvPrefsPanel::clean() {} + +AdvPrefsPanel::~AdvPrefsPanel() +{ + qDeleteAll( controls ); controls.clear(); +} + diff --git a/modules/gui/qt4/components/complete_preferences.hpp b/modules/gui/qt4/components/complete_preferences.hpp index 6cde2e16ec..29105e8638 100644 --- a/modules/gui/qt4/components/complete_preferences.hpp +++ b/modules/gui/qt4/components/complete_preferences.hpp @@ -85,7 +85,7 @@ class AdvPrefsPanel : public QWidget public: AdvPrefsPanel( intf_thread_t *, QWidget *, PrefsItemData * ); AdvPrefsPanel( QWidget *); - virtual ~AdvPrefsPanel() {}; + virtual ~AdvPrefsPanel(); void apply(); void clean(); private: diff --git a/modules/gui/qt4/components/preferences_widgets.cpp b/modules/gui/qt4/components/preferences_widgets.cpp index 2bcffd12cc..67f1cf8b7b 100644 --- a/modules/gui/qt4/components/preferences_widgets.cpp +++ b/modules/gui/qt4/components/preferences_widgets.cpp @@ -606,8 +606,11 @@ ModuleListConfigControl::ModuleListConfigControl( vlc_object_t *_p_this, QGridLayout *l, int &line) : VStringConfigControl( _p_this, _p_item, _parent ) { + groupBox = NULL; + if( !p_item->psz_text ) return; + groupBox = new QGroupBox ( qtr(p_item->psz_text) ); - text = new QLineEdit(); + text = new QLineEdit; QGridLayout *layoutGroupBox = new QGridLayout( groupBox ); finish( bycat ); @@ -641,8 +644,7 @@ ModuleListConfigControl::~ModuleListConfigControl() { delete *it; } - delete groupBox; - delete text; + if( groupBox ) delete groupBox; } #define CHECKBOX_LISTS \ diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp index 4c42b43240..980b504b6d 100644 --- a/modules/gui/qt4/components/simple_preferences.cpp +++ b/modules/gui/qt4/components/simple_preferences.cpp @@ -40,6 +40,8 @@ #include #include +#include + #include #define ICON_HEIGHT 64 @@ -571,13 +573,7 @@ void SPrefsPanel::updateAudioOptions( int number) SPrefsPanel::~SPrefsPanel() { - QList::Iterator conf_it; - for( conf_it = controls.begin() ; conf_it != controls.end() ; conf_it++ ) - { - ConfigControl *c = qobject_cast(*conf_it); - delete c; - } - controls.clear(); + qDeleteAll( controls ); controls.clear(); } void SPrefsPanel::updateAudioVolume( int volume )