]> git.sesse.net Git - vlc/commitdiff
Qt: playlist: pad zoom slider (fixes #5291)
authorFrancois Cartegnie <fcvlcdev@free.fr>
Wed, 7 Sep 2011 12:37:49 +0000 (14:37 +0200)
committerFrancois Cartegnie <fcvlcdev@free.fr>
Wed, 7 Sep 2011 12:37:49 +0000 (14:37 +0200)
modules/gui/qt4/components/playlist/playlist.cpp
modules/gui/qt4/components/playlist/standardpanel.cpp
modules/gui/qt4/components/playlist/standardpanel.hpp

index a29987895862e37fd3ed4e2954ac1444368f84d6..147e8670e6355d84dc58717e12e6bb8a894d77bd 100644 (file)
@@ -41,6 +41,8 @@
 #include <QMenu>
 #include <QSignalMapper>
 #include <QSlider>
+#include <QSpacerItem>
+#include <QList>
 
 /**********************************************************************
  * Playlist Widget. The embedded playlist
@@ -187,7 +189,16 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i, QWidget *_par )
     zoomSlider->setValue( model->getZoom() );
     CONNECT( zoomSlider, valueChanged( int ), model, changeZoom( int ) );
 
-    layout->addWidget( zoomSlider, 1, 3, ( Qt::AlignBottom | Qt::AlignRight ) );
+    /* pad our zoom slider */
+    QGridLayout *sliderLayout = new QGridLayout( this );
+    QSpacerItem* sliderSpacer =
+            new QSpacerItem( mainView->getScrollBarsSize(),
+                             mainView->getScrollBarsSize(),
+                            QSizePolicy::Fixed, QSizePolicy::Fixed );
+    sliderLayout->addWidget( zoomSlider, 0, 0, Qt::AlignCenter );
+    sliderLayout->addItem( sliderSpacer, 1, 1, Qt::AlignCenter );
+
+    layout->addLayout( sliderLayout, 1, 3, ( Qt::AlignBottom | Qt::AlignRight ) );
 
     setAcceptDrops( true );
     setWindowTitle( qtr( "Playlist" ) );
index 76d7e25596faba1bb6f51dd59bc9d9b30a4dc4c5..63612eba2d5eb86f704503e82e5141c373bda790 100644 (file)
@@ -48,6 +48,7 @@
 #include <QStackedLayout>
 #include <QSignalMapper>
 #include <QSettings>
+#include <QScrollBar>
 
 #include <assert.h>
 
@@ -411,6 +412,12 @@ int StandardPLPanel::currentViewIndex() const
         return PICTUREFLOW_VIEW;
 }
 
+int StandardPLPanel::getScrollBarsSize() const
+{
+    /* FIXME: should return a set in case of different widths */
+    return currentView->verticalScrollBar()->sizeHint().width();
+}
+
 void StandardPLPanel::cycleViews()
 {
     if( currentView == iconView )
index 6b936a0c8bddeede81b9303f3c06b32abb5a8b67..9857051f1f07a3ba0a94d233e58db5ed6fa64810 100644 (file)
@@ -69,6 +69,7 @@ public:
            VIEW_COUNT };
 
     int currentViewIndex() const;
+    int getScrollBarsSize() const;
 
 protected:
     PLModel *model;