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:
parent
8cdce8e1ca
commit
443c554b36
@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user