mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-04 05:07:27 +02:00
* Fix TransferView jumping around.
This commit is contained in:
@@ -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 );
|
||||||
|
@@ -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,6 +92,7 @@ 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() ) );
|
||||||
|
|
||||||
|
if ( isHidden() )
|
||||||
emit showWidget();
|
emit showWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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 );
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user