[vlc-devel] commit: (qt4) Define reverse playback direction button in qt4 interface ( not visible yet). (Jean-Paul Saman )
git version control
git at videolan.org
Thu Nov 20 17:57:37 CET 2008
vlc | branch: 0.9-bugfix | Jean-Paul Saman <jean-paul.saman at m2x.nl> | Thu Nov 20 17:56:43 2008 +0100| [552963d528623bd92fd68220fdb8b105ea5f69c2] | committer: Jean-Paul Saman
(qt4) Define reverse playback direction button in qt4 interface (not visible yet).
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=552963d528623bd92fd68220fdb8b105ea5f69c2
---
modules/gui/qt4/components/interface_widgets.cpp | 24 ++++++++++++++++++++-
modules/gui/qt4/components/interface_widgets.hpp | 3 +-
modules/gui/qt4/input_manager.cpp | 14 ++++++++++++
modules/gui/qt4/input_manager.hpp | 2 +
4 files changed, 40 insertions(+), 3 deletions(-)
diff --git a/modules/gui/qt4/components/interface_widgets.cpp b/modules/gui/qt4/components/interface_widgets.cpp
index 6fca0ca..c14c419 100644
--- a/modules/gui/qt4/components/interface_widgets.cpp
+++ b/modules/gui/qt4/components/interface_widgets.cpp
@@ -57,6 +57,7 @@
#include <math.h>
#define I_PLAY_TOOLTIP N_("Play\nIf the playlist is empty, open a media")
+#define I_REVERSE_TOOLTIP N_("Reverse\nRevert playback direction")
/**********************************************************************
* Video Widget. A simple frame on which video is drawn
@@ -641,6 +642,14 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
sizePolicy.setHorizontalStretch( 0 );
sizePolicy.setVerticalStretch( 0 );
+ /* Reverse */
+ reverseButton = new QPushButton;
+ reverseButton->setSizePolicy( sizePolicy );
+ reverseButton->setMaximumSize( QSize( 32, 32 ) );
+ reverseButton->setMinimumSize( QSize( 32, 32 ) );
+ reverseButton->setIconSize( QSize( 26, 26 ) );
+ reverseButton->setFocusPolicy( Qt::NoFocus );
+
/* Play */
playButton = new QPushButton;
playButton->setSizePolicy( sizePolicy );
@@ -676,6 +685,7 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
/* Add this block to the main layout */
+ BUTTON_SET_ACT_I( reverseButton, "", reverse_b, qtr( I_REVERSE_TOOLTIP ), reverse() );
BUTTON_SET_ACT_I( playButton, "", play_b, qtr( I_PLAY_TOOLTIP ), play() );
BUTTON_SET_ACT_I( prevButton, "" , previous_b,
qtr( "Previous media in the playlist" ), prev() );
@@ -758,6 +768,10 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
controlLayout->addWidget( discFrame, 1, 8, 2, 3, Qt::AlignBottom );
controlLayout->addWidget( telexFrame, 1, 8, 2, 5, Qt::AlignBottom );
+ controlLayout->addWidget( reverseButton, 2, 0, 2, 2, Qt::AlignBottom );
+ controlLayout->setColumnMinimumWidth( 2, 10 );
+ controlLayout->setColumnStretch( 2, 0 );
+
controlLayout->addWidget( playButton, 2, 0, 2, 2, Qt::AlignBottom );
controlLayout->setColumnMinimumWidth( 2, 10 );
controlLayout->setColumnStretch( 2, 0 );
@@ -840,6 +854,11 @@ void ControlsWidget::stop()
THEMIM->stop();
}
+void ControlsWidget::reverse()
+{
+ THEMIM->reverse();
+}
+
void ControlsWidget::play()
{
if( THEPL->current.i_size == 0 )
@@ -1045,8 +1064,9 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i,
fsLayout->addWidget( fasterButton, 0, 12 );
/* Second line */
- fsLayout->addWidget( playButton, 1, 0, 1, 2 );
- fsLayout->addLayout( controlButLayout, 1, 2 );
+ fsLayout->addWidget( reverseButton, 1, 0, 1, 2);
+ fsLayout->addWidget( playButton, 1, 0, 1, 3 );
+ fsLayout->addLayout( controlButLayout, 1, 3 );
fsLayout->addWidget( discFrame, 1, 3 );
fsLayout->addWidget( telexFrame, 1, 4 );
diff --git a/modules/gui/qt4/components/interface_widgets.hpp b/modules/gui/qt4/components/interface_widgets.hpp
index 5bfcd1f..25c23ba 100644
--- a/modules/gui/qt4/components/interface_widgets.hpp
+++ b/modules/gui/qt4/components/interface_widgets.hpp
@@ -186,7 +186,7 @@ protected:
QGridLayout *controlLayout;
InputSlider *slider;
QPushButton *prevSectionButton, *nextSectionButton, *menuButton;
- QPushButton *playButton, *fullscreenButton, *extSettingsButton;
+ QPushButton *playButton, *reverseButton, *fullscreenButton, *extSettingsButton;
QPushButton *telexTransparent, *telexOn;
QSpinBox *telexPage;
QToolButton *slowerButton, *fasterButton;
@@ -200,6 +200,7 @@ protected:
bool b_telexTransparent;
bool b_telexEnabled;
protected slots:
+ void reverse();
void play();
void stop();
void prev();
diff --git a/modules/gui/qt4/input_manager.cpp b/modules/gui/qt4/input_manager.cpp
index 62d91be..46d87b7 100644
--- a/modules/gui/qt4/input_manager.cpp
+++ b/modules/gui/qt4/input_manager.cpp
@@ -543,6 +543,15 @@ void InputManager::telexSetTransparency()
emit toggleTelexTransparency();
}
+void InputManager::reverse()
+{
+ if( hasInput() )
+ {
+ int i_rate = var_GetInteger( p_input, "rate" );
+ var_SetInteger( p_input, "rate", -i_rate );
+ }
+}
+
void InputManager::slower()
{
if( hasInput() )
@@ -675,6 +684,11 @@ void MainInputManager::customEvent( QEvent *event )
}
/* Playlist Control functions */
+void MainInputManager::reverse()
+{
+ getIM()->reverse();
+}
+
void MainInputManager::stop()
{
playlist_Stop( THEPL );
diff --git a/modules/gui/qt4/input_manager.hpp b/modules/gui/qt4/input_manager.hpp
index 0d0798d..d267816 100644
--- a/modules/gui/qt4/input_manager.hpp
+++ b/modules/gui/qt4/input_manager.hpp
@@ -103,6 +103,7 @@ public slots:
void setInput( input_thread_t * ); ///< Our controlled input changed
void sliderUpdate( float ); ///< User dragged the slider. We get new pos
void togglePlayPause();
+ void reverse();
void slower();
void faster();
void normalRate();
@@ -167,6 +168,7 @@ private:
public slots:
bool teletextState();
void togglePlayPause();
+ void reverse();
void stop();
void next();
void prev();
More information about the vlc-devel
mailing list