diff --git a/src/libtomahawk/utils/AnimatedSpinner.cpp b/src/libtomahawk/utils/AnimatedSpinner.cpp index 25b0dc497..7f8c94b7d 100644 --- a/src/libtomahawk/utils/AnimatedSpinner.cpp +++ b/src/libtomahawk/utils/AnimatedSpinner.cpp @@ -35,11 +35,6 @@ AnimatedSpinner::AnimatedSpinner( QWidget *parent ) , m_currentIndex( -1 ) { init(); - m_radius = 10; - m_armLength = sizeHint().width()/2 - m_radius; - m_armWidth = 5; - m_border = 3; - m_armRect = QRect( m_radius, 0, m_armLength, m_armWidth ); } @@ -54,23 +49,6 @@ AnimatedSpinner::AnimatedSpinner( const QSize size, bool autoStart ) init(); - if ( size.width() < 30 ) - { - m_radius = 4; - m_armLength = size.width()/2 - m_radius; - m_armWidth = 2; - m_border = 2; - m_armRect = QRect( m_radius, 0, m_armLength, m_armWidth ); - } - else - { - m_radius = 10; - m_armLength = size.width()/2 - m_radius; - m_armWidth = 5; - m_border = 3; - m_armRect = QRect( m_radius, 0, m_armLength, m_armWidth ); - } - if ( autoStart ) fadeIn(); } @@ -102,6 +80,28 @@ AnimatedSpinner::init() m_colors.resize( segmentCount() ); + QSize size; + if ( parentWidget() ) + size = sizeHint(); + else + size = m_pixmap.size(); + if ( size.width() < 30 ) + { + m_radius = 4; + m_armLength = size.width()/2 - m_radius; + m_armWidth = 2; + m_border = 2; + m_armRect = QRect( m_radius, 0, m_armLength, m_armWidth ); + } + else + { + m_radius = 10; + m_armLength = size.width()/2 - m_radius; + m_armWidth = 5; + m_border = 3; + m_armRect = QRect( m_radius, 0, m_armLength, m_armWidth ); + } + hide(); } @@ -150,7 +150,7 @@ AnimatedSpinner::drawFrame( QPainter* p, const QRect& rect ) p->setRenderHint(QPainter::Antialiasing, true); - p->translate( rect.center() ); // center + p->translate( rect.center() + QPoint( 0, 1 ) ); // center const qreal stepRadius = (360 + 2*m_armWidth) / segmentCount(); p->rotate( stepRadius );