From 2de19a1c94d5f1b60aac4c506836366ebc258e9c Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sun, 2 Oct 2011 17:38:23 -0400 Subject: [PATCH] TWK-471: Show config UI for resolvers that have one as soon as you add the resolver --- src/resolversmodel.cpp | 12 +++++++++++- src/resolversmodel.h | 7 ++++++- src/settingsdialog.cpp | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/resolversmodel.cpp b/src/resolversmodel.cpp index cae4b9e69..fa1c93cb0 100644 --- a/src/resolversmodel.cpp +++ b/src/resolversmodel.cpp @@ -28,7 +28,6 @@ #include "utils/logger.h" - ResolversModel::ResolversModel( QObject* parent ) : QAbstractListModel( parent ) { @@ -135,6 +134,11 @@ ResolversModel::addResolver( const QString& resolver, bool enable ) Tomahawk::ExternalResolver* res = Tomahawk::Pipeline::instance()->addScriptResolver( resolver, enable ); connect( res, SIGNAL( changed() ), this, SLOT( resolverChanged() ) ); endInsertRows(); + + if ( res->configUI() ) + emit openConfig( res->filePath() ); + else + m_waitingForLoad << resolver; } void @@ -177,6 +181,12 @@ ResolversModel::resolverChanged() qDebug() << "Got resolverChanged signal, does it have a config UI yet?" << res->configUI(); const QModelIndex idx = index( Tomahawk::Pipeline::instance()->scriptResolvers().indexOf( res ), 0, QModelIndex() ); emit dataChanged( idx, idx ); + + if ( m_waitingForLoad.contains( res->filePath() ) ) + { + m_waitingForLoad.remove( res->filePath() ); + emit openConfig( res->filePath() ); + } } } diff --git a/src/resolversmodel.h b/src/resolversmodel.h index 167320bca..9aee76f72 100644 --- a/src/resolversmodel.h +++ b/src/resolversmodel.h @@ -22,7 +22,7 @@ #include #include - +#include class ResolversModel : public QAbstractListModel { @@ -49,11 +49,16 @@ public: void removeResolver( const QString& resolver ); void saveScriptResolvers(); + +signals: + void openConfig( const QString& filePath ); + private slots: void resolverChanged(); private: void addInstalledResolvers(); + QSet m_waitingForLoad; }; #endif // RESOLVERSMODEL_H diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index 14be34bf8..24a99488f 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -200,6 +200,7 @@ SettingsDialog::SettingsDialog( QWidget *parent ) m_resolversModel = new ResolversModel( this ); ui->scriptList->setModel( m_resolversModel ); ui->scriptList->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel ); + connect( m_resolversModel, SIGNAL( openConfig( QString ) ), SLOT( openResolverConfig( QString ) ) ); #ifdef LIBATTICA_FOUND connect( ui->getMoreResolvers, SIGNAL( clicked() ), this, SLOT( getMoreResolvers() ) );