Commit b0090449 authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Fix the leak caused by the QGridLayout of the FS controller, since it isn't a...

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
parent 9b10c9a7
...@@ -249,8 +249,7 @@ VisualSelector::VisualSelector( intf_thread_t *_p_i ) : ...@@ -249,8 +249,7 @@ VisualSelector::VisualSelector( intf_thread_t *_p_i ) :
layout->addWidget( prevButton ); layout->addWidget( prevButton );
layout->addWidget( nextButton ); layout->addWidget( nextButton );
layout->addItem( new QSpacerItem( 40,20, layout->addStretch( 10 );
QSizePolicy::Expanding, QSizePolicy::Minimum ) );
layout->addWidget( new QLabel( qtr( "Current visualization" ) ) ); layout->addWidget( new QLabel( qtr( "Current visualization" ) ) );
current = new QLabel( qtr( "None" ) ); current = new QLabel( qtr( "None" ) );
...@@ -405,19 +404,10 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -405,19 +404,10 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
bool b_fsCreation) : bool b_fsCreation) :
QFrame( _p_mi ), p_intf( _p_i ) QFrame( _p_mi ), p_intf( _p_i )
{ {
controlLayout = new QGridLayout( ); setSizePolicy( QSizePolicy::Preferred , QSizePolicy::Maximum );
controlLayout->setSpacing( 0 );
controlLayout->setLayoutMargins( 7, 5, 7, 3, 6 );
if( !b_fsCreation )
setLayout( controlLayout );
setSizePolicy( QSizePolicy::Preferred , QSizePolicy::Maximum );
/** The main Slider **/ /** The main Slider **/
slider = new InputSlider( Qt::Horizontal, NULL ); slider = new InputSlider( Qt::Horizontal, NULL );
controlLayout->addWidget( slider, 0, 1, 1, 16 );
/* Update the position when the IM has changed */ /* Update the position when the IM has changed */
CONNECT( THEMIM->getIM(), positionUpdated( float, int, int ), CONNECT( THEMIM->getIM(), positionUpdated( float, int, int ),
slider, setPosition( float, int, int ) ); slider, setPosition( float, int, int ) );
...@@ -431,20 +421,17 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -431,20 +421,17 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
slowerButton->setMaximumSize( QSize( 26, 20 ) ); slowerButton->setMaximumSize( QSize( 26, 20 ) );
BUTTON_SET_ACT( slowerButton, "-", qtr( "Slower" ), slower() ); BUTTON_SET_ACT( slowerButton, "-", qtr( "Slower" ), slower() );
controlLayout->addWidget( slowerButton, 0, 0 );
fasterButton = new QToolButton; fasterButton = new QToolButton;
fasterButton->setAutoRaise( true ); fasterButton->setAutoRaise( true );
fasterButton->setMaximumSize( QSize( 26, 20 ) ); fasterButton->setMaximumSize( QSize( 26, 20 ) );
BUTTON_SET_ACT( fasterButton, "+", qtr( "Faster" ), faster() ); BUTTON_SET_ACT( fasterButton, "+", qtr( "Faster" ), faster() );
controlLayout->addWidget( fasterButton, 0, 17 );
/* advanced Controls handling */ /* advanced Controls handling */
b_advancedVisible = b_advControls; b_advancedVisible = b_advControls;
advControls = new AdvControlsWidget( p_intf ); advControls = new AdvControlsWidget( p_intf );
controlLayout->addWidget( advControls, 1, 3, 2, 4, Qt::AlignBottom );
if( !b_advancedVisible ) advControls->hide(); if( !b_advancedVisible ) advControls->hide();
/** Disc and Menus handling */ /** Disc and Menus handling */
...@@ -466,8 +453,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -466,8 +453,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
setupSmallButton( nextSectionButton ); setupSmallButton( nextSectionButton );
discLayout->addWidget( nextSectionButton ); discLayout->addWidget( nextSectionButton );
controlLayout->addWidget( discFrame, 1, 10, 2, 3, Qt::AlignBottom );
BUTTON_SET_IMG( prevSectionButton, "", previous.png, "" ); BUTTON_SET_IMG( prevSectionButton, "", previous.png, "" );
BUTTON_SET_IMG( nextSectionButton, "", next.png, "" ); BUTTON_SET_IMG( nextSectionButton, "", next.png, "" );
BUTTON_SET_IMG( menuButton, "", previous.png, qtr( "Menu" ) ); BUTTON_SET_IMG( menuButton, "", previous.png, qtr( "Menu" ) );
...@@ -512,8 +497,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -512,8 +497,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
telexPage->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum ); telexPage->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum );
telexLayout->addWidget( telexPage ); telexLayout->addWidget( telexPage );
if( !b_fsCreation )
controlLayout->addWidget( telexFrame, 1, 10, 2, 4, Qt::AlignBottom );
telexFrame->hide(); /* default hidden */ telexFrame->hide(); /* default hidden */
CONNECT( telexPage, valueChanged( int ), THEMIM->getIM(), CONNECT( telexPage, valueChanged( int ), THEMIM->getIM(),
...@@ -553,12 +536,8 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -553,12 +536,8 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
playButton->setMinimumSize( QSize( 36, 36 ) ); playButton->setMinimumSize( QSize( 36, 36 ) );
playButton->setIconSize( QSize( 30, 30 ) ); playButton->setIconSize( QSize( 30, 30 ) );
controlLayout->addWidget( playButton, 2, 0, 2, 2 );
controlLayout->setColumnMinimumWidth( 2, 20 ); /** Prev + Stop + Next Block **/
controlLayout->setColumnStretch( 2, 0 );
/** Prev + Stop + Next Block **/
controlButLayout = new QHBoxLayout; controlButLayout = new QHBoxLayout;
controlButLayout->setSpacing( 0 ); /* Don't remove that, will be useful */ controlButLayout->setSpacing( 0 ); /* Don't remove that, will be useful */
...@@ -584,8 +563,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -584,8 +563,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
controlButLayout->addWidget( nextButton ); controlButLayout->addWidget( nextButton );
/* Add this block to the main layout */ /* 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( playButton, "", play.png, qtr( "Play" ), play() );
BUTTON_SET_ACT_I( prevButton, "" , previous.png, BUTTON_SET_ACT_I( prevButton, "" , previous.png,
...@@ -593,11 +570,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -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( nextButton, "", next.png, qtr( "Next" ), next() );
BUTTON_SET_ACT_I( stopButton, "", stop.png, qtr( "Stop" ), stop() ); 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 * Other first Line buttons
*/ */
...@@ -605,12 +577,10 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -605,12 +577,10 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
fullscreenButton = new QPushButton( "F" ); fullscreenButton = new QPushButton( "F" );
BUTTON_SET_ACT( fullscreenButton, "F", qtr( "Fullscreen" ), fullscreen() ); BUTTON_SET_ACT( fullscreenButton, "F", qtr( "Fullscreen" ), fullscreen() );
setupSmallButton( fullscreenButton ); setupSmallButton( fullscreenButton );
controlLayout->addWidget( fullscreenButton, 3, 10, Qt::AlignBottom );
/** Playlist Button **/ /** Playlist Button **/
playlistButton = new QPushButton; playlistButton = new QPushButton;
setupSmallButton( playlistButton ); setupSmallButton( playlistButton );
controlLayout->addWidget( playlistButton, 3, 11, Qt::AlignBottom );
BUTTON_SET_IMG( playlistButton, "" , playlist.png, qtr( "Show playlist" ) ); BUTTON_SET_IMG( playlistButton, "" , playlist.png, qtr( "Show playlist" ) );
CONNECT( playlistButton, clicked(), _p_mi, togglePlaylist() ); CONNECT( playlistButton, clicked(), _p_mi, togglePlaylist() );
...@@ -619,11 +589,7 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -619,11 +589,7 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
BUTTON_SET_ACT( extSettingsButton, "Ex", qtr( "Extended settings" ), BUTTON_SET_ACT( extSettingsButton, "Ex", qtr( "Extended settings" ),
extSettings() ); extSettings() );
setupSmallButton( extSettingsButton ); setupSmallButton( extSettingsButton );
controlLayout->addWidget( extSettingsButton, 3, 12, Qt::AlignBottom );
controlLayout->setColumnStretch( 13, 0 );
controlLayout->setColumnMinimumWidth( 13, 24 );
controlLayout->setColumnStretch( 14, 5 );
/* Volume */ /* Volume */
hVolLabel = new VolumeClickHandler( p_intf, this ); hVolLabel = new VolumeClickHandler( p_intf, this );
...@@ -632,7 +598,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -632,7 +598,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
volMuteLabel->setPixmap( QPixmap( ":/pixmaps/volume-medium.png" ) ); volMuteLabel->setPixmap( QPixmap( ":/pixmaps/volume-medium.png" ) );
volMuteLabel->setToolTip( qtr( "Mute" ) ); volMuteLabel->setToolTip( qtr( "Mute" ) );
volMuteLabel->installEventFilter( hVolLabel ); volMuteLabel->installEventFilter( hVolLabel );
controlLayout->addWidget( volMuteLabel, 3, 15, Qt::AlignBottom );
if( b_shiny ) if( b_shiny )
{ {
...@@ -649,7 +614,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -649,7 +614,6 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
volumeSlider->setMaximumSize( QSize( 200, 40 ) ); volumeSlider->setMaximumSize( QSize( 200, 40 ) );
volumeSlider->setMinimumSize( QSize( 106, 30 ) ); volumeSlider->setMinimumSize( QSize( 106, 30 ) );
volumeSlider->setFocusPolicy( Qt::NoFocus ); volumeSlider->setFocusPolicy( Qt::NoFocus );
controlLayout->addWidget( volumeSlider, 2, 16, 2 , 2, Qt::AlignBottom );
/* Set the volume from the config */ /* Set the volume from the config */
volumeSlider->setValue( ( config_GetInt( p_intf, "volume" ) ) * volumeSlider->setValue( ( config_GetInt( p_intf, "volume" ) ) *
...@@ -662,6 +626,43 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i, ...@@ -662,6 +626,43 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
CONNECT( volumeSlider, valueChanged( int ), this, updateVolume( int ) ); CONNECT( volumeSlider, valueChanged( int ), this, updateVolume( int ) );
CONNECT( THEMIM, volumeChanged( void ), this, updateVolume( void ) ); 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(); updateInput();
} }
...@@ -899,8 +900,7 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i, ...@@ -899,8 +900,7 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i,
setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum );
QGridLayout *fsLayout = new QGridLayout( this ); QGridLayout *fsLayout = new QGridLayout( this );
controlLayout->setSpacing( 0 ); fsLayout->setLayoutMargins( 5, 1, 5, 1, 5 );
controlLayout->setLayoutMargins( 5, 1, 5, 1, 5 );
fsLayout->addWidget( slowerButton, 0, 0 ); fsLayout->addWidget( slowerButton, 0, 0 );
slider->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum); slider->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment