]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/main_interface.cpp
Qt: get Bookmark events from the core and update in Bookmark dialog.
[vlc] / modules / gui / qt4 / main_interface.cpp
index a153800d0ad4561bd887a8e708a6c7b5fb327571..5d9609094888e9cfff84cbca8ba2ca8f220122a3 100644 (file)
 #endif
 
 #include "qt4.hpp"
+
 #include "main_interface.hpp"
 #include "input_manager.hpp"
-#include "util/qvlcframe.hpp"
-#include "util/qvlcapp.hpp"
+
 #include "util/customwidgets.hpp"
-#include "dialogs_provider.hpp"
+#include "util/qt_dirs.hpp"
+
 #include "components/interface_widgets.hpp"
 #include "components/controller.hpp"
 #include "components/playlist/playlist.hpp"
-#include "dialogs/extended.hpp"
-#include "dialogs/playlist.hpp"
+
 #include "menus.hpp"
 #include "recents.hpp"
 
-#include <QMenuBar>
 #include <QCloseEvent>
-#include <QPushButton>
-#include <QStatusBar>
 #include <QKeyEvent>
+
 #include <QUrl>
-#include <QSystemTrayIcon>
 #include <QSize>
+#include <QDate>
+
 #include <QMenu>
+#include <QMenuBar>
+#include <QStatusBar>
 #include <QLabel>
-#include <QSlider>
-#include <QWidgetAction>
-#include <QToolBar>
 #include <QGroupBox>
-#include <QDate>
+#include <QPushButton>
 
 #include <assert.h>
-#include <vlc_keys.h>
+
+#include <vlc_keys.h> /* Wheel event */
 #include <vlc_vout.h>
 
 /* Callback prototypes */
@@ -138,10 +137,6 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
     /* StatusBar Creation */
     createStatusBar();
 
-    /* Recents menu updates */
-    CONNECT( RecentsMRL::getInstance( p_intf ), updated(),
-             this, updateRecentsMenu() );
-
     /********************
      * Input Manager    *
      ********************/
@@ -152,17 +147,14 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
      **************************/
     /* Connect the input manager to the GUI elements it manages */
 
-    /* Change the SpeedRate in the Status Bar */
-    CONNECT( THEMIM->getIM(), rateChanged( int ), this, setRate( int ) );
-
     /**
      * Connects on nameChanged()
      * Those connects are not merged because different options can trigger
      * them down.
      */
     /* Naming in the controller statusbar */
-    CONNECT( THEMIM->getIM(), nameChanged( QString ), this,
-             setName( QString ) );
+    CONNECT( THEMIM->getIM(), nameChanged( QString ),
+             this, setName( QString ) );
     /* and in the systray */
     if( sysTray )
     {
@@ -179,13 +171,11 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
     /**
      * CONNECTS on PLAY_STATUS
      **/
-    /* Status on the main controller */
-    CONNECT( THEMIM->getIM(), statusChanged( int ), this, setStatus( int ) );
-    /* and in the systray */
+    /* Status on the systray */
     if( sysTray )
     {
-        CONNECT( THEMIM->getIM(), statusChanged( int ), this,
-                 updateSystrayTooltipStatus( int ) );
+        CONNECT( THEMIM->getIM(), statusChanged( int ),
+                 this, updateSystrayTooltipStatus( int ) );
     }
 
     /* END CONNECTS ON IM */
@@ -292,14 +282,11 @@ inline void MainInterface::createStatusBar()
      *  Status Bar  *
      ****************/
     /* Widgets Creation*/
-    timeLabel = new TimeLabel( p_intf );
+    TimeLabel *timeLabel = new TimeLabel( p_intf );
     nameLabel = new QLabel;
     nameLabel->setTextInteractionFlags( Qt::TextSelectableByMouse
                                       | Qt::TextSelectableByKeyboard );
-    speedLabel = new SpeedLabel( p_intf, "1.00x" );
-    speedLabel->setToolTip(
-            qtr( "Current playback speed.\nRight click to adjust" ) );
-    speedLabel->setContextMenuPolicy ( Qt::CustomContextMenu );
+    SpeedLabel *speedLabel = new SpeedLabel( p_intf, "1.00x" );
 
     /* Styling those labels */
     timeLabel->setFrameStyle( QFrame::Sunken | QFrame::Panel );
@@ -316,11 +303,6 @@ inline void MainInterface::createStatusBar()
        - right-clicking and clicking just toggle between remaining and
          elapsed time.*/
     CONNECT( timeLabel, timeLabelDoubleClicked(), THEDP, gotoTimeDialog() );
-
-    /* Speed Label behaviour:
-       - right click gives the vertical speed slider */
-    CONNECT( speedLabel, customContextMenuRequested( QPoint ),
-             this, showSpeedMenu( QPoint ) );
 }
 
 inline void MainInterface::initSystray()
