vlc | branch: master | Edward Wang <[email protected]> | Wed Dec 28 01:25:48 2011 +0100| [c630050511ad95a7a7336b3529211c1162130126] | committer: Jean-Baptiste Kempf
Qt4: Add aspect ratio combobox to toolbar editor Close #4127 Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c630050511ad95a7a7336b3529211c1162130126 --- modules/gui/qt4/components/controller.cpp | 3 ++ modules/gui/qt4/components/controller.hpp | 1 + modules/gui/qt4/components/controller_widget.cpp | 23 +++++++++++++++++++++ modules/gui/qt4/components/controller_widget.hpp | 24 ++++++++++++++++++++++ modules/gui/qt4/dialogs/toolbar.cpp | 8 +++++++ 5 files changed, 59 insertions(+), 0 deletions(-) diff --git a/modules/gui/qt4/components/controller.cpp b/modules/gui/qt4/components/controller.cpp index 3d1bd78..22d3792 100644 --- a/modules/gui/qt4/components/controller.cpp +++ b/modules/gui/qt4/components/controller.cpp @@ -465,6 +465,9 @@ QWidget *AbstractController::createWidget( buttonType_e button, int options ) CONNECT_MAP_SET( play, PLAY_ACTION ); } break; + case ASPECT_RATIO_COMBOBOX: + widget = new AspectRatioComboBox( p_intf ); + break; default: msg_Warn( p_intf, "This should not happen %i", button ); break; diff --git a/modules/gui/qt4/components/controller.hpp b/modules/gui/qt4/components/controller.hpp index d3ba78b..96d53c0 100644 --- a/modules/gui/qt4/components/controller.hpp +++ b/modules/gui/qt4/components/controller.hpp @@ -99,6 +99,7 @@ typedef enum buttonType_e TELETEXT_BUTTONS, ADVANCED_CONTROLLER, PLAYBACK_BUTTONS, + ASPECT_RATIO_COMBOBOX, SPECIAL_MAX, WIDGET_SPACER = 0x40, diff --git a/modules/gui/qt4/components/controller_widget.cpp b/modules/gui/qt4/components/controller_widget.cpp index acd8b7f..370ef3f 100644 --- a/modules/gui/qt4/components/controller_widget.cpp +++ b/modules/gui/qt4/components/controller_widget.cpp @@ -267,3 +267,26 @@ void LoopButton::updateButtonIcons( int value ) setIcon( ( value == REPEAT_ONE ) ? QIcon( ":/buttons/playlist/repeat_one" ) : QIcon( ":/buttons/playlist/repeat_all" ) ); } + +void AspectRatioComboBox::updateRatios() { + /* Clear the list before updating */ + this->clear(); + vlc_value_t val_list, text_list; + vout_thread_t* p_vout = THEMIM->getVout(); + /* Disable if there is no vout */ + if( p_vout == NULL ) { + addItem("Aspect Ratio"); + setDisabled( true ); + return; + } + var_Change( p_vout, "aspect-ratio", VLC_VAR_GETLIST, &val_list, &text_list ); + for( int i = 0; i < val_list.p_list->i_count; i++ ) + addItem( QString( text_list.p_list->p_values[i].psz_string ), QString( val_list.p_list->p_values[i].psz_string ) ); + setEnabled( true ); + var_FreeList( &val_list, &text_list ); +} + +void AspectRatioComboBox::updateAspectRatio( int x ) { + vout_thread_t* p_vout = THEMIM->getVout(); + if( p_vout && x >= 0 ) var_SetString( p_vout, "aspect-ratio", qtu( itemData(x).toString() ) ); +} diff --git a/modules/gui/qt4/components/controller_widget.hpp b/modules/gui/qt4/components/controller_widget.hpp index 9b5af88..04663f5 100644 --- a/modules/gui/qt4/components/controller_widget.hpp +++ b/modules/gui/qt4/components/controller_widget.hpp @@ -29,9 +29,12 @@ #endif #include "qt4.hpp" +#include "input_manager.hpp" +#include <vlc_vout.h> /* vout_thread_t for aspect ratio combobox */ #include <QWidget> #include <QToolButton> +#include <QComboBox> class QLabel; class QFrame; @@ -67,6 +70,27 @@ private slots: void updateButtonIcons( bool, bool ); }; +class AspectRatioComboBox : public QComboBox +{ + Q_OBJECT + public: + AspectRatioComboBox( intf_thread_t* _p_intf ) { + p_intf = _p_intf; + CONNECT( THEMIM->getIM(), voutChanged( bool ), + this, updateRatios() ); + CONNECT( this, currentIndexChanged( int ), + this, updateAspectRatio( int ) ); + this->updateRatios(); + } + + public slots: + void updateRatios(); + void updateAspectRatio( int ); + + private: + intf_thread_t* p_intf; +}; + #define VOLUME_MAX 200 class SoundWidget : public QWidget { diff --git a/modules/gui/qt4/dialogs/toolbar.cpp b/modules/gui/qt4/dialogs/toolbar.cpp index 8f6bb09..43ebf09 100644 --- a/modules/gui/qt4/dialogs/toolbar.cpp +++ b/modules/gui/qt4/dialogs/toolbar.cpp @@ -35,6 +35,10 @@ #include "util/buttons/BrowseButton.hpp" #include "util/buttons/RoundButton.hpp" +#include "qt4.hpp" +#include "input_manager.hpp" +#include <vlc_vout.h> /* vout_thread_t for aspect ratio combobox */ + #include <QScrollArea> #include <QGroupBox> #include <QLabel> @@ -441,6 +445,10 @@ WidgetListing::WidgetListing( intf_thread_t *p_intf, QWidget *_parent ) } widgetItem->setText( qtr("Playback Buttons") ); break; + case ASPECT_RATIO_COMBOBOX: + widget = new AspectRatioComboBox( p_intf ); + widgetItem->setText( qtr("Aspect ratio selector") ); + break; default: msg_Warn( p_intf, "This should not happen %i", i ); break; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
