vlc | branch: master | Thomas Guillem <[email protected]> | Mon May 29 11:55:23 2017 +0200| [760de52972c5fb07c05d1e934a883020f1200d16] | committer: Thomas Guillem
qt: save/retrieve video filters to/from the playlist > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=760de52972c5fb07c05d1e934a883020f1200d16 --- modules/gui/qt/components/extended_panels.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/modules/gui/qt/components/extended_panels.cpp b/modules/gui/qt/components/extended_panels.cpp index d4df20fc6d..e3471057ec 100644 --- a/modules/gui/qt/components/extended_panels.cpp +++ b/modules/gui/qt/components/extended_panels.cpp @@ -104,13 +104,18 @@ static QString OptionFromWidgetName( QObject *obj ) static inline void setup_vfilter( intf_thread_t *p_intf, const char* psz_name, QWidget *widget ) { - vlc_object_t *p_obj = ( vlc_object_t * ) - vlc_object_find_name( p_intf->obj.libvlc, psz_name ); + const char *psz_filter_type = GetVFilterType( p_intf, psz_name ); + if( psz_filter_type == NULL ) + return; + + char *psz_filters = var_InheritString( THEPL, psz_filter_type ); + if( psz_filters == NULL ) + return; + QCheckBox *checkbox = qobject_cast<QCheckBox*>( widget ); QGroupBox *groupbox = qobject_cast<QGroupBox*>( widget ); - if( p_obj ) + if( filterIsPresent( qfu(psz_filters), qfu(psz_name) ) ) { - vlc_object_release( p_obj ); \ if( checkbox ) checkbox->setChecked( true ); \ else if (groupbox) groupbox->setChecked( true ); \ } @@ -119,6 +124,7 @@ static inline void setup_vfilter( intf_thread_t *p_intf, const char* psz_name, Q if( checkbox ) checkbox->setChecked( false ); else if (groupbox) groupbox->setChecked( false ); } + free( psz_filters ); } #define SETUP_VFILTER( widget ) \ @@ -320,13 +326,10 @@ static void ChangeVFiltersString( struct intf_thread_t *p_intf, const char *psz_ /* Vout is not kept, so put that in the config */ config_PutPsz( p_intf, psz_filter_type, qtu( result ) ); - /* Try to set on the fly */ - if( !strcmp( psz_filter_type, "video-splitter" ) ) - { - playlist_t *p_playlist = THEPL; - var_SetString( p_playlist, psz_filter_type, qtu( result ) ); - } - else + var_SetString( THEPL, psz_filter_type, qtu( result ) ); + + /* Try to set non splitter filters on the fly */ + if( strcmp( psz_filter_type, "video-splitter" ) ) { vout_thread_t *p_vout = THEMIM->getVout(); if( p_vout ) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
