mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-07-31 11:20:22 +02:00
Rework some scriptresolver/pipeline interaction now that we haev accounts
This commit is contained in:
@@ -409,7 +409,6 @@ AtticaManager::payloadFetched()
|
|||||||
m_resolverStates[ resolverId ].scriptPath = resolverPath;
|
m_resolverStates[ resolverId ].scriptPath = resolverPath;
|
||||||
|
|
||||||
// Do the install / add to tomahawk
|
// Do the install / add to tomahawk
|
||||||
Tomahawk::Pipeline::instance()->addScriptResolver( resolverPath, true );
|
|
||||||
Tomahawk::Accounts::Account* resolver = Tomahawk::Accounts::ResolverAccountFactory::createFromPath( resolverPath, true );
|
Tomahawk::Accounts::Account* resolver = Tomahawk::Accounts::ResolverAccountFactory::createFromPath( resolverPath, true );
|
||||||
Tomahawk::Accounts::AccountManager::instance()->addAccount( resolver );
|
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() );
|
doResolverRemove( resolver.id() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -86,20 +86,24 @@ ResolverAccount::ResolverAccount( const QString& accountId, const QString& path
|
|||||||
setConfiguration( configuration );
|
setConfiguration( configuration );
|
||||||
setEnabled( true );
|
setEnabled( true );
|
||||||
|
|
||||||
m_resolver = qobject_cast< ExternalResolverGui* >( Pipeline::instance()->addScriptResolver( path, true ) );
|
m_resolver = QWeakPointer< ExternalResolverGui >( qobject_cast< ExternalResolverGui* >( Pipeline::instance()->addScriptResolver( path, true ) ) );
|
||||||
connect( m_resolver, SIGNAL( changed() ), this, SLOT( resolverChanged() ) );
|
connect( m_resolver.data(), SIGNAL( changed() ), this, SLOT( resolverChanged() ) );
|
||||||
|
|
||||||
// What resolver do we have here? Should only be types that are 'real' resolvers
|
// 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 ) );
|
setTypes( AccountType( ResolverType ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ResolverAccount::~ResolverAccount()
|
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
|
void
|
||||||
ResolverAccount::authenticate()
|
ResolverAccount::authenticate()
|
||||||
{
|
{
|
||||||
|
Q_ASSERT( !m_resolver.isNull() );
|
||||||
qDebug() << Q_FUNC_INFO << "Authenticating/starting resolver, exists?" << m_resolver;
|
qDebug() << Q_FUNC_INFO << "Authenticating/starting resolver, exists?" << m_resolver;
|
||||||
Q_ASSERT( m_resolver );
|
|
||||||
|
|
||||||
if ( !m_resolver->running() )
|
if ( !m_resolver.data()->running() )
|
||||||
m_resolver->start();
|
m_resolver.data()->start();
|
||||||
|
|
||||||
emit connectionStateChanged( connectionState() );
|
emit connectionStateChanged( connectionState() );
|
||||||
}
|
}
|
||||||
@@ -120,15 +124,15 @@ ResolverAccount::authenticate()
|
|||||||
bool
|
bool
|
||||||
ResolverAccount::isAuthenticated() const
|
ResolverAccount::isAuthenticated() const
|
||||||
{
|
{
|
||||||
return m_resolver->running();
|
return m_resolver.data()->running();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ResolverAccount::deauthenticate()
|
ResolverAccount::deauthenticate()
|
||||||
{
|
{
|
||||||
if ( m_resolver->running() )
|
if ( m_resolver.data()->running() )
|
||||||
m_resolver->stop();
|
m_resolver.data()->stop();
|
||||||
|
|
||||||
emit connectionStateChanged( connectionState() );
|
emit connectionStateChanged( connectionState() );
|
||||||
|
|
||||||
@@ -138,7 +142,7 @@ ResolverAccount::deauthenticate()
|
|||||||
Account::ConnectionState
|
Account::ConnectionState
|
||||||
ResolverAccount::connectionState() const
|
ResolverAccount::connectionState() const
|
||||||
{
|
{
|
||||||
if ( m_resolver->running() )
|
if ( m_resolver.data()->running() )
|
||||||
return Connected;
|
return Connected;
|
||||||
else
|
else
|
||||||
return Disconnected;
|
return Disconnected;
|
||||||
@@ -148,7 +152,7 @@ ResolverAccount::connectionState() const
|
|||||||
QWidget*
|
QWidget*
|
||||||
ResolverAccount::configurationWidget()
|
ResolverAccount::configurationWidget()
|
||||||
{
|
{
|
||||||
return m_resolver->configUI();
|
return m_resolver.data()->configUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -172,21 +176,21 @@ ResolverAccount::removeFromConfig()
|
|||||||
void ResolverAccount::saveConfig()
|
void ResolverAccount::saveConfig()
|
||||||
{
|
{
|
||||||
Account::saveConfig();
|
Account::saveConfig();
|
||||||
m_resolver->saveConfig();
|
m_resolver.data()->saveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString
|
QString
|
||||||
ResolverAccount::path() const
|
ResolverAccount::path() const
|
||||||
{
|
{
|
||||||
return m_resolver->filePath();
|
return m_resolver.data()->filePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ResolverAccount::resolverChanged()
|
ResolverAccount::resolverChanged()
|
||||||
{
|
{
|
||||||
setAccountFriendlyName( m_resolver->name() );
|
setAccountFriendlyName( m_resolver.data()->name() );
|
||||||
emit connectionStateChanged( connectionState() );
|
emit connectionStateChanged( connectionState() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,7 +224,7 @@ AtticaResolverAccount::~AtticaResolverAccount()
|
|||||||
void
|
void
|
||||||
AtticaResolverAccount::loadIcon()
|
AtticaResolverAccount::loadIcon()
|
||||||
{
|
{
|
||||||
const QFileInfo fi( m_resolver->filePath() );
|
const QFileInfo fi( m_resolver.data()->filePath() );
|
||||||
QDir codeDir = fi.absoluteDir();
|
QDir codeDir = fi.absoluteDir();
|
||||||
codeDir.cd( "../images" );
|
codeDir.cd( "../images" );
|
||||||
|
|
||||||
|
@@ -85,7 +85,7 @@ private slots:
|
|||||||
protected:
|
protected:
|
||||||
// Created by factory, when user installs a new resolver
|
// Created by factory, when user installs a new resolver
|
||||||
ResolverAccount( const QString& accountId, const QString& path );
|
ResolverAccount( const QString& accountId, const QString& path );
|
||||||
ExternalResolverGui* m_resolver;
|
QWeakPointer<ExternalResolverGui> m_resolver;
|
||||||
|
|
||||||
friend class ResolverAccountFactory;
|
friend class ResolverAccountFactory;
|
||||||
};
|
};
|
||||||
|
@@ -156,8 +156,8 @@ TomahawkSettings::doUpgrade( int oldVersion, int newVersion )
|
|||||||
|
|
||||||
QStringList toremove;
|
QStringList toremove;
|
||||||
QStringList resolvers = resolverDir.entryList( QDir::Dirs | QDir::NoDotAndDotDot );
|
QStringList resolvers = resolverDir.entryList( QDir::Dirs | QDir::NoDotAndDotDot );
|
||||||
QStringList listedResolvers = allScriptResolvers();
|
QStringList listedResolvers = value( "script/resolvers" ).toStringList();
|
||||||
QStringList enabledResolvers = enabledScriptResolvers();
|
QStringList enabledResolvers = value( "script/loadedresolvers" ).toStringList();
|
||||||
foreach ( const QString& resolver, resolvers )
|
foreach ( const QString& resolver, resolvers )
|
||||||
{
|
{
|
||||||
foreach ( const QString& r, listedResolvers )
|
foreach ( const QString& r, listedResolvers )
|
||||||
@@ -177,8 +177,8 @@ TomahawkSettings::doUpgrade( int oldVersion, int newVersion )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setAllScriptResolvers( listedResolvers );
|
setValue( "script/resolvers", listedResolvers );
|
||||||
setEnabledScriptResolvers( enabledResolvers );
|
setValue( "script/loadedresolvers", enabledResolvers );
|
||||||
tDebug() << "UPGRADING AND DELETING:" << resolverDir.absolutePath();
|
tDebug() << "UPGRADING AND DELETING:" << resolverDir.absolutePath();
|
||||||
TomahawkUtils::removeDirectory( 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
|
QString
|
||||||
TomahawkSettings::scriptDefaultPath() const
|
TomahawkSettings::scriptDefaultPath() const
|
||||||
{
|
{
|
||||||
|
@@ -191,14 +191,6 @@ public:
|
|||||||
int xmppBotPort() const;
|
int xmppBotPort() const;
|
||||||
void setXmppBotPort( const int port );
|
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;
|
QString scriptDefaultPath() const;
|
||||||
void setScriptDefaultPath( const QString& path );
|
void setScriptDefaultPath( const QString& path );
|
||||||
QString playlistDefaultPath() const;
|
QString playlistDefaultPath() const;
|
||||||
|
@@ -423,7 +423,7 @@ TomahawkApp::registerMetaTypes()
|
|||||||
qRegisterMetaType< Tomahawk::InfoSystem::InfoRequestData >( "Tomahawk::InfoSystem::InfoRequestData" );
|
qRegisterMetaType< Tomahawk::InfoSystem::InfoRequestData >( "Tomahawk::InfoSystem::InfoRequestData" );
|
||||||
qRegisterMetaType< Tomahawk::InfoSystem::InfoSystemCache* >( "Tomahawk::InfoSystem::InfoSystemCache*" );
|
qRegisterMetaType< Tomahawk::InfoSystem::InfoSystemCache* >( "Tomahawk::InfoSystem::InfoSystemCache*" );
|
||||||
qRegisterMetaType< QList< Tomahawk::InfoSystem::InfoStringHash > >("QList< Tomahawk::InfoSystem::InfoStringHash > ");
|
qRegisterMetaType< QList< Tomahawk::InfoSystem::InfoStringHash > >("QList< Tomahawk::InfoSystem::InfoStringHash > ");
|
||||||
|
|
||||||
qRegisterMetaTypeStreamOperators< QList< Tomahawk::InfoSystem::InfoStringHash > >("QList< Tomahawk::InfoSystem::InfoStringHash > ");
|
qRegisterMetaTypeStreamOperators< QList< Tomahawk::InfoSystem::InfoStringHash > >("QList< Tomahawk::InfoSystem::InfoStringHash > ");
|
||||||
qRegisterMetaType< QPersistentModelIndex >( "QPersistentModelIndex" );
|
qRegisterMetaType< QPersistentModelIndex >( "QPersistentModelIndex" );
|
||||||
|
|
||||||
@@ -471,13 +471,6 @@ TomahawkApp::initPipeline()
|
|||||||
{
|
{
|
||||||
// setup resolvers for local content, and (cached) remote collection content
|
// setup resolvers for local content, and (cached) remote collection content
|
||||||
Pipeline::instance()->addResolver( new DatabaseResolver( 100 ) );
|
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 );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user