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

Remove bundle directory on account removal.

This commit is contained in:
Teo Mrnjavac
2013-03-17 13:47:26 +01:00
parent 700ce6f18b
commit 256ba3798b
3 changed files with 30 additions and 3 deletions

View File

@@ -351,6 +351,10 @@ AccountManager::removeAccount( Account* account )
m_accountsByAccountType[ type ] = accounts; m_accountsByAccountType[ type ] = accounts;
} }
ResolverAccount* raccount = qobject_cast< ResolverAccount* >( account );
if ( raccount )
raccount->removeBundle();
TomahawkSettings::instance()->removeAccount( account->accountId() ); TomahawkSettings::instance()->removeAccount( account->accountId() );
account->removeFromConfig(); account->removeFromConfig();

View File

@@ -33,6 +33,8 @@
#include <QFileInfo> #include <QFileInfo>
#include <QDir> #include <QDir>
#define MANUALRESOLVERS_DIR "manualresolvers"
using namespace Tomahawk; using namespace Tomahawk;
using namespace Accounts; using namespace Accounts;
@@ -85,9 +87,10 @@ ResolverAccountFactory::createFromPath( const QString& path, const QString& fact
if ( pathInfo.suffix() == "axe" ) if ( pathInfo.suffix() == "axe" )
{ {
QString uniqueName = uuid();
QDir dir( TomahawkUtils::extractScriptPayload( pathInfo.filePath(), QDir dir( TomahawkUtils::extractScriptPayload( pathInfo.filePath(),
pathInfo.completeBaseName(), uniqueName,
"manualresolvers" ) ); MANUALRESOLVERS_DIR ) );
if ( !( dir.exists() && dir.isReadable() ) ) //decompression fubar if ( !( dir.exists() && dir.isReadable() ) ) //decompression fubar
return 0; return 0;
@@ -95,9 +98,10 @@ ResolverAccountFactory::createFromPath( const QString& path, const QString& fact
return 0; return 0;
QString metadataFilePath = dir.absoluteFilePath( "metadata.json" ); QString metadataFilePath = dir.absoluteFilePath( "metadata.json" );
configuration = metadataFromJsonFile( metadataFilePath ); configuration = metadataFromJsonFile( metadataFilePath );
realPath = configuration[ "path" ].toString(); realPath = configuration[ "path" ].toString();
configuration[ "bundleDir" ] = uniqueName;
if ( realPath.isEmpty() ) if ( realPath.isEmpty() )
return 0; return 0;
} }
@@ -133,6 +137,7 @@ ResolverAccountFactory::metadataFromJsonFile( const QString& path )
if ( ok ) if ( ok )
{ {
result[ "pluginName" ] = variant[ "pluginName" ];
result[ "author" ] = variant[ "author" ]; result[ "author" ] = variant[ "author" ];
result[ "description" ] = variant[ "description" ]; result[ "description" ] = variant[ "description" ];
if ( !variant[ "manifest" ].isNull() ) if ( !variant[ "manifest" ].isNull() )
@@ -371,6 +376,22 @@ ResolverAccount::version() const
} }
void
ResolverAccount::removeBundle()
{
QString bundleDir = configuration()[ "bundleDir" ].toString();
if ( bundleDir.isEmpty() )
return;
QString expectedPath = TomahawkUtils::appDataDir().absoluteFilePath( QString( "%1/%2" ).arg( MANUALRESOLVERS_DIR ).arg( bundleDir ) );
QFileInfo fi( expectedPath );
if ( fi.exists() && fi.isDir() && fi.isWritable() )
{
TomahawkUtils::removeDirectory( expectedPath );
}
}
/// AtticaResolverAccount /// AtticaResolverAccount
AtticaResolverAccount::AtticaResolverAccount( const QString& accountId ) AtticaResolverAccount::AtticaResolverAccount( const QString& accountId )

View File

@@ -93,6 +93,8 @@ public:
virtual Tomahawk::InfoSystem::InfoPluginPtr infoPlugin() { return Tomahawk::InfoSystem::InfoPluginPtr(); } virtual Tomahawk::InfoSystem::InfoPluginPtr infoPlugin() { return Tomahawk::InfoSystem::InfoPluginPtr(); }
virtual QWidget* aclWidget() { return 0; } virtual QWidget* aclWidget() { return 0; }
virtual void removeBundle();
private slots: private slots:
void resolverChanged(); void resolverChanged();