]> git.sesse.net Git - vlc/commitdiff
Qt: subclass QStackedWidget for custom minimumSizeHint()
authorJakob Leben <jleben@videolan.org>
Sun, 28 Mar 2010 17:18:43 +0000 (19:18 +0200)
committerJakob Leben <jleben@videolan.org>
Sun, 28 Mar 2010 17:33:02 +0000 (19:33 +0200)
modules/gui/qt4/main_interface.cpp
modules/gui/qt4/util/customwidgets.hpp

index 5b1fa63f85e400c73511338c0d00773d6ff29dec..ba45a68265e28713e9708d51f3aff49e01911d05 100644 (file)
@@ -34,7 +34,7 @@
 #include "actions_manager.hpp"                  // killInstance
 #include "extensions_manager.hpp"               // killInstance
 
-#include "util/customwidgets.hpp"               // qtEventToVLCKey
+#include "util/customwidgets.hpp"               // qtEventToVLCKey, QVLCStackedWidget
 #include "util/qt_dirs.hpp"                     // toNativeSeparators
 
 #include "components/interface_widgets.hpp"     // bgWidget, videoWidget
@@ -361,7 +361,7 @@ void MainInterface::createMainWidget( QSettings *settings )
     mainLayout->setSpacing( 0 ); mainLayout->setMargin( 0 );
 
     /* */
-    stackCentralW = new QStackedWidget( main );
+    stackCentralW = new QVLCStackedWidget( main );
 
     /* Bg Cone */
     bgWidget = new BackgroundWidget( p_intf );
@@ -690,15 +690,11 @@ void MainInterface::togglePlaylist()
         /* Playlist is not visible, show it */
         if( stackCentralW->currentWidget() != playlistWidget )
         {
-            playlistWidget->forceShow();
             showTab( playlistWidget );
         }
         else /* Hide it! */
         {
             restoreStackOldWidget();
-            stackCentralW->updateGeometry();
-            // HACK: So it doesn't limit the stackWidget minimumSize
-            playlistWidget->forceHide();
         }
         playlistVisible = ( stackCentralW->currentWidget() == playlistWidget );
     }
index 266d954493855a0864b83517d4c7baad0ab21b14..c903ba74266cd1db289051ad09336cc7b70eaa6c 100644 (file)
@@ -30,6 +30,7 @@
 #include <QLineEdit>
 #include <QPushButton>
 #include <QLabel>
+#include <QStackedWidget>
 
 /**
   This class provides a QLineEdit which contains a greyed-out hinting
@@ -103,6 +104,16 @@ private:
     Qt::TextElideMode elideMode;
 };
 
+class QVLCStackedWidget : public QStackedWidget
+{
+public:
+    QVLCStackedWidget( QWidget *parent ) : QStackedWidget( parent ) { }
+    QSize minimumSizeHint () const
+    {
+        return currentWidget() ? currentWidget()->minimumSizeHint() : QSize();
+    }
+};
+
 /* VLC Key/Wheel hotkeys interactions */
 
 class QKeyEvent;