1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-02 04:10:20 +02:00

TWK-471: Show config UI for resolvers that have one as soon as you add the resolver

This commit is contained in:
Leo Franchi
2011-10-02 17:38:23 -04:00
parent 5594e25dcf
commit 2de19a1c94
3 changed files with 18 additions and 2 deletions

View File

@@ -28,7 +28,6 @@
#include "utils/logger.h" #include "utils/logger.h"
ResolversModel::ResolversModel( QObject* parent ) ResolversModel::ResolversModel( QObject* parent )
: QAbstractListModel( parent ) : QAbstractListModel( parent )
{ {
@@ -135,6 +134,11 @@ ResolversModel::addResolver( const QString& resolver, bool enable )
Tomahawk::ExternalResolver* res = Tomahawk::Pipeline::instance()->addScriptResolver( resolver, enable ); Tomahawk::ExternalResolver* res = Tomahawk::Pipeline::instance()->addScriptResolver( resolver, enable );
connect( res, SIGNAL( changed() ), this, SLOT( resolverChanged() ) ); connect( res, SIGNAL( changed() ), this, SLOT( resolverChanged() ) );
endInsertRows(); endInsertRows();
if ( res->configUI() )
emit openConfig( res->filePath() );
else
m_waitingForLoad << resolver;
} }
void void
@@ -177,6 +181,12 @@ ResolversModel::resolverChanged()
qDebug() << "Got resolverChanged signal, does it have a config UI yet?" << res->configUI(); 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() ); const QModelIndex idx = index( Tomahawk::Pipeline::instance()->scriptResolvers().indexOf( res ), 0, QModelIndex() );
emit dataChanged( idx, idx ); emit dataChanged( idx, idx );
if ( m_waitingForLoad.contains( res->filePath() ) )
{
m_waitingForLoad.remove( res->filePath() );
emit openConfig( res->filePath() );
}
} }
} }

View File

@@ -22,7 +22,7 @@
#include <QModelIndex> #include <QModelIndex>
#include <QStringList> #include <QStringList>
#include <QSet>
class ResolversModel : public QAbstractListModel class ResolversModel : public QAbstractListModel
{ {
@@ -49,11 +49,16 @@ public:
void removeResolver( const QString& resolver ); void removeResolver( const QString& resolver );
void saveScriptResolvers(); void saveScriptResolvers();
signals:
void openConfig( const QString& filePath );
private slots: private slots:
void resolverChanged(); void resolverChanged();
private: private:
void addInstalledResolvers(); void addInstalledResolvers();
QSet<QString> m_waitingForLoad;
}; };
#endif // RESOLVERSMODEL_H #endif // RESOLVERSMODEL_H

View File

@@ -200,6 +200,7 @@ SettingsDialog::SettingsDialog( QWidget *parent )
m_resolversModel = new ResolversModel( this ); m_resolversModel = new ResolversModel( this );
ui->scriptList->setModel( m_resolversModel ); ui->scriptList->setModel( m_resolversModel );
ui->scriptList->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel ); ui->scriptList->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel );
connect( m_resolversModel, SIGNAL( openConfig( QString ) ), SLOT( openResolverConfig( QString ) ) );
#ifdef LIBATTICA_FOUND #ifdef LIBATTICA_FOUND
connect( ui->getMoreResolvers, SIGNAL( clicked() ), this, SLOT( getMoreResolvers() ) ); connect( ui->getMoreResolvers, SIGNAL( clicked() ), this, SLOT( getMoreResolvers() ) );