]> git.sesse.net Git - vlc/commitdiff
Fix teletex buttons
authorLukas Durfina <lukas.durfina@gmail.com>
Mon, 23 Jun 2008 12:08:49 +0000 (14:08 +0200)
committerJean-Paul Saman <jpsaman@videolan.org>
Mon, 23 Jun 2008 15:58:37 +0000 (17:58 +0200)
uninitialized variable and synchro with fs controller

Signed-off-by: Jean-Paul Saman <jpsaman@videolan.org>
modules/gui/qt4/components/interface_widgets.cpp
modules/gui/qt4/components/interface_widgets.hpp
modules/gui/qt4/input_manager.cpp
modules/gui/qt4/input_manager.hpp

index 43b88e1ff247c29c32726075e85b455e40334a43..5727e331d934515c13f42c4c9702f2cb474c0f0f 100644 (file)
@@ -485,7 +485,7 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
     telexLayout->setSpacing( 0 );
     telexLayout->setMargin( 0 );
 
-    QPushButton  *telexOn = new QPushButton;
+    telexOn = new QPushButton;
     setupSmallButton( telexOn );
     telexLayout->addWidget( telexOn );
 
@@ -503,23 +503,32 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
     telexPage->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum );
     telexLayout->addWidget( telexPage );
 
-    controlLayout->addWidget( telexFrame, 1, 10, 2, 4, Qt::AlignBottom );
+    if( !b_fsCreation )
+        controlLayout->addWidget( telexFrame, 1, 10, 2, 4, Qt::AlignBottom );
     telexFrame->hide(); /* default hidden */
 
     CONNECT( telexPage, valueChanged( int ), THEMIM->getIM(),
              telexGotoPage( int ) );
+    CONNECT( THEMIM->getIM(), setNewTelexPage( int ),
+              telexPage, setValue( int ) );
+
+    BUTTON_SET_IMG( telexOn, "", tv.png, qtr( "Teletext on" ) );
 
-    BUTTON_SET_ACT_I( telexOn, "", tv.png, qtr( "Teletext on" ),
-                      toggleTeletext() );
+    CONNECT( telexOn, clicked(), THEMIM->getIM(),
+             telexToggleButtons() );
     CONNECT( telexOn, clicked( bool ), THEMIM->getIM(),
              telexToggle( bool ) );
+    CONNECT( THEMIM->getIM(), toggleTelexButtons(),
+              this, toggleTeletext() );
+    b_telexEnabled = false;
     telexTransparent->setEnabled( false );
     telexPage->setEnabled( false );
 
-    BUTTON_SET_ACT_I( telexTransparent, "", tvtelx.png, qtr( "Teletext" ),
-                      toggleTeletextTransparency() );
+    BUTTON_SET_IMG( telexTransparent, "", tvtelx.png, qtr( "Teletext" ) );
     CONNECT( telexTransparent, clicked( bool ),
              THEMIM->getIM(), telexSetTransparency() );
+    CONNECT( THEMIM->getIM(), toggleTelexTransparency(),
+              this, toggleTeletextTransparency() );
     CONNECT( THEMIM->getIM(), teletextEnabled( bool ),
              telexFrame, setVisible( bool ) );
 
@@ -1146,9 +1155,11 @@ static int regMouseMoveCallback( vlc_object_t *vlc_object, const char *variable,
         var_DelCallback( p_vout, "mouse-moved",
                         showFullscreenControllCallback, (void *) p_fs );
         b_registered = false;
-        p_fs->hide();
     }
 
+    if ( !var_GetBool( p_vout, "fullscreen" ) )
+        p_fs->hide();
+
     return VLC_SUCCESS;
 }
 
index ed629acf58351239424afccb587c7914ffaf6fa6..35e3c9adfaa45e06a99de0d23ba1e108ee59d13e 100644 (file)
@@ -203,7 +203,7 @@ protected:
     InputSlider         *slider;
     QPushButton         *prevSectionButton, *nextSectionButton, *menuButton;
     QPushButton         *playButton, *fullscreenButton, *extSettingsButton;
-    QPushButton         *telexTransparent;
+    QPushButton         *telexTransparent, *telexOn;
     QSpinBox            *telexPage;
     QToolButton         *slowerButton, *fasterButton;
     QHBoxLayout         *controlButLayout;
index cb655df00e5a08e12f756bdbed5bf16aadb72b61..d53ccb5180774e7d4ed8cd69fb92928a15584fbe 100644 (file)
@@ -416,6 +416,7 @@ void InputManager::telexGotoPage( int page )
             vlc_object_release( p_vbi );
         }
     }
+    emit setNewTelexPage( page );
 }
 
 void InputManager::telexToggle( bool b_enabled )
@@ -426,19 +427,24 @@ void InputManager::telexToggle( bool b_enabled )
     {
         vlc_value_t val;
         vlc_object_t *p_vbi;
+        var_Change( p_input, "spu-es", VLC_VAR_CHOICESCOUNT, &val, NULL );
+        b_enabled = (val.i_int > 0);
         p_vbi = (vlc_object_t *) vlc_object_find_name( p_input,
                     "zvbi", FIND_ANYWHERE );
         if( p_vbi )
         {
             i_page = var_GetInteger( p_vbi, "vbi-page" );
             vlc_object_release( p_vbi );
+            i_page = b_enabled ? i_page : 0;
+            telexGotoPage( i_page );
         }
-        var_Change( p_input, "spu-es", VLC_VAR_CHOICESCOUNT, &val, NULL );
-        b_enabled = (val.i_int > 0);
     }
     emit teletextEnabled( b_enabled );
-    i_page = b_enabled ? i_page : 0;
-    telexGotoPage( i_page );
+}
+
+void InputManager::telexToggleButtons()
+{
+    emit toggleTelexButtons();
 }
 
 void InputManager::telexSetTransparency()
@@ -455,6 +461,7 @@ void InputManager::telexSetTransparency()
             vlc_object_release( p_vbi );
         }
     }
+    emit toggleTelexTransparency();
 }
 
 void InputManager::slower()
index 1cf835b0d847e53e455a276b8035c767d37cef71..ce9e352539a69e8aeef0bbe05244177f4c176659 100644 (file)
@@ -103,6 +103,7 @@ public slots:
     void sectionMenu();
     void telexGotoPage( int ); ///< Goto teletext page
     void telexToggle( bool );  ///< Enable disable teletext buttons
+    void telexToggleButtons(); ///< Toggle buttons after click
     void telexSetTransparency(); ///< Set transparency on teletext background
 
 signals:
@@ -119,6 +120,9 @@ signals:
     void inputUnset();
     /// Teletext
     void teletextEnabled( bool );
+    void toggleTelexButtons();
+    void toggleTelexTransparency();
+    void setNewTelexPage( int );
 };
 
 class MainInputManager : public QObject