1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-23 09:19:41 +01:00

Rework some scriptresolver/pipeline interaction now that we haev accounts

This commit is contained in:
Leo Franchi 2012-02-18 18:14:00 -05:00
parent 8cdce8e1ca
commit 443c554b36
6 changed files with 27 additions and 75 deletions

@ -409,7 +409,6 @@ AtticaManager::payloadFetched()
m_resolverStates[ resolverId ].scriptPath = resolverPath;
// Do the install / add to tomahawk
Tomahawk::Pipeline::instance()->addScriptResolver( resolverPath, true );
Tomahawk::Accounts::Account* resolver = Tomahawk::Accounts::ResolverAccountFactory::createFromPath( resolverPath, true );
Tomahawk::Accounts::AccountManager::instance()->addAccount( resolver );
@ -547,7 +546,6 @@ AtticaManager::uninstallResolver( const Content& resolver )
}
}
Tomahawk::Pipeline::instance()->removeScriptResolver( pathFromId( resolver.id() ) );
doResolverRemove( resolver.id() );
}

@ -86,20 +86,24 @@ ResolverAccount::ResolverAccount( const QString& accountId, const QString& path
setConfiguration( configuration );
setEnabled( true );
m_resolver = qobject_cast< ExternalResolverGui* >( Pipeline::instance()->addScriptResolver( path, true ) );
connect( m_resolver, SIGNAL( changed() ), this, SLOT( resolverChanged() ) );
m_resolver = QWeakPointer< ExternalResolverGui >( qobject_cast< ExternalResolverGui* >( Pipeline::instance()->addScriptResolver( path, true ) ) );
connect( m_resolver.data(), SIGNAL( changed() ), this, SLOT( resolverChanged() ) );
// What resolver do we have here? Should only be types that are 'real' resolvers
Q_ASSERT ( m_resolver );
Q_ASSERT ( m_resolver.data() );
setAccountFriendlyName( m_resolver->name() );
setAccountFriendlyName( m_resolver.data()->name() );
setTypes( AccountType( ResolverType ) );
}
ResolverAccount::~ResolverAccount()
{
delete m_resolver;
if ( m_resolver.isNull() )
return;
Pipeline::instance()->removeScriptResolver( m_resolver.data()->filePath() );
delete m_resolver.data();
}
@ -107,11 +111,11 @@ ResolverAccount::~ResolverAccount()
void
ResolverAccount::authenticate()
{
Q_ASSERT( !m_resolver.isNull() );
qDebug() << Q_FUNC_INFO << "Authenticating/starting resolver, exists?" << m_resolver;
Q_ASSERT( m_resolver );
if ( !m_resolver->running() )
m_resolver->start();
if ( !m_resolver.data()->running() )
m_resolver.data()->start();
emit connectionStateChanged( connectionState() );
}
@ -120,15 +124,15 @@ ResolverAccount::authenticate()
bool
ResolverAccount::isAuthenticated() const
{
return m_resolver->running();
return m_resolver.data()->running();
}
void
ResolverAccount::deauthenticate()
{
if ( m_resolver->running() )
m_resolver->stop();
if ( m_resolver.data()->running() )
m_resolver.data()->stop();
emit connectionStateChanged( connectionState() );
@ -138,7 +142,7 @@ ResolverAccount::deauthenticate()
Account::ConnectionState
ResolverAccount::connectionState() const
{
if ( m_resolver->running() )
if ( m_resolver.data()->running() )
return Connected;
else
return Disconnected;
@ -148,7 +152,7 @@ ResolverAccount::connectionState() const
QWidget*
ResolverAccount::configurationWidget()
{
return m_resolver->configUI();
return m_resolver.data()->configUI();
}
@ -172,21 +176,21 @@ ResolverAccount::removeFromConfig()
void ResolverAccount::saveConfig()
{
Account::saveConfig();
m_resolver->saveConfig();
m_resolver.data()->saveConfig();
}
QString
ResolverAccount::path() const
{
return m_resolver->filePath();
return m_resolver.data()->filePath();
}
void
ResolverAccount::resolverChanged()
{
setAccountFriendlyName( m_resolver->name() );
setAccountFriendlyName( m_resolver.data()->name() );
emit connectionStateChanged( connectionState() );
}
@ -220,7 +224,7 @@ AtticaResolverAccount::~AtticaResolverAccount()
void
AtticaResolverAccount::loadIcon()
{
const QFileInfo fi( m_resolver->filePath() );
const QFileInfo fi( m_resolver.data()->filePath() );
QDir codeDir = fi.absoluteDir();
codeDir.cd( "../images" );

@ -85,7 +85,7 @@ private slots:
protected:
// Created by factory, when user installs a new resolver
ResolverAccount( const QString& accountId, const QString& path );
ExternalResolverGui* m_resolver;
QWeakPointer<ExternalResolverGui> m_resolver;
friend class ResolverAccountFactory;
};

@ -156,8 +156,8 @@ TomahawkSettings::doUpgrade( int oldVersion, int newVersion )
QStringList toremove;
QStringList resolvers = resolverDir.entryList( QDir::Dirs | QDir::NoDotAndDotDot );
QStringList listedResolvers = allScriptResolvers();
QStringList enabledResolvers = enabledScriptResolvers();
QStringList listedResolvers = value( "script/resolvers" ).toStringList();
QStringList enabledResolvers = value( "script/loadedresolvers" ).toStringList();
foreach ( const QString& resolver, resolvers )
{
foreach ( const QString& r, listedResolvers )
@ -177,8 +177,8 @@ TomahawkSettings::doUpgrade( int oldVersion, int newVersion )
}
}
}
setAllScriptResolvers( listedResolvers );
setEnabledScriptResolvers( enabledResolvers );
setValue( "script/resolvers", listedResolvers );
setValue( "script/loadedresolvers", enabledResolvers );
tDebug() << "UPGRADING AND DELETING:" << resolverDir.absolutePath();
TomahawkUtils::removeDirectory( resolverDir.absolutePath() );
}
@ -1004,41 +1004,6 @@ TomahawkSettings::setXmppBotPort( const int port )
}
void
TomahawkSettings::addScriptResolver(const QString& resolver)
{
setValue( "script/resolvers", allScriptResolvers() << resolver );
}
QStringList
TomahawkSettings::allScriptResolvers() const
{
return value( "script/resolvers" ).toStringList();
}
void
TomahawkSettings::setAllScriptResolvers( const QStringList& resolver )
{
setValue( "script/resolvers", resolver );
}
QStringList
TomahawkSettings::enabledScriptResolvers() const
{
return value( "script/loadedresolvers" ).toStringList();
}
void
TomahawkSettings::setEnabledScriptResolvers( const QStringList& resolvers )
{
setValue( "script/loadedresolvers", resolvers );
}
QString
TomahawkSettings::scriptDefaultPath() const
{

@ -191,14 +191,6 @@ public:
int xmppBotPort() const;
void setXmppBotPort( const int port );
/// Script resolver settings
QStringList allScriptResolvers() const;
void setAllScriptResolvers( const QStringList& resolvers );
void addScriptResolver( const QString& resolver );
QStringList enabledScriptResolvers() const;
void setEnabledScriptResolvers( const QStringList& resolvers );
QString scriptDefaultPath() const;
void setScriptDefaultPath( const QString& path );
QString playlistDefaultPath() const;

@ -423,7 +423,7 @@ TomahawkApp::registerMetaTypes()
qRegisterMetaType< Tomahawk::InfoSystem::InfoRequestData >( "Tomahawk::InfoSystem::InfoRequestData" );
qRegisterMetaType< Tomahawk::InfoSystem::InfoSystemCache* >( "Tomahawk::InfoSystem::InfoSystemCache*" );
qRegisterMetaType< QList< Tomahawk::InfoSystem::InfoStringHash > >("QList< Tomahawk::InfoSystem::InfoStringHash > ");
qRegisterMetaTypeStreamOperators< QList< Tomahawk::InfoSystem::InfoStringHash > >("QList< Tomahawk::InfoSystem::InfoStringHash > ");
qRegisterMetaType< QPersistentModelIndex >( "QPersistentModelIndex" );
@ -471,13 +471,6 @@ TomahawkApp::initPipeline()
{
// setup resolvers for local content, and (cached) remote collection content
Pipeline::instance()->addResolver( new DatabaseResolver( 100 ) );
// load script resolvers
QStringList enabled = TomahawkSettings::instance()->enabledScriptResolvers();
foreach ( QString resolver, TomahawkSettings::instance()->allScriptResolvers() )
{
const bool enable = enabled.contains( resolver );
Pipeline::instance()->addScriptResolver( resolver, enable );
}
}