[vlc-commits] Qt4: Add aspect ratio combobox to toolbar editor
Edward Wang
git at videolan.org
Wed Jan 4 02:24:48 CET 2012
vlc/vlc-1.2 | branch: master | Edward Wang <edward.c.wang at compdigitec.com> | Wed Dec 28 01:25:48 2011 +0100| [c0a36f95e7f1c1c26a20eb74d97d2d24c5946842] | committer: Jean-Baptiste Kempf
Qt4: Add aspect ratio combobox to toolbar editor
Close #4127
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
(cherry picked from commit c630050511ad95a7a7336b3529211c1162130126)
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.2.git/?a=commit;h=c0a36f95e7f1c1c26a20eb74d97d2d24c5946842
---
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 15ba032..afb89b7 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 b01882a..4d6f553 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 7a90179..545e322 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 c5d6b88..d56ee4a 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 5c5d6bf..c0c682f 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") );
+ break;
default:
msg_Warn( p_intf, "This should not happen %i", i );
break;
More information about the vlc-commits
mailing list