]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/interface_widgets.cpp
Qt: hide record button when the record access-filter is not present
[vlc] / modules / gui / qt4 / components / interface_widgets.cpp
index 51c26f6340b2d067b9ef0480bc1765873e3839b5..1f36d9080c0925ff71afe09a7c71e50c5f1c0e28 100644 (file)
@@ -336,6 +336,7 @@ AdvControlsWidget::AdvControlsWidget( intf_thread_t *_p_i, bool b_fsCreation = f
     BUTTON_SET_ACT( frameButton, "Fr", qtr( "Frame by frame" ), frame() );
 #endif
 
+    /* Record Button */
     recordButton = new QPushButton;
     setupSmallButton( recordButton );
     advLayout->addWidget( recordButton );
@@ -360,7 +361,15 @@ void AdvControlsWidget::enableInput( bool enable )
     {
         input_item_t *p_item = input_GetItem( THEMIM->getInput() );
         i_input_id = p_item->i_id;
+
+        if( var_Type( THEMIM->getInput(), "record-toggle" ) == VLC_VAR_VOID )
+            recordButton->setVisible( true );
+        else
+            recordButton->setVisible( false );
     }
+    else
+        recordButton->setVisible( false );
+
     ABButton->setEnabled( enable );
     recordButton->setEnabled( enable );
 
@@ -440,7 +449,29 @@ void AdvControlsWidget::AtoBLoop( float f_pos, int i_time, int i_length )
 }
 
 /* FIXME Record function */
-void AdvControlsWidget::record(){}
+void AdvControlsWidget::record()
+{
+    input_thread_t *p_input = THEMIM->getInput();
+    if( p_input )
+    {
+        /* This method won't work fine if the stream can't be cut anywhere */
+        if( var_Type( p_input, "record-toggle" ) == VLC_VAR_VOID )
+            var_TriggerCallback( p_input, "record-toggle" );
+#if 0
+        else
+        {
+            /* 'record' access-filter is not loaded, we open Save dialog */
+            input_item_t *p_item = input_GetItem( p_input );
+            if( !p_item )
+                return;
+
+            char *psz = input_item_GetURI( p_item );
+            if( psz )
+                THEDP->streamingDialog( NULL, psz, true );
+        }
+#endif
+    }
+}
 
 #if 0
 //FIXME Frame by frame function
@@ -980,8 +1011,8 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i,
 
     fsLayout->addWidget( discFrame, 1, 3 );
     fsLayout->addWidget( telexFrame, 1, 4 );
-    fsLayout->addWidget( advControls, 1, 5, Qt::AlignVCenter );
-    fsLayout->addWidget( fullscreenButton, 1, 6 );
+    fsLayout->addWidget( fullscreenButton, 1, 5 );
+    fsLayout->addWidget( advControls, 1, 6, Qt::AlignVCenter );
 
     fsLayout->addWidget( volMuteLabel, 1, 7 );
     fsLayout->addWidget( volumeSlider, 1, 8, 1, 2 );
@@ -1012,6 +1043,8 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i,
     show();
 #endif
 
+    fullscreenButton->setIcon( QIcon( ":/defullscreen" ) );
+
     vlc_mutex_init_recursive( &lock );
 }
 
@@ -1130,7 +1163,7 @@ void FullscreenControllerWidget::customEvent( QEvent *event )
             b_fs = b_fullscreen;
             vlc_mutex_unlock( &lock );
             if( b_fs )
-#if WIN32TRICK
+#ifdef WIN32TRICK
                 if( b_fscHidden )
 #else
                 if( isHidden() )