From 9cc74abcccee235e28caa0d28ec248e149ca5d2e Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Mon, 4 Apr 2011 14:21:47 -0400 Subject: [PATCH] Keep the dynamic playlist description up to date when it is changed --- src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp | 4 ++++ src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h | 3 +++ src/libtomahawk/playlist/playlistmanager.cpp | 7 +++++++ 3 files changed, 14 insertions(+) diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp index 75fc46351..6f1f2302a 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp @@ -345,6 +345,8 @@ DynamicWidget::controlsChanged() return; m_playlist->createNewRevision(); m_seqRevLaunched++; + + emit descriptionChanged( m_playlist->generator()->sentenceSummary() ); } void @@ -356,6 +358,8 @@ DynamicWidget::controlChanged( const Tomahawk::dyncontrol_ptr& control ) m_seqRevLaunched++; showPreview(); + + emit descriptionChanged( m_playlist->generator()->sentenceSummary() ); } void diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h index 441db1e13..1771fd07b 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h @@ -94,6 +94,9 @@ public slots: void playlistChanged( PlaylistInterface* ); void tracksAdded(); +signals: + void descriptionChanged( const QString& caption ); + private slots: void generate( int = -1 ); void tracksGenerated( const QList< Tomahawk::query_ptr>& queries ); diff --git a/src/libtomahawk/playlist/playlistmanager.cpp b/src/libtomahawk/playlist/playlistmanager.cpp index 31570a41f..2ba638c48 100644 --- a/src/libtomahawk/playlist/playlistmanager.cpp +++ b/src/libtomahawk/playlist/playlistmanager.cpp @@ -553,6 +553,13 @@ PlaylistManager::setPage( ViewPage* page, bool trackHistory ) if ( !AudioEngine::instance()->isPlaying() ) AudioEngine::instance()->setPlaylist( currentPlaylistInterface() ); + // UGH! + if( QObject* obj = dynamic_cast< QObject* >( currentPage() ) ) { +// qDebug() << SIGNAL( descriptionChanged( QString ) ) << QMetaObject::normalizedSignature( SIGNAL( descriptionChanged( QString ) ) ) << obj->metaObject()->indexOfSignal( QMetaObject::normalizedSignature( SIGNAL( descriptionChanged( QString ) ) ) ); +// if( obj->metaObject()->indexOfSignal( QMetaObject::normalizedSignature( SIGNAL( descriptionChanged( QString ) ) ) ) > -1 ) // if the signal exists (just to hide the qobject runtime warning...) + connect( obj, SIGNAL( descriptionChanged( QString ) ), m_infobar, SLOT( setDescription( QString ) ) ); + } + m_stack->setCurrentWidget( page->widget() ); updateView(); }