[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