@@ -378,20 +360,12 @@ void MainInterface::handleMainUi( QSettings *settings )
                    settings->value( "adv-controls", false ).toBool(), this );
     CONNECT( controls, advancedControlsToggled( bool ),
              this, doComponentsUpdate() );
-    InputControlsWidget *inputC = new InputControlsWidget( p_intf, this );
+    inputC = new InputControlsWidget( p_intf, this );
 
     /* Add the controls Widget to the main Widget */
     mainLayout->insertWidget( 0, controls, 0, Qt::AlignBottom );
     mainLayout->insertWidget( 0, inputC, 0, Qt::AlignBottom );
 
-    /* Create the Speed Control Widget */
-    speedControl = new SpeedControlWidget( p_intf );
-    speedControlMenu = new QMenu( this );
-
-    QWidgetAction *widgetAction = new QWidgetAction( speedControl );
-    widgetAction->setDefaultWidget( speedControl );
-    speedControlMenu->addAction( widgetAction );
-
     /* Visualisation */
     /* Disabled for now, they SUCK */
     #if 0
@@ -590,15 +564,6 @@ void MainInterface::debug()
 #endif
 }
 
-/****************************************************************************
- * Small right-click menu for rate control
- ****************************************************************************/
-void MainInterface::showSpeedMenu( QPoint pos )
-{
-    speedControlMenu->exec( QCursor::pos() - pos
-                          + QPoint( 0, speedLabel->height() ) );
-}
-
 /****************************************************************************
  * Video Handling
  ****************************************************************************/
@@ -785,6 +750,7 @@ void MainInterface::toggleMinimalView()
     TOGGLEV( menuBar() );
     TOGGLEV( controls );
     TOGGLEV( statusBar() );
+    TOGGLEV( inputC );
     doComponentsUpdate();
 }
 
@@ -856,27 +822,6 @@ void MainInterface::setName( QString name )
     nameLabel->setToolTip( " " + name +" " );
 }
 
-void MainInterface::setStatus( int status )
-{
-    msg_Dbg( p_intf, "Updating the stream status: %i", status );
-
-    speedControl->setEnable( THEMIM->getIM()->hasInput() );
-
-    /* And in the systray for the menu */
-    if( sysTray )
-        QVLCMenu::updateSystrayMenu( this, p_intf );
-}
-
-void MainInterface::setRate( int rate )
-{
-    QString str;
-    str.setNum( ( 1000 / (double)rate ), 'f', 2 );
-    str.append( "x" );
-    speedLabel->setText( str );
-    speedLabel->setToolTip( str );
-    speedControl->updateControls( rate );
-}
-
 /*****************************************************************************
  * Systray Icon and Systray Menu
  *****************************************************************************/
@@ -988,6 +933,8 @@ void MainInterface::updateSystrayTooltipName( QString name )
                     QSystemTrayIcon::NoIcon, 3000 );
         }
     }
+
+    QVLCMenu::updateSystrayMenu( this, p_intf );
 }
 
 /**
@@ -1189,11 +1136,3 @@ static int IntfShowCB( vlc_object_t *p_this, const char *psz_variable,
      return VLC_SUCCESS;
 }
 
-/*****************************************************************************
- * updateRecentsMenu: event called by RecentsMRL
- *****************************************************************************/
-
-void MainInterface::updateRecentsMenu()
-{
-    QVLCMenu::updateRecents( p_intf );
-}