[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/multimedia/amarok/src
From:       Dan Meltzer <hydrogen () notyetimplemented ! com>
Date:       2007-08-26 2:07:30
Message-ID: 1188094050.210303.13781.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 704721 by dmeltzer:

~yay illissius fixed the sidebar resizing.  Its slow because QGV sucks at anything \
fast but it works.  It turns out QSplitter will not adjust sizes if one of its \
children is resized, only if it is hidden.. so we do it ourselves.


 M  +22 -6     MainWindow.cpp  
 M  +4 -1      MainWindow.h  
 M  +3 -3      app.cpp  
 M  +2 -0      sidebar.h  


--- trunk/extragear/multimedia/amarok/src/MainWindow.cpp #704720:704721
@@ -68,6 +68,7 @@
 #include <QFont>
 #include <QHeaderView>
 #include <QLabel>           //search filter label
+#include <QList>
 #include <QPainter>         //dynamic title
 #include <QPen>
 #include <QTimer>           //search filter timer
@@ -265,12 +266,14 @@
 
     mainLayout->addWidget( m_controlBar );
 
-    QSplitter *childSplitter = new QSplitter( Qt::Horizontal, centralWidget );
-    childSplitter->setContentsMargins( 0, 0, 0, 0 );
-    childSplitter->addWidget( m_browsers );
-    childSplitter->addWidget( contextWidget );
-    childSplitter->addWidget( playlistwindow );
-    mainLayout->addWidget( childSplitter );
+    m_splitter = new QSplitter( Qt::Horizontal, centralWidget );
+    m_splitter->setContentsMargins( 0, 0, 0, 0 );
+    m_splitter->addWidget( m_browsers );
+    m_splitter->addWidget( contextWidget );
+    m_splitter->addWidget( playlistwindow );
+    connect( m_browsers, SIGNAL( widgetActivated( int ) ),
+             SLOT( slotShrinkBrowsers( int ) ) );
+    mainLayout->addWidget( m_splitter );
 
     centralWidget->setLayout( mainLayout );
 
@@ -381,6 +384,19 @@
 //    m_lineEdit->setText( filter );
 }
 
+void MainWindow::slotShrinkBrowsers( int index ) const
+{
+    // Because QSplitter sucks and will not recompute sizes if a pane is shrunk and \
not hidden. +    if( index == -1 )
+    {
+        QList<int> sizes;
+        sizes << m_browsers->sideBarWidget()->width()
+            << m_splitter->sizes()[1] + m_splitter->sizes()[0] - \
m_browsers->sideBarWidget()->width() +            << m_splitter->sizes()[2];
+        m_splitter->setSizes( sizes );
+    }
+}
+
 void MainWindow::slotEditFilter() //SLOT
 {
     EditFilterDialog *fd = new EditFilterDialog( this, true, "" );
--- trunk/extragear/multimedia/amarok/src/MainWindow.h #704720:704721
@@ -31,6 +31,7 @@
 class QTimer;
 class SearchWidget;
 class SideBar;
+class QSplitter;
 
 /**
   * @class MainWindow
@@ -38,7 +39,7 @@
   *
   * This is the main window widget (the Playlist not Player).
   */
-class AMAROK_EXPORT MainWindow : public KXmlGuiWindow//public QWidget, public \
KXMLGUIClient +class AMAROK_EXPORT MainWindow : public KXmlGuiWindow
 {
     Q_OBJECT
 
@@ -73,6 +74,7 @@
         void mbAvailabilityChanged( bool isAvailable );
 
     private slots:
+        void slotShrinkBrowsers( int index ) const;
         void savePlaylist() const;
         void slotBurnPlaylist() const;
         void slotShowCoverManager() const;
@@ -117,6 +119,7 @@
         QTimer        *m_timer;  //search filter timer
         QStringList    m_lastfmTags;
         MediaBrowser  *m_currMediaBrowser;
+        QSplitter     *m_splitter;
 
         void    createActions();
         void    createMenus();
--- trunk/extragear/multimedia/amarok/src/app.cpp #704720:704721
@@ -655,9 +655,9 @@
         const QString size = QString::number( AmarokConfig::coverPreviewSize() ) + \
                '@';
         const QDir cacheDir = Amarok::saveLocation( "albumcovers/cache/" );
         const QStringList obsoleteCovers = cacheDir.entryList( QStringList("*") );
-        oldForeach( obsoleteCovers )
-            if ( !(*it).startsWith( size  ) && !(*it).startsWith( "50@" ) )
-                QFile( cacheDir.filePath( *it ) ).remove();
+        foreach( QString it, obsoleteCovers )
+            if ( !it.startsWith( size  ) && !it.startsWith( "50@" ) )
+                QFile( cacheDir.filePath( it ) ).remove();
     }
 
     //if ( !firstTime )
--- trunk/extragear/multimedia/amarok/src/sidebar.h #704720:704721
@@ -59,6 +59,7 @@
             if( w )
                 w->setParent( this );
         }
+        SideBarWidget *sideBarWidget() const { return m_bar; }
 
         QWidget *contentsWidget() const { return m_contentsWidget; }
 
@@ -105,6 +106,7 @@
         {
             m_contentsWidget->setParent( this );
             m_frame->hide();
+            resize( m_bar->sizeHint() );
             m_current = -1;
             emit widgetActivated( currentIndex() );
             emit widgetActivated( currentWidget() );


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic