From 669537263921fb9ee09804b4cb037c25a57046ef Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Fri, 1 Jun 2012 07:45:58 +0200 Subject: [PATCH] * Auto resize OverlayWidget to a reasonable size. --- src/libtomahawk/widgets/OverlayWidget.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/libtomahawk/widgets/OverlayWidget.cpp b/src/libtomahawk/widgets/OverlayWidget.cpp index 605907fd9..d8801a11d 100644 --- a/src/libtomahawk/widgets/OverlayWidget.cpp +++ b/src/libtomahawk/widgets/OverlayWidget.cpp @@ -36,7 +36,6 @@ OverlayWidget::OverlayWidget( QAbstractItemView* parent ) , m_opacity( 0.00 ) , m_parent( parent ) { - resize( 380, 128 ); setAttribute( Qt::WA_TranslucentBackground, true ); setOpacity( m_opacity ); @@ -86,6 +85,7 @@ void OverlayWidget::setText( const QString& text ) { m_text = text; + onViewChanged(); } @@ -150,6 +150,7 @@ OverlayWidget::onViewModelChanged() if ( m_parent->model() ) { connect( m_parent->model(), SIGNAL( rowsInserted( QModelIndex, int, int ) ), SLOT( onViewChanged() ), Qt::UniqueConnection ); + connect( m_parent->model(), SIGNAL( rowsRemoved( QModelIndex, int, int ) ), SLOT( onViewChanged() ), Qt::UniqueConnection ); onViewChanged(); } } @@ -160,6 +161,17 @@ OverlayWidget::paintEvent( QPaintEvent* event ) { Q_UNUSED( event ); + { + QSize maxiSize = QSize( (double)m_parent->viewport()->width() * 0.70, (double)m_parent->viewport()->height() * 0.70 ); + QSize prefSize = QSize( 380, 128 ); + int width = qMin( maxiSize.width(), prefSize.width() ); + int height = qMin( maxiSize.height(), prefSize.height() ); + QSize newSize = QSize( width, height ); + + if ( newSize != size() ) + resize( newSize ); + } + QPoint center( ( m_parent->width() - width() ) / 2, ( m_parent->height() - height() ) / 2 ); if ( center != pos() ) {