Commit c0a36f95 authored by Edward Wang's avatar Edward Wang Committed by Jean-Baptiste Kempf

Qt4: Add aspect ratio combobox to toolbar editor

Close #4127
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
(cherry picked from commit c630050511ad95a7a7336b3529211c1162130126)
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 79a346b0
...@@ -465,6 +465,9 @@ QWidget *AbstractController::createWidget( buttonType_e button, int options ) ...@@ -465,6 +465,9 @@ QWidget *AbstractController::createWidget( buttonType_e button, int options )
CONNECT_MAP_SET( play, PLAY_ACTION ); CONNECT_MAP_SET( play, PLAY_ACTION );
} }
break; break;
case ASPECT_RATIO_COMBOBOX:
widget = new AspectRatioComboBox( p_intf );
break;
default: default:
msg_Warn( p_intf, "This should not happen %i", button ); msg_Warn( p_intf, "This should not happen %i", button );
break; break;
......
...@@ -99,6 +99,7 @@ typedef enum buttonType_e ...@@ -99,6 +99,7 @@ typedef enum buttonType_e
TELETEXT_BUTTONS, TELETEXT_BUTTONS,
ADVANCED_CONTROLLER, ADVANCED_CONTROLLER,
PLAYBACK_BUTTONS, PLAYBACK_BUTTONS,
ASPECT_RATIO_COMBOBOX,
SPECIAL_MAX, SPECIAL_MAX,
WIDGET_SPACER = 0x40, WIDGET_SPACER = 0x40,
......
...@@ -267,3 +267,26 @@ void LoopButton::updateButtonIcons( int value ) ...@@ -267,3 +267,26 @@ void LoopButton::updateButtonIcons( int value )
setIcon( ( value == REPEAT_ONE ) ? QIcon( ":/buttons/playlist/repeat_one" ) setIcon( ( value == REPEAT_ONE ) ? QIcon( ":/buttons/playlist/repeat_one" )
: QIcon( ":/buttons/playlist/repeat_all" ) ); : 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() ) );
}
...@@ -29,9 +29,12 @@ ...@@ -29,9 +29,12 @@
#endif #endif
#include "qt4.hpp" #include "qt4.hpp"
#include "input_manager.hpp"
#include <vlc_vout.h> /* vout_thread_t for aspect ratio combobox */
#include <QWidget> #include <QWidget>
#include <QToolButton> #include <QToolButton>
#include <QComboBox>
class QLabel; class QLabel;
class QFrame; class QFrame;
...@@ -67,6 +70,27 @@ private slots: ...@@ -67,6 +70,27 @@ private slots:
void updateButtonIcons( bool, bool ); 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 #define VOLUME_MAX 200
class SoundWidget : public QWidget class SoundWidget : public QWidget
{ {
......
...@@ -35,6 +35,10 @@ ...@@ -35,6 +35,10 @@
#include "util/buttons/BrowseButton.hpp" #include "util/buttons/BrowseButton.hpp"
#include "util/buttons/RoundButton.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 <QScrollArea>
#include <QGroupBox> #include <QGroupBox>
#include <QLabel> #include <QLabel>
...@@ -441,6 +445,10 @@ WidgetListing::WidgetListing( intf_thread_t *p_intf, QWidget *_parent ) ...@@ -441,6 +445,10 @@ WidgetListing::WidgetListing( intf_thread_t *p_intf, QWidget *_parent )
} }
widgetItem->setText( qtr("Playback Buttons") ); widgetItem->setText( qtr("Playback Buttons") );
break; break;
case ASPECT_RATIO_COMBOBOX:
widget = new AspectRatioComboBox( p_intf );
widgetItem->setText( qtr("Aspect ratio") );
break;
default: default:
msg_Warn( p_intf, "This should not happen %i", i ); msg_Warn( p_intf, "This should not happen %i", i );
break; break;
......
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