[vlc-commits] commit: Qt: fix main_interface sizing part 2 (Jean-Baptiste Kempf )

git at videolan.org git at videolan.org
Fri Mar 19 17:19:42 CET 2010


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Fri Mar 19 17:18:14 2010 +0100| [5b7b930e259cf2b4d701eb449320a6e3cf07915d] | committer: Jean-Baptiste Kempf 

Qt: fix main_interface sizing part 2

Close #3408 (blocker)
Close #3245 (blocker)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5b7b930e259cf2b4d701eb449320a6e3cf07915d
---

 modules/gui/qt4/components/interface_widgets.cpp |   13 +---------
 modules/gui/qt4/components/interface_widgets.hpp |    7 +----
 modules/gui/qt4/main_interface.cpp               |   26 ++++++++-------------
 modules/gui/qt4/main_interface.hpp               |    7 +++++-
 4 files changed, 20 insertions(+), 33 deletions(-)

diff --git a/modules/gui/qt4/components/interface_widgets.cpp b/modules/gui/qt4/components/interface_widgets.cpp
index dc405d6..c9c778c 100644
--- a/modules/gui/qt4/components/interface_widgets.cpp
+++ b/modules/gui/qt4/components/interface_widgets.cpp
@@ -176,11 +176,9 @@ void VideoWidget::SetSizing( unsigned int w, unsigned int h )
 {
     if (reparentable->windowState() & Qt::WindowFullScreen )
         return;
-    msg_Dbg( p_intf, "Video is resizing to: %i %i", w, h );
-    videoSize.setWidth( w );
-    videoSize.setHeight( h );
     if( !isVisible() ) show();
-    updateGeometry(); // Needed for deinterlace
+    resize( w, h );
+    emit sizeChanged( w, h );
     videoSync();
 }
 
@@ -266,17 +264,10 @@ void VideoWidget::release( void )
 
     delete reparentable;
     reparentable = NULL;
-    videoSize = QSize();
     updateGeometry();
     hide();
 }
 
-
-QSize VideoWidget::sizeHint() const
-{
-    return videoSize;
-}
-
 /**********************************************************************
  * Background Widget. Show a simple image background. Currently,
  * it's album art if present or cone.
diff --git a/modules/gui/qt4/components/interface_widgets.hpp b/modules/gui/qt4/components/interface_widgets.hpp
index 85cbe24..8848eca 100644
--- a/modules/gui/qt4/components/interface_widgets.hpp
+++ b/modules/gui/qt4/components/interface_widgets.hpp
@@ -58,13 +58,10 @@ public:
     VideoWidget( intf_thread_t * );
     virtual ~VideoWidget();
 
-    WId request( int *, int *,
-                 unsigned int *, unsigned int *, bool );
+    WId request( int *, int *, unsigned int *, unsigned int *, bool );
     void  release( void );
     int   control( void *, int, va_list );
 
-    virtual QSize sizeHint() const;
-
 protected:
     virtual QPaintEngine *paintEngine() const
     {
@@ -74,12 +71,12 @@ protected:
 private:
     intf_thread_t *p_intf;
 
-    QSize videoSize;
     QWidget *reparentable;
     QLayout *layout;
 
 signals:
     void keyPressed( QKeyEvent * );
+    void sizeChanged( int, int );
 
 public slots:
     void SetSizing( unsigned int, unsigned int );
diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp
index 150aff8..9609daa 100644
--- a/modules/gui/qt4/main_interface.cpp
+++ b/modules/gui/qt4/main_interface.cpp
@@ -61,7 +61,7 @@
 #include <vlc_keys.h>                       /* Wheel event */
 #include <vlc_vout_display.h>               /* vout_thread_t and VOUT_ events */
 
