1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-04 13:17:34 +02:00

* Fix TransferView jumping around.

This commit is contained in:
Christian Muehlhaeuser
2010-11-29 07:51:18 +01:00
parent 2f14240b9e
commit d4a57eb833
5 changed files with 37 additions and 13 deletions

View File

@@ -43,6 +43,7 @@ PlaylistManager::PlaylistManager( QObject* parent )
m_queueView->queue()->setModel( m_queueModel ); m_queueView->queue()->setModel( m_queueModel );
APP->audioEngine()->setQueue( m_queueView->queue()->proxyModel() ); APP->audioEngine()->setQueue( m_queueView->queue()->proxyModel() );
m_splitter->addWidget( m_queueView );
m_splitter->hide( 1, false ); m_splitter->hide( 1, false );
m_widget->layout()->setMargin( 0 ); m_widget->layout()->setMargin( 0 );

View File

@@ -13,7 +13,6 @@ TransferView::TransferView( AnimatedSplitter* parent )
, m_parent( parent ) , m_parent( parent )
{ {
setHiddenSize( QSize( 0, 0 ) ); setHiddenSize( QSize( 0, 0 ) );
setLayout( new QVBoxLayout() ); setLayout( new QVBoxLayout() );
m_tree = new QTreeWidget( this ); m_tree = new QTreeWidget( this );
@@ -41,6 +40,7 @@ TransferView::TransferView( AnimatedSplitter* parent )
void void
TransferView::fileTransferRegistered( FileTransferConnection* ftc ) TransferView::fileTransferRegistered( FileTransferConnection* ftc )
{ {
qDebug() << Q_FUNC_INFO;
connect( ftc, SIGNAL( updated() ), SLOT( onTransferUpdate() ) ); connect( ftc, SIGNAL( updated() ), SLOT( onTransferUpdate() ) );
} }
@@ -70,6 +70,7 @@ TransferView::fileTransferFinished( FileTransferConnection* ftc )
void void
TransferView::onTransferUpdate() TransferView::onTransferUpdate()
{ {
qDebug() << Q_FUNC_INFO;
FileTransferConnection* ftc = (FileTransferConnection*)sender(); FileTransferConnection* ftc = (FileTransferConnection*)sender();
if ( ftc->track().isNull() || ftc->source().isNull() ) if ( ftc->track().isNull() || ftc->source().isNull() )
return; return;
@@ -91,7 +92,8 @@ TransferView::onTransferUpdate()
ti->setText( 1, QString( "%1 kb/s" ).arg( ftc->transferRate() / 1024 ) ); ti->setText( 1, QString( "%1 kb/s" ).arg( ftc->transferRate() / 1024 ) );
ti->setText( 2, QString( "%1 - %2" ).arg( ftc->track()->artist()->name() ).arg( ftc->track()->track() ) ); ti->setText( 2, QString( "%1 - %2" ).arg( ftc->track()->artist()->name() ).arg( ftc->track()->track() ) );
emit showWidget(); if ( isHidden() )
emit showWidget();
} }

View File

@@ -24,8 +24,6 @@ public:
signals: signals:
public slots:
private slots: private slots:
void fileTransferRegistered( FileTransferConnection* ftc ); void fileTransferRegistered( FileTransferConnection* ftc );
void fileTransferFinished( FileTransferConnection* ftc ); void fileTransferFinished( FileTransferConnection* ftc );

View File

@@ -1,7 +1,5 @@
#include "animatedsplitter.h" #include "animatedsplitter.h"
#include <QDebug>
#define ANIMATION_TIME 500 #define ANIMATION_TIME 500
@@ -30,6 +28,7 @@ AnimatedSplitter::show( int index, bool animate )
if ( w->height() == size.height() ) if ( w->height() == size.height() )
return; return;
emit shown( w );
w->setMaximumHeight( QWIDGETSIZE_MAX ); w->setMaximumHeight( QWIDGETSIZE_MAX );
qDebug() << "animating to:" << size.height() << "from" << w->height(); qDebug() << "animating to:" << size.height() << "from" << w->height();
@@ -48,8 +47,6 @@ AnimatedSplitter::show( int index, bool animate )
onAnimationStep( size.height() ); onAnimationStep( size.height() );
onAnimationFinished(); onAnimationFinished();
} }
emit shown( w );
} }
@@ -64,6 +61,7 @@ AnimatedSplitter::hide( int index, bool animate )
if ( w->height() == minHeight ) if ( w->height() == minHeight )
return; return;
emit hidden( w );
w->setMinimumHeight( minHeight ); w->setMinimumHeight( minHeight );
qDebug() << "animating to:" << w->height() << "from" << minHeight; qDebug() << "animating to:" << w->height() << "from" << minHeight;
@@ -82,8 +80,6 @@ AnimatedSplitter::hide( int index, bool animate )
onAnimationStep( minHeight ); onAnimationStep( minHeight );
onAnimationFinished(); onAnimationFinished();
} }
emit hidden( w );
} }
@@ -98,9 +94,12 @@ AnimatedSplitter::addWidget( QWidget* widget )
void void
AnimatedSplitter::addWidget( AnimatedWidget* widget ) AnimatedSplitter::addWidget( AnimatedWidget* widget )
{ {
qDebug() << Q_FUNC_INFO << widget;
QSplitter::addWidget( widget ); QSplitter::addWidget( widget );
m_sizes << widget->hiddenSize(); m_sizes << widget->hiddenSize();
qDebug() << m_sizes.count();
connect( widget, SIGNAL( showWidget() ), SLOT( onShowRequest() ) ); connect( widget, SIGNAL( showWidget() ), SLOT( onShowRequest() ) );
connect( widget, SIGNAL( hideWidget() ), SLOT( onHideRequest() ) ); connect( widget, SIGNAL( hideWidget() ), SLOT( onHideRequest() ) );
connect( widget, SIGNAL( hiddenSizeChanged() ), SLOT( onHiddenSizeChanged() ) ); connect( widget, SIGNAL( hiddenSizeChanged() ), SLOT( onHiddenSizeChanged() ) );
@@ -112,6 +111,8 @@ AnimatedSplitter::addWidget( AnimatedWidget* widget )
void void
AnimatedSplitter::onShowRequest() AnimatedSplitter::onShowRequest()
{ {
qDebug() << Q_FUNC_INFO << sender();
int j = -1; int j = -1;
for ( int i = 0; i < count(); i ++ ) for ( int i = 0; i < count(); i ++ )
{ {
@@ -202,12 +203,30 @@ AnimatedSplitter::onHiddenSizeChanged()
{ {
AnimatedWidget* w = (AnimatedWidget*)(sender()); AnimatedWidget* w = (AnimatedWidget*)(sender());
int i = indexOf( w ); int i = indexOf( w );
m_sizes.replace( i, w->hiddenSize() ); m_sizes.replace( i, w->hiddenSize() );
} }
AnimatedWidget::AnimatedWidget( AnimatedSplitter* parent ) AnimatedWidget::AnimatedWidget( AnimatedSplitter* parent )
: m_parent( parent ) : m_parent( parent )
, m_isHidden( false )
{ {
m_parent->addWidget( this ); qDebug() << Q_FUNC_INFO;
}
void
AnimatedWidget::onShown( QWidget* )
{
qDebug() << Q_FUNC_INFO << this;
m_isHidden = false;
}
void
AnimatedWidget::onHidden( QWidget* )
{
qDebug() << Q_FUNC_INFO << this;
m_isHidden = true;
} }

View File

@@ -1,6 +1,7 @@
#ifndef ANIMATEDSPLITTER_H #ifndef ANIMATEDSPLITTER_H
#define ANIMATEDSPLITTER_H #define ANIMATEDSPLITTER_H
#include <QDebug>
#include <QSplitter> #include <QSplitter>
#include <QTimeLine> #include <QTimeLine>
@@ -52,9 +53,11 @@ public:
QSize hiddenSize() const { return m_hiddenSize; } QSize hiddenSize() const { return m_hiddenSize; }
void setHiddenSize( const QSize& size ) { m_hiddenSize = size; emit hiddenSizeChanged(); } void setHiddenSize( const QSize& size ) { m_hiddenSize = size; emit hiddenSizeChanged(); }
bool isHidden() const { return m_isHidden; }
public slots: public slots:
virtual void onShown( QWidget* ) {} virtual void onShown( QWidget* );
virtual void onHidden( QWidget* ) {} virtual void onHidden( QWidget* );
signals: signals:
void showWidget(); void showWidget();
@@ -65,6 +68,7 @@ signals:
private: private:
AnimatedSplitter* m_parent; AnimatedSplitter* m_parent;
QSize m_hiddenSize; QSize m_hiddenSize;
bool m_isHidden;
}; };
#endif //ANIMATEDSPLITTER_H #endif //ANIMATEDSPLITTER_H