[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