-// #define DEBUG_INTF
+ #define DEBUG_INTF
 
 /* Callback prototypes */
 static int PopupMenuCB( vlc_object_t *p_this, const char *psz_variable,
@@ -218,6 +218,8 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
     {
         CONNECT( this, askVideoToResize( unsigned int, unsigned int ),
                  videoWidget, SetSizing( unsigned int, unsigned int ) );
+        CONNECT( videoWidget, sizeChanged( int, int ),
+                 this, resizeStack( int,  int ) );
         CONNECT( this, askVideoSetFullScreen( bool ),
                  videoWidget, SetFullScreen( bool ) );
         CONNECT( videoWidget, keyPressed( QKeyEvent * ),
@@ -560,6 +562,7 @@ QSize MainInterface::sizeHint() const
  */
 void MainInterface::doComponentsUpdate()
 {
+#if 0
     if( isFullScreen() || isMaximized() ) return;
 
 //    msg_Warn( p_intf, "Updating the geometry" );
@@ -574,6 +577,7 @@ void MainInterface::doComponentsUpdate()
     //resize( sizeHint() );
 
     //adjustSize() ; /* This is not needed, but might help in the future */
+#endif
 }
 
 void MainInterface::debug()
@@ -589,16 +593,12 @@ void MainInterface::debug()
 
     msg_Dbg( p_intf, "size: %i - %i", size().height(), size().width() );
     msg_Dbg( p_intf, "sizeHint: %i - %i", sizeHint().height(), sizeHint().width() );
-    //msg_Dbg( p_intf, "maximumsize: %i - %i", maximumSize().height(), maximumSize().width() );
+    msg_Dbg( p_intf, "maximumsize: %i - %i", maximumSize().height(), maximumSize().width() );
+    msg_Dbg( p_intf, "minimumsize: %i - %i", minimumSize().height(), minimumSize().width() );
 
     msg_Dbg( p_intf, "Stack size: %i - %i", stackCentralW->size().height(), stackCentralW->size().width() );
-    msg_Dbg( p_intf, "Stack minimumSize(): %i - %i", stackCentralW->minimumHeight(), stackCentralW->minimumWidth() );
-    msg_Dbg( p_intf, "Central minimumsize: %i - %i", centralWidget()->minimumSize().height(), centralWidget()->minimumSize().width() );
+    msg_Dbg( p_intf, "Stack sizeHint: %i - %i", stackCentralW->sizeHint().height(), stackCentralW->sizeHint().width() );
     msg_Dbg( p_intf, "Central size: %i - %i", centralWidget()->size().height(), centralWidget()->size().width() );
-    msg_Dbg( p_intf, "Menu minimumsize: %i - %i", menuBar()->minimumSize().height(), menuBar()->minimumSize().width() );
-    msg_Dbg( p_intf, "Input size: %i - %i", inputC->size().height(), inputC->size().width() );
-    msg_Dbg( p_intf, "Status minimumsize: %i - %i", statusBar()->minimumSize().height(), statusBar()->minimumSize().width() );
-    msg_Dbg( p_intf, "minimumsize: %i - %i", minimumSize().height(), minimumSize().width() );
     msg_Dbg( p_intf, "bg Size: %i - %i", bgWidget->size().height(), bgWidget->size().width() );
 
     /*if( videoWidget && videoWidget->isVisible() )
@@ -717,10 +717,6 @@ void MainInterface::getVideoSlot( WId *p_id, int *pi_x, int *pi_y,
 
         /* Consider the video active now */
         showVideo();
-
-        stackCentralW->resize( *pi_width, *pi_height );
-
-        emit askUpdate();
     }
 }
 
@@ -749,8 +745,6 @@ void MainInterface::releaseVideoSlot( void )
 /* Asynchronous call from WindowControl function */
 int MainInterface::controlVideo( int i_query, va_list args )
 {
-    /* Debug to check if VOUT_WINDOW_SET_SIZE is called, because this is broken now */
-    msg_Warn( p_intf, "Control Video: %i", i_query );
     switch( i_query )
     {
     case VOUT_WINDOW_SET_SIZE:
@@ -758,8 +752,7 @@ int MainInterface::controlVideo( int i_query, va_list args )
         unsigned int i_width  = va_arg( args, unsigned int );
         unsigned int i_height = va_arg( args, unsigned int );
         emit askVideoToResize( i_width, i_height );
-        emit askUpdate();
-        return VLC_EGENERIC;
+        return VLC_SUCCESS;
     }
     case VOUT_WINDOW_SET_STATE:
     {
@@ -1283,6 +1276,7 @@ void MainInterface::toggleFullScreen( void )
     {
         showNormal();
         emit askUpdate(); // Needed if video was launched after the F11
+        //FIXMe
         emit fullscreenInterfaceToggled( false );
     }
     else
diff --git a/modules/gui/qt4/main_interface.hpp b/modules/gui/qt4/main_interface.hpp
index b2f561e..2fee517 100644
--- a/modules/gui/qt4/main_interface.hpp
+++ b/modules/gui/qt4/main_interface.hpp
@@ -34,6 +34,7 @@
 #endif
 
 #include <QSystemTrayIcon>
+#include <QStackedWidget>
 
 class QSettings;
 class QCloseEvent;
@@ -53,7 +54,6 @@ class SpeedControlWidget;
 class QVBoxLayout;
 class QMenu;
 class QSize;
-class QStackedWidget;
 
 enum {
     CONTROLS_VISIBLE  = 0x1,
@@ -211,6 +211,11 @@ private slots:
 
     void showBuffering( float );
 
+    void resizeStack( int w, int h ) {
+        resize( size() - stackCentralW->size() + QSize( w, h ) );
+        debug(); }
+
+
 signals:
     void askGetVideo( WId *p_id, int *pi_x, int *pi_y,
                       unsigned *pi_width, unsigned *pi_height );



More information about the vlc-commits mailing list