[vlc-devel] commit: Fix Playlist resizing and positionning. (Jean-Baptiste Kempf )

git version control git at videolan.org
Mon Aug 25 07:26:07 CEST 2008


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Sun Aug 24 22:28:07 2008 -0700| [b63140fae58c3a801a850105abb111d33c4df14e] | committer: Jean-Baptiste Kempf 

Fix Playlist resizing and positionning.

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

 modules/gui/qt4/components/playlist/playlist.cpp |    5 --
 modules/gui/qt4/components/playlist/playlist.hpp |    1 -
 modules/gui/qt4/main_interface.cpp               |   52 ++++++++++------------
 modules/gui/qt4/main_interface.hpp               |   14 +++++-
 modules/gui/qt4/ui/sout.ui                       |    9 +++-
 5 files changed, 40 insertions(+), 41 deletions(-)

diff --git a/modules/gui/qt4/components/playlist/playlist.cpp b/modules/gui/qt4/components/playlist/playlist.cpp
index c55b0dc..3712d17 100644
--- a/modules/gui/qt4/components/playlist/playlist.cpp
+++ b/modules/gui/qt4/components/playlist/playlist.cpp
@@ -134,11 +134,6 @@ void PlaylistWidget::setArt( QString url )
     }
 }
 
-QSize PlaylistWidget::sizeHint() const
-{
-   return QSize( 600 , 300 );
-}
-
 PlaylistWidget::~PlaylistWidget()
 {
     getSettings()->beginGroup("playlistdialog");
diff --git a/modules/gui/qt4/components/playlist/playlist.hpp b/modules/gui/qt4/components/playlist/playlist.hpp
index 8401688..d1cf059 100644
--- a/modules/gui/qt4/components/playlist/playlist.hpp
+++ b/modules/gui/qt4/components/playlist/playlist.hpp
@@ -47,7 +47,6 @@ class PlaylistWidget : public QSplitter
 public:
     PlaylistWidget( intf_thread_t *_p_i, QWidget *parent ) ;
     virtual ~PlaylistWidget();
-    QSize sizeHint() const;
 private:
     PLSelector *selector;
     PLPanel *rightPanel;
diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp
index faed371..2652226 100644
--- a/modules/gui/qt4/main_interface.cpp
+++ b/modules/gui/qt4/main_interface.cpp
@@ -222,7 +222,6 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
     if( settings->value( "playlist-visible", 0 ).toInt() ) togglePlaylist();
     settings->endGroup();
 
-
     /* Final sizing and showing */
     setMinimumWidth( __MAX( controls->sizeHint().width(),
                             menuBar()->sizeHint().width() ) );
@@ -248,11 +247,14 @@ MainInterface::~MainInterface()
     msg_Dbg( p_intf, "Destroying the main interface" );
 
     if( playlistWidget )
-        playlistWidget->savingSettings();
+    {
+        if( !isDocked() )
+            QVLCTools::saveWidgetPosition( p_intf, "Playlist", playlistWidget );
+    }
 
     settings->beginGroup( "MainWindow" );
 
-    // settings->setValue( "playlist-floats", (int)(dockPL->isFloating()) );
+    settings->setValue( "pl-dock-status", (int)i_pl_dock );
     settings->setValue( "playlist-visible", (int)playlistVisible );
     settings->setValue( "adv-controls",
                         getControlsVisibilityStatus() & CONTROLS_ADVANCED );
@@ -586,8 +588,6 @@ void MainInterface::toggleFSC()
    QApplication::postEvent( fullscreenControls, static_cast<QEvent *>(eShow) );
 }
 
