[vlc-devel] commit: Fix the leak caused by the QGridLayout of the FS controller, since it isn't a child of FullScreenController, and therefore not destroyed at exit. (Jean-Baptiste Kempf )
git version control
git at videolan.org
Sat Jul 26 08:09:26 CEST 2008
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Fri Jul 25 23:10:23 2008 -0700| [b00904493e3d8a24c2612a16c19348dcc16ca60c]
Fix the leak caused by the QGridLayout of the FS controller, since it isn't a child of FullScreenController, and therefore not destroyed at exit.
Should fix #1677
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b00904493e3d8a24c2612a16c19348dcc16ca60c
---
modules/gui/qt4/components/interface_widgets.cpp | 82 +++++++++++-----------
1 files changed, 41 insertions(+), 41 deletions(-)
diff --git a/modules/gui/qt4/components/interface_widgets.cpp b/modules/gui/qt4/components/interface_widgets.cpp
index 0cd05e6..2df4c51 100644
--- a/modules/gui/qt4/components/interface_widgets.cpp
+++ b/modules/gui/qt4/components/interface_widgets.cpp
@@ -249,8 +249,7 @@ VisualSelector::VisualSelector( intf_thread_t *_p_i ) :
layout->addWidget( prevButton );
layout->addWidget( nextButton );
- layout->addItem( new QSpacerItem( 40,20,
- QSizePolicy::Expanding, QSizePolicy::Minimum ) );
+ layout->addStretch( 10 );
layout->addWidget( new QLabel( qtr( "Current visualization" ) ) );
current = new QLabel( qtr( "None" ) );
@@ -405,19 +404,10 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
bool b_fsCreation) :
QFrame( _p_mi ), p_intf( _p_i )
{
- controlLayout = new QGridLayout( );
-
- controlLayout->setSpacing( 0 );
- controlLayout->setLayoutMargins( 7, 5, 7, 3, 6 );
-
- if( !b_fsCreation )
- setLayout( controlLayout );
-
- setSizePolicy( QSizePolicy::Preferred , QSizePolicy::Maximum );
+ setSizePolicy( QSizePolicy::Preferred , QSizePolicy::Maximum );
/** The main Slider **/
slider = new InputSlider( Qt::Horizontal, NULL );
- controlLayout->addWidget( slider, 0, 1, 1, 16 );
/* Update the position when the IM has changed */
CONNECT( THEMIM->getIM(), positionUpdated( float, int, int ),
slider, setPosition( float, int, int ) );
@@ -431,20 +421,17 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
slowerButton->setMaximumSize( QSize( 26, 20 ) );
BUTTON_SET_ACT( slowerButton, "-", qtr( "Slower" ), slower() );
- controlLayout->addWidget( slowerButton, 0, 0 );
fasterButton = new QToolButton;
fasterButton->setAutoRaise( true );
fasterButton->setMaximumSize( QSize( 26, 20 ) );
BUTTON_SET_ACT( fasterButton, "+", qtr( "Faster" ), faster() );
- controlLayout->addWidget( fasterButton, 0, 17 );
/* advanced Controls handling */
b_advancedVisible = b_advControls;
advControls = new AdvControlsWidget( p_intf );
- controlLayout->addWidget( advControls, 1, 3, 2, 4, Qt::AlignBottom );
if( !b_advancedVisible ) advControls->hide();
/** Disc and Menus handling */
@@ -466,8 +453,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
setupSmallButton( nextSectionButton );
discLayout->addWidget( nextSectionButton );
- controlLayout->addWidget( discFrame, 1, 10, 2, 3, Qt::AlignBottom );
-
BUTTON_SET_IMG( prevSectionButton, "", previous.png, "" );
BUTTON_SET_IMG( nextSectionButton, "", next.png, "" );
BUTTON_SET_IMG( menuButton, "", previous.png, qtr( "Menu" ) );
@@ -512,8 +497,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
telexPage->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum );
telexLayout->addWidget( telexPage );
- if( !b_fsCreation )
- controlLayout->addWidget( telexFrame, 1, 10, 2, 4, Qt::AlignBottom );
telexFrame->hide(); /* default hidden */
CONNECT( telexPage, valueChanged( int ), THEMIM->getIM(),
@@ -553,12 +536,8 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
playButton->setMinimumSize( QSize( 36, 36 ) );
playButton->setIconSize( QSize( 30, 30 ) );
- controlLayout->addWidget( playButton, 2, 0, 2, 2 );
- controlLayout->setColumnMinimumWidth( 2, 20 );
- controlLayout->setColumnStretch( 2, 0 );
-
- /** Prev + Stop + Next Block **/
+ /** Prev + Stop + Next Block **/
controlButLayout = new QHBoxLayout;
controlButLayout->setSpacing( 0 ); /* Don't remove that, will be useful */
@@ -584,8 +563,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
controlButLayout->addWidget( nextButton );
/* Add this block to the main layout */
- if( !b_fsCreation )
- controlLayout->addLayout( controlButLayout, 3, 3, 1, 3 );
BUTTON_SET_ACT_I( playButton, "", play.png, qtr( "Play" ), play() );
BUTTON_SET_ACT_I( prevButton, "" , previous.png,
@@ -593,11 +570,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
BUTTON_SET_ACT_I( nextButton, "", next.png, qtr( "Next" ), next() );
BUTTON_SET_ACT_I( stopButton, "", stop.png, qtr( "Stop" ), stop() );
- controlLayout->setColumnMinimumWidth( 7, 20 );
- controlLayout->setColumnStretch( 7, 0 );
- controlLayout->setColumnStretch( 8, 0 );
- controlLayout->setColumnStretch( 9, 0 );
-
/*
* Other first Line buttons
*/
@@ -605,12 +577,10 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
fullscreenButton = new QPushButton( "F" );
BUTTON_SET_ACT( fullscreenButton, "F", qtr( "Fullscreen" ), fullscreen() );
setupSmallButton( fullscreenButton );
- controlLayout->addWidget( fullscreenButton, 3, 10, Qt::AlignBottom );
/** Playlist Button **/
playlistButton = new QPushButton;
setupSmallButton( playlistButton );
- controlLayout->addWidget( playlistButton, 3, 11, Qt::AlignBottom );
BUTTON_SET_IMG( playlistButton, "" , playlist.png, qtr( "Show playlist" ) );
CONNECT( playlistButton, clicked(), _p_mi, togglePlaylist() );
@@ -619,11 +589,7 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
BUTTON_SET_ACT( extSettingsButton, "Ex", qtr( "Extended settings" ),
extSettings() );
setupSmallButton( extSettingsButton );
- controlLayout->addWidget( extSettingsButton, 3, 12, Qt::AlignBottom );
- controlLayout->setColumnStretch( 13, 0 );
- controlLayout->setColumnMinimumWidth( 13, 24 );
- controlLayout->setColumnStretch( 14, 5 );
/* Volume */
hVolLabel = new VolumeClickHandler( p_intf, this );
@@ -632,7 +598,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
volMuteLabel->setPixmap( QPixmap( ":/pixmaps/volume-medium.png" ) );
volMuteLabel->setToolTip( qtr( "Mute" ) );
volMuteLabel->installEventFilter( hVolLabel );
- controlLayout->addWidget( volMuteLabel, 3, 15, Qt::AlignBottom );
if( b_shiny )
{
@@ -649,7 +614,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
volumeSlider->setMaximumSize( QSize( 200, 40 ) );
volumeSlider->setMinimumSize( QSize( 106, 30 ) );
volumeSlider->setFocusPolicy( Qt::NoFocus );
- controlLayout->addWidget( volumeSlider, 2, 16, 2 , 2, Qt::AlignBottom );
/* Set the volume from the config */
volumeSlider->setValue( ( config_GetInt( p_intf, "volume" ) ) *
@@ -662,6 +626,43 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
CONNECT( volumeSlider, valueChanged( int ), this, updateVolume( int ) );
CONNECT( THEMIM, volumeChanged( void ), this, updateVolume( void ) );
+ if( !b_fsCreation )
+ {
+ controlLayout = new QGridLayout( this );
+
+ controlLayout->setSpacing( 0 );
+ controlLayout->setLayoutMargins( 7, 5, 7, 3, 6 );
+
+ controlLayout->addWidget( slider, 0, 1, 1, 16 );
+ controlLayout->addWidget( slowerButton, 0, 0 );
+ controlLayout->addWidget( fasterButton, 0, 17 );
+
+ controlLayout->addWidget( advControls, 1, 3, 2, 4, Qt::AlignBottom );
+ controlLayout->addWidget( discFrame, 1, 10, 2, 3, Qt::AlignBottom );
+ controlLayout->addWidget( telexFrame, 1, 10, 2, 4, Qt::AlignBottom );
+
+ controlLayout->addWidget( playButton, 2, 0, 2, 2 );
+ controlLayout->setColumnMinimumWidth( 2, 20 );
+ controlLayout->setColumnStretch( 2, 0 );
+
+ controlLayout->addLayout( controlButLayout, 3, 3, 1, 3 );
+ controlLayout->setColumnMinimumWidth( 7, 20 );
+ controlLayout->setColumnStretch( 7, 0 );
+ controlLayout->setColumnStretch( 8, 0 );
+ controlLayout->setColumnStretch( 9, 0 );
+
+ controlLayout->addWidget( fullscreenButton, 3, 10, Qt::AlignBottom );
+ controlLayout->addWidget( playlistButton, 3, 11, Qt::AlignBottom );
+ controlLayout->addWidget( extSettingsButton, 3, 12, Qt::AlignBottom );
+
+ controlLayout->setColumnStretch( 13, 0 );
+ controlLayout->setColumnMinimumWidth( 13, 24 );
+ controlLayout->setColumnStretch( 14, 5 );
+
+ controlLayout->addWidget( volMuteLabel, 3, 15, Qt::AlignBottom );
+ controlLayout->addWidget( volumeSlider, 2, 16, 2 , 2, Qt::AlignBottom );
+ }
+
updateInput();
}
@@ -899,8 +900,7 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i,
setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum );
QGridLayout *fsLayout = new QGridLayout( this );
- controlLayout->setSpacing( 0 );
- controlLayout->setLayoutMargins( 5, 1, 5, 1, 5 );
+ fsLayout->setLayoutMargins( 5, 1, 5, 1, 5 );
fsLayout->addWidget( slowerButton, 0, 0 );
slider->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum);
More information about the vlc-devel
mailing list