-
-//FIXME remove me at the end...
 void MainInterface::debug()
 {
 #ifndef NDEBUG
@@ -733,46 +733,36 @@ int MainInterface::controlVideo( void *p_window, int i_query, va_list args )
  **/
 void MainInterface::togglePlaylist()
 {
-    THEDP->playlistDialog();
-#if 0
     /* CREATION
     If no playlist exist, then create one and attach it to the DockPL*/
     if( !playlistWidget )
     {
-        playlistWidget = new PlaylistWidget( p_intf, settings, dockPL );
-
-        /* Add it to the parent DockWidget */
-        dockPL->setWidget( playlistWidget );
+        playlistWidget = new PlaylistWidget( p_intf, this );
 
-        /* Add the dock to the main Interface */
-        addDockWidget( Qt::BottomDockWidgetArea, dockPL );
+        i_pl_dock = (pl_dock_e)getSettings()
+                         ->value( "pl-dock-status", PL_UNDOCKED ).toInt();
+        if( i_pl_dock == PL_UNDOCKED )
+        {
+            playlistWidget->setWindowFlags( Qt::Window );
 
-        /* Make the playlist floating is requested. Default is not. */
-        settings->beginGroup( "MainWindow" );
-        if( settings->value( "playlist-floats", 1 ).toInt() )
+            QVLCTools::restoreWidgetPosition( p_intf, "Playlist",
+                    playlistWidget, QSize( 600, 300 ) );
+        }
+        else
         {
-            msg_Dbg( p_intf, "we don't want the playlist inside");
-            dockPL->setFloating( true );
+            mainLayout->insertWidget( 4, playlistWidget );
         }
-        settings->endGroup();
-        settings->beginGroup( "playlist" );
-        dockPL->move( settings->value( "pos", QPoint( 0,0 ) ).toPoint() );
-        QSize newSize = settings->value( "size", QSize( 400, 300 ) ).toSize();
-        if( newSize.isValid() )
-            dockPL->resize( newSize );
-        settings->endGroup();
-
-        dockPL->show();
         playlistVisible = true;
+
+        playlistWidget->show();
     }
     else
     {
     /* toggle the visibility of the playlist */
-       TOGGLEV( dockPL );
+       TOGGLEV( playlistWidget );
        resize( sizeHint() );
        playlistVisible = !playlistVisible;
     }
-    #endif
 }
 
 /* Function called from the menu to undock the playlist */
@@ -782,6 +772,10 @@ void MainInterface::undockPlaylist()
     adjustSize();
 }
 
+void MainInterface::dockPlaylist( pl_dock_e i_pos )
+{
+}
+
 void MainInterface::toggleMinimalView()
 {
     /* HACK for minimalView, see menus.cpp */
diff --git a/modules/gui/qt4/main_interface.hpp b/modules/gui/qt4/main_interface.hpp
index 1d7c026..2efeebc 100644
--- a/modules/gui/qt4/main_interface.hpp
+++ b/modules/gui/qt4/main_interface.hpp
@@ -51,12 +51,19 @@ class QMenu;
 class QSize;
 //class QDockWidet;
 
-enum{
+enum {
     CONTROLS_HIDDEN = 0x0,
     CONTROLS_VISIBLE = 0x1,
     CONTROLS_ADVANCED = 0x2
 };
 
+typedef enum pl_dock_e {
+    PL_UNDOCKED,
+    PL_BOTTOM,
+    PL_RIGHT,
+    PL_LEFT
+} pl_dock_e;
+
 class MainInterface : public QVLCMW
 {
     Q_OBJECT;
@@ -114,12 +121,10 @@ private:
 
     /* Video */
     VideoWidget         *videoWidget;
-    //    QSize                savedVideoSize;
 
     BackgroundWidget    *bgWidget;
     VisualSelector      *visualSelector;
     PlaylistWidget      *playlistWidget;
-//    QDockWidget         *dockPL;
 
     bool                 videoIsActive; ///< Having a video now / THEMIM->hasV
     bool                 videoEmbeddedFlag; ///< Want an external Video Window
@@ -129,6 +134,8 @@ private:
     bool                 b_remainingTime; /* Show elapsed or remaining time */
     bool                 bgWasVisible;
     int                  i_visualmode; ///< Visual Mode
+    pl_dock_e            i_pl_dock;
+    bool                 isDocked() { return ( i_pl_dock != PL_UNDOCKED ); }
 
     input_thread_t      *p_input;    ///< Main input associated to the playlist
 
@@ -143,6 +150,7 @@ private:
 
 public slots:
     void undockPlaylist();
+    void dockPlaylist( pl_dock_e i_pos = PL_BOTTOM );
     void toggleMinimalView();
     void togglePlaylist();
     void toggleUpdateSystrayMenu();
diff --git a/modules/gui/qt4/ui/sout.ui b/modules/gui/qt4/ui/sout.ui
index 2f99cd3..e171087 100644
--- a/modules/gui/qt4/ui/sout.ui
+++ b/modules/gui/qt4/ui/sout.ui
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>644</width>
-    <height>784</height>
+    <height>799</height>
    </rect>
   </property>
   <property name="windowTitle" >
@@ -489,6 +489,9 @@
           <property name="wordWrap" >
            <bool>true</bool>
           </property>
+          <property name="buddy" >
+           <cstring>UDPOutput</cstring>
+          </property>
          </widget>
         </item>
         <item row="5" column="1" >
@@ -542,8 +545,8 @@
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>624</width>
-        <height>129</height>
+        <width>628</width>
+        <height>135</height>
        </rect>
       </property>
       <attribute name="title" >




More information about the vlc-devel mailing list