1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-15 18:44:30 +02:00

I've seen some wonky behavior coming from the settings module, so add a

mutex for safety
This commit is contained in:
Jeff Mitchell
2011-02-12 13:10:50 -05:00
parent 6e02fda609
commit 1744f3659e
2 changed files with 70 additions and 0 deletions

View File

@@ -20,9 +20,12 @@ TomahawkSettings::instance()
TomahawkSettings::TomahawkSettings( QObject* parent ) TomahawkSettings::TomahawkSettings( QObject* parent )
: QSettings( parent ) : QSettings( parent )
, m_safety()
{ {
s_instance = this; s_instance = this;
m_safety = new QMutex();
QMutexLocker locker( m_safety );
#ifndef TOMAHAWK_HEADLESS #ifndef TOMAHAWK_HEADLESS
if( !contains( "configversion") ) if( !contains( "configversion") )
{ {
@@ -50,6 +53,7 @@ TomahawkSettings::~TomahawkSettings()
QString QString
TomahawkSettings::scannerPath() const TomahawkSettings::scannerPath() const
{ {
QMutexLocker locker( m_safety );
#ifndef TOMAHAWK_HEADLESS #ifndef TOMAHAWK_HEADLESS
return value( "scannerpath", QDesktopServices::storageLocation( QDesktopServices::MusicLocation ) ).toString(); return value( "scannerpath", QDesktopServices::storageLocation( QDesktopServices::MusicLocation ) ).toString();
#else #else
@@ -61,6 +65,7 @@ TomahawkSettings::scannerPath() const
void void
TomahawkSettings::setScannerPath( const QString& path ) TomahawkSettings::setScannerPath( const QString& path )
{ {
QMutexLocker locker( m_safety );
setValue( "scannerpath", path ); setValue( "scannerpath", path );
} }
@@ -68,6 +73,7 @@ TomahawkSettings::setScannerPath( const QString& path )
bool bool
TomahawkSettings::hasScannerPath() const TomahawkSettings::hasScannerPath() const
{ {
QMutexLocker locker( m_safety );
return contains( "scannerpath" ); return contains( "scannerpath" );
} }
@@ -75,6 +81,7 @@ TomahawkSettings::hasScannerPath() const
bool bool
TomahawkSettings::httpEnabled() const TomahawkSettings::httpEnabled() const
{ {
QMutexLocker locker( m_safety );
return value( "network/http", true ).toBool(); return value( "network/http", true ).toBool();
} }
@@ -82,6 +89,7 @@ TomahawkSettings::httpEnabled() const
void void
TomahawkSettings::setHttpEnabled( bool enable ) TomahawkSettings::setHttpEnabled( bool enable )
{ {
QMutexLocker locker( m_safety );
setValue( "network/http", enable ); setValue( "network/http", enable );
} }
@@ -89,6 +97,7 @@ TomahawkSettings::setHttpEnabled( bool enable )
QString QString
TomahawkSettings::proxyHost() const TomahawkSettings::proxyHost() const
{ {
QMutexLocker locker( m_safety );
return value( "network/proxy/host", QString() ).toString(); return value( "network/proxy/host", QString() ).toString();
} }
@@ -96,6 +105,7 @@ TomahawkSettings::proxyHost() const
void void
TomahawkSettings::setProxyHost( const QString& host ) TomahawkSettings::setProxyHost( const QString& host )
{ {
QMutexLocker locker( m_safety );
setValue( "network/proxy/host", host ); setValue( "network/proxy/host", host );
} }
@@ -103,6 +113,7 @@ TomahawkSettings::setProxyHost( const QString& host )
qulonglong qulonglong
TomahawkSettings::proxyPort() const TomahawkSettings::proxyPort() const
{ {
QMutexLocker locker( m_safety );
return value( "network/proxy/port", 1080 ).toULongLong(); return value( "network/proxy/port", 1080 ).toULongLong();
} }
@@ -110,6 +121,7 @@ TomahawkSettings::proxyPort() const
void void
TomahawkSettings::setProxyPort( const qulonglong port ) TomahawkSettings::setProxyPort( const qulonglong port )
{ {
QMutexLocker locker( m_safety );
setValue( "network/proxy/port", port ); setValue( "network/proxy/port", port );
} }
@@ -117,6 +129,7 @@ TomahawkSettings::setProxyPort( const qulonglong port )
QString QString
TomahawkSettings::proxyUsername() const TomahawkSettings::proxyUsername() const
{ {
QMutexLocker locker( m_safety );
return value( "network/proxy/username", QString() ).toString(); return value( "network/proxy/username", QString() ).toString();
} }
@@ -124,6 +137,7 @@ TomahawkSettings::proxyUsername() const
void void
TomahawkSettings::setProxyUsername( const QString& username ) TomahawkSettings::setProxyUsername( const QString& username )
{ {
QMutexLocker locker( m_safety );
setValue( "network/proxy/username", username ); setValue( "network/proxy/username", username );
} }
@@ -131,6 +145,7 @@ TomahawkSettings::setProxyUsername( const QString& username )
QString QString
TomahawkSettings::proxyPassword() const TomahawkSettings::proxyPassword() const
{ {
QMutexLocker locker( m_safety );
return value( "network/proxy/password", QString() ).toString(); return value( "network/proxy/password", QString() ).toString();
} }
@@ -138,6 +153,7 @@ TomahawkSettings::proxyPassword() const
void void
TomahawkSettings::setProxyPassword( const QString& password ) TomahawkSettings::setProxyPassword( const QString& password )
{ {
QMutexLocker locker( m_safety );
setValue( "network/proxy/password", password ); setValue( "network/proxy/password", password );
} }
@@ -145,6 +161,7 @@ TomahawkSettings::setProxyPassword( const QString& password )
int int
TomahawkSettings::proxyType() const TomahawkSettings::proxyType() const
{ {
QMutexLocker locker( m_safety );
return value( "network/proxy/type", 0 ).toInt(); return value( "network/proxy/type", 0 ).toInt();
} }
@@ -152,6 +169,7 @@ TomahawkSettings::proxyType() const
void void
TomahawkSettings::setProxyType( const int type ) TomahawkSettings::setProxyType( const int type )
{ {
QMutexLocker locker( m_safety );
setValue( "network/proxy/type", type ); setValue( "network/proxy/type", type );
} }
@@ -159,6 +177,7 @@ TomahawkSettings::setProxyType( const int type )
QByteArray QByteArray
TomahawkSettings::mainWindowGeometry() const TomahawkSettings::mainWindowGeometry() const
{ {
QMutexLocker locker( m_safety );
return value( "ui/mainwindow/geometry" ).toByteArray(); return value( "ui/mainwindow/geometry" ).toByteArray();
} }
@@ -166,6 +185,7 @@ TomahawkSettings::mainWindowGeometry() const
void void
TomahawkSettings::setMainWindowGeometry( const QByteArray& geom ) TomahawkSettings::setMainWindowGeometry( const QByteArray& geom )
{ {
QMutexLocker locker( m_safety );
setValue( "ui/mainwindow/geometry", geom ); setValue( "ui/mainwindow/geometry", geom );
} }
@@ -173,6 +193,7 @@ TomahawkSettings::setMainWindowGeometry( const QByteArray& geom )
QByteArray QByteArray
TomahawkSettings::mainWindowState() const TomahawkSettings::mainWindowState() const
{ {
QMutexLocker locker( m_safety );
return value( "ui/mainwindow/state" ).toByteArray(); return value( "ui/mainwindow/state" ).toByteArray();
} }
@@ -180,6 +201,7 @@ TomahawkSettings::mainWindowState() const
void void
TomahawkSettings::setMainWindowState( const QByteArray& state ) TomahawkSettings::setMainWindowState( const QByteArray& state )
{ {
QMutexLocker locker( m_safety );
setValue( "ui/mainwindow/state", state ); setValue( "ui/mainwindow/state", state );
} }
@@ -187,6 +209,7 @@ TomahawkSettings::setMainWindowState( const QByteArray& state )
QList<QVariant> QList<QVariant>
TomahawkSettings::playlistColumnSizes( const QString& playlistid ) const TomahawkSettings::playlistColumnSizes( const QString& playlistid ) const
{ {
QMutexLocker locker( m_safety );
return value( QString( "ui/playlist/%1/columnSizes" ).arg( playlistid ) ).toList(); return value( QString( "ui/playlist/%1/columnSizes" ).arg( playlistid ) ).toList();
} }
@@ -194,6 +217,7 @@ TomahawkSettings::playlistColumnSizes( const QString& playlistid ) const
void void
TomahawkSettings::setPlaylistColumnSizes( const QString& playlistid, const QList<QVariant>& cols ) TomahawkSettings::setPlaylistColumnSizes( const QString& playlistid, const QList<QVariant>& cols )
{ {
QMutexLocker locker( m_safety );
setValue( QString( "ui/playlist/%1/columnSizes" ).arg( playlistid ), cols ); setValue( QString( "ui/playlist/%1/columnSizes" ).arg( playlistid ), cols );
} }
@@ -201,6 +225,7 @@ TomahawkSettings::setPlaylistColumnSizes( const QString& playlistid, const QList
QList<Tomahawk::playlist_ptr> QList<Tomahawk::playlist_ptr>
TomahawkSettings::recentlyPlayedPlaylists() const TomahawkSettings::recentlyPlayedPlaylists() const
{ {
QMutexLocker locker( m_safety );
QStringList playlist_guids = value( "playlists/recentlyPlayed" ).toStringList(); QStringList playlist_guids = value( "playlists/recentlyPlayed" ).toStringList();
QList<Tomahawk::playlist_ptr> playlists; QList<Tomahawk::playlist_ptr> playlists;
@@ -218,6 +243,7 @@ TomahawkSettings::recentlyPlayedPlaylists() const
void void
TomahawkSettings::appendRecentlyPlayedPlaylist( const Tomahawk::playlist_ptr& playlist ) TomahawkSettings::appendRecentlyPlayedPlaylist( const Tomahawk::playlist_ptr& playlist )
{ {
QMutexLocker locker( m_safety );
QStringList playlist_guids = value( "playlists/recentlyPlayed" ).toStringList(); QStringList playlist_guids = value( "playlists/recentlyPlayed" ).toStringList();
playlist_guids.removeAll( playlist->guid() ); playlist_guids.removeAll( playlist->guid() );
@@ -230,6 +256,7 @@ TomahawkSettings::appendRecentlyPlayedPlaylist( const Tomahawk::playlist_ptr& pl
bool bool
TomahawkSettings::jabberAutoConnect() const TomahawkSettings::jabberAutoConnect() const
{ {
QMutexLocker locker( m_safety );
return value( "jabber/autoconnect", true ).toBool(); return value( "jabber/autoconnect", true ).toBool();
} }
@@ -237,6 +264,7 @@ TomahawkSettings::jabberAutoConnect() const
void void
TomahawkSettings::setJabberAutoConnect( bool autoconnect ) TomahawkSettings::setJabberAutoConnect( bool autoconnect )
{ {
QMutexLocker locker( m_safety );
setValue( "jabber/autoconnect", autoconnect ); setValue( "jabber/autoconnect", autoconnect );
} }
@@ -244,6 +272,7 @@ TomahawkSettings::setJabberAutoConnect( bool autoconnect )
unsigned int unsigned int
TomahawkSettings::jabberPort() const TomahawkSettings::jabberPort() const
{ {
QMutexLocker locker( m_safety );
return value( "jabber/port", 5222 ).toUInt(); return value( "jabber/port", 5222 ).toUInt();
} }
@@ -251,6 +280,7 @@ TomahawkSettings::jabberPort() const
void void
TomahawkSettings::setJabberPort( int port ) TomahawkSettings::setJabberPort( int port )
{ {
QMutexLocker locker( m_safety );
if ( port < 0 ) if ( port < 0 )
return; return;
setValue( "jabber/port", port ); setValue( "jabber/port", port );
@@ -260,6 +290,7 @@ TomahawkSettings::setJabberPort( int port )
QString QString
TomahawkSettings::jabberServer() const TomahawkSettings::jabberServer() const
{ {
QMutexLocker locker( m_safety );
return value( "jabber/server" ).toString(); return value( "jabber/server" ).toString();
} }
@@ -267,6 +298,7 @@ TomahawkSettings::jabberServer() const
void void
TomahawkSettings::setJabberServer( const QString& server ) TomahawkSettings::setJabberServer( const QString& server )
{ {
QMutexLocker locker( m_safety );
setValue( "jabber/server", server ); setValue( "jabber/server", server );
} }
@@ -274,6 +306,7 @@ TomahawkSettings::setJabberServer( const QString& server )
QString QString
TomahawkSettings::jabberUsername() const TomahawkSettings::jabberUsername() const
{ {
QMutexLocker locker( m_safety );
return value( "jabber/username" ).toString(); return value( "jabber/username" ).toString();
} }
@@ -281,6 +314,7 @@ TomahawkSettings::jabberUsername() const
void void
TomahawkSettings::setJabberUsername( const QString& username ) TomahawkSettings::setJabberUsername( const QString& username )
{ {
QMutexLocker locker( m_safety );
setValue( "jabber/username", username ); setValue( "jabber/username", username );
} }
@@ -288,6 +322,7 @@ TomahawkSettings::setJabberUsername( const QString& username )
QString QString
TomahawkSettings::jabberPassword() const TomahawkSettings::jabberPassword() const
{ {
QMutexLocker locker( m_safety );
return value( "jabber/password" ).toString(); return value( "jabber/password" ).toString();
} }
@@ -295,6 +330,7 @@ TomahawkSettings::jabberPassword() const
void void
TomahawkSettings::setJabberPassword( const QString& pw ) TomahawkSettings::setJabberPassword( const QString& pw )
{ {
QMutexLocker locker( m_safety );
setValue( "jabber/password", pw ); setValue( "jabber/password", pw );
} }
@@ -302,6 +338,7 @@ TomahawkSettings::setJabberPassword( const QString& pw )
TomahawkSettings::ExternalAddressMode TomahawkSettings::ExternalAddressMode
TomahawkSettings::externalAddressMode() const TomahawkSettings::externalAddressMode() const
{ {
QMutexLocker locker( m_safety );
return (TomahawkSettings::ExternalAddressMode) value( "network/external-address-mode", TomahawkSettings::Upnp ).toInt(); return (TomahawkSettings::ExternalAddressMode) value( "network/external-address-mode", TomahawkSettings::Upnp ).toInt();
} }
@@ -309,30 +346,35 @@ TomahawkSettings::externalAddressMode() const
void void
TomahawkSettings::setExternalAddressMode( ExternalAddressMode externalAddressMode ) TomahawkSettings::setExternalAddressMode( ExternalAddressMode externalAddressMode )
{ {
QMutexLocker locker( m_safety );
setValue( "network/external-address-mode", externalAddressMode ); setValue( "network/external-address-mode", externalAddressMode );
} }
QString QString
TomahawkSettings::externalHostname() const TomahawkSettings::externalHostname() const
{ {
QMutexLocker locker( m_safety );
return value( "network/external-hostname" ).toString(); return value( "network/external-hostname" ).toString();
} }
void void
TomahawkSettings::setExternalHostname(const QString& externalHostname) TomahawkSettings::setExternalHostname(const QString& externalHostname)
{ {
QMutexLocker locker( m_safety );
setValue( "network/external-hostname", externalHostname ); setValue( "network/external-hostname", externalHostname );
} }
int int
TomahawkSettings::externalPort() const TomahawkSettings::externalPort() const
{ {
QMutexLocker locker( m_safety );
return value( "network/external-port" ).toInt(); return value( "network/external-port" ).toInt();
} }
void void
TomahawkSettings::setExternalPort(int externalPort) TomahawkSettings::setExternalPort(int externalPort)
{ {
QMutexLocker locker( m_safety );
setValue( "network/external-port", externalPort); setValue( "network/external-port", externalPort);
} }
@@ -340,6 +382,7 @@ TomahawkSettings::setExternalPort(int externalPort)
QString QString
TomahawkSettings::lastFmPassword() const TomahawkSettings::lastFmPassword() const
{ {
QMutexLocker locker( m_safety );
return value( "lastfm/password" ).toString(); return value( "lastfm/password" ).toString();
} }
@@ -347,6 +390,7 @@ TomahawkSettings::lastFmPassword() const
void void
TomahawkSettings::setLastFmPassword( const QString& password ) TomahawkSettings::setLastFmPassword( const QString& password )
{ {
QMutexLocker locker( m_safety );
setValue( "lastfm/password", password ); setValue( "lastfm/password", password );
} }
@@ -354,6 +398,7 @@ TomahawkSettings::setLastFmPassword( const QString& password )
QByteArray QByteArray
TomahawkSettings::lastFmSessionKey() const TomahawkSettings::lastFmSessionKey() const
{ {
QMutexLocker locker( m_safety );
return value( "lastfm/session" ).toByteArray(); return value( "lastfm/session" ).toByteArray();
} }
@@ -361,6 +406,7 @@ TomahawkSettings::lastFmSessionKey() const
void void
TomahawkSettings::setLastFmSessionKey( const QByteArray& key ) TomahawkSettings::setLastFmSessionKey( const QByteArray& key )
{ {
QMutexLocker locker( m_safety );
setValue( "lastfm/session", key ); setValue( "lastfm/session", key );
} }
@@ -368,6 +414,7 @@ TomahawkSettings::setLastFmSessionKey( const QByteArray& key )
QString QString
TomahawkSettings::lastFmUsername() const TomahawkSettings::lastFmUsername() const
{ {
QMutexLocker locker( m_safety );
return value( "lastfm/username" ).toString(); return value( "lastfm/username" ).toString();
} }
@@ -375,60 +422,70 @@ TomahawkSettings::lastFmUsername() const
void void
TomahawkSettings::setLastFmUsername( const QString& username ) TomahawkSettings::setLastFmUsername( const QString& username )
{ {
QMutexLocker locker( m_safety );
setValue( "lastfm/username", username ); setValue( "lastfm/username", username );
} }
QString QString
TomahawkSettings::twitterOAuthToken() const TomahawkSettings::twitterOAuthToken() const
{ {
QMutexLocker locker( m_safety );
return value( "twitter/oauthtoken" ).toString(); return value( "twitter/oauthtoken" ).toString();
} }
void void
TomahawkSettings::setTwitterOAuthToken( const QString& oauthtoken ) TomahawkSettings::setTwitterOAuthToken( const QString& oauthtoken )
{ {
QMutexLocker locker( m_safety );
setValue( "twitter/oauthtoken", oauthtoken ); setValue( "twitter/oauthtoken", oauthtoken );
} }
QString QString
TomahawkSettings::twitterOAuthTokenSecret() const TomahawkSettings::twitterOAuthTokenSecret() const
{ {
QMutexLocker locker( m_safety );
return value( "twitter/oauthtokensecret" ).toString(); return value( "twitter/oauthtokensecret" ).toString();
} }
void void
TomahawkSettings::setTwitterOAuthTokenSecret( const QString& oauthtokensecret ) TomahawkSettings::setTwitterOAuthTokenSecret( const QString& oauthtokensecret )
{ {
QMutexLocker locker( m_safety );
setValue( "twitter/oauthtokensecret", oauthtokensecret ); setValue( "twitter/oauthtokensecret", oauthtokensecret );
} }
qint64 qint64
TomahawkSettings::twitterCachedFriendsSinceId() const TomahawkSettings::twitterCachedFriendsSinceId() const
{ {
QMutexLocker locker( m_safety );
return value( "twitter/cachedfriendssinceid", 0 ).toLongLong(); return value( "twitter/cachedfriendssinceid", 0 ).toLongLong();
} }
void void
TomahawkSettings::setTwitterCachedFriendsSinceId( qint64 cachedId ) TomahawkSettings::setTwitterCachedFriendsSinceId( qint64 cachedId )
{ {
QMutexLocker locker( m_safety );
setValue( "twitter/cachedfriendssinceid", cachedId ); setValue( "twitter/cachedfriendssinceid", cachedId );
} }
qint64 qint64
TomahawkSettings::twitterCachedMentionsSinceId() const TomahawkSettings::twitterCachedMentionsSinceId() const
{ {
QMutexLocker locker( m_safety );
return value( "twitter/cachedmentionssinceid", 0 ).toLongLong(); return value( "twitter/cachedmentionssinceid", 0 ).toLongLong();
} }
void void
TomahawkSettings::setTwitterCachedMentionsSinceId( qint64 cachedId ) TomahawkSettings::setTwitterCachedMentionsSinceId( qint64 cachedId )
{ {
QMutexLocker locker( m_safety );
setValue( "twitter/cachedmentionssinceid", cachedId ); setValue( "twitter/cachedmentionssinceid", cachedId );
} }
bool bool
TomahawkSettings::scrobblingEnabled() const TomahawkSettings::scrobblingEnabled() const
{ {
QMutexLocker locker( m_safety );
return value( "lastfm/enablescrobbling", false ).toBool(); return value( "lastfm/enablescrobbling", false ).toBool();
} }
@@ -436,6 +493,7 @@ TomahawkSettings::scrobblingEnabled() const
void void
TomahawkSettings::setScrobblingEnabled( bool enable ) TomahawkSettings::setScrobblingEnabled( bool enable )
{ {
QMutexLocker locker( m_safety );
setValue( "lastfm/enablescrobbling", enable ); setValue( "lastfm/enablescrobbling", enable );
} }
@@ -443,6 +501,7 @@ TomahawkSettings::setScrobblingEnabled( bool enable )
QString QString
TomahawkSettings::xmppBotServer() const TomahawkSettings::xmppBotServer() const
{ {
QMutexLocker locker( m_safety );
return value( "xmppBot/server", QString() ).toString(); return value( "xmppBot/server", QString() ).toString();
} }
@@ -450,6 +509,7 @@ TomahawkSettings::xmppBotServer() const
void void
TomahawkSettings::setXmppBotServer( const QString& server ) TomahawkSettings::setXmppBotServer( const QString& server )
{ {
QMutexLocker locker( m_safety );
setValue( "xmppBot/server", server ); setValue( "xmppBot/server", server );
} }
@@ -457,6 +517,7 @@ TomahawkSettings::setXmppBotServer( const QString& server )
QString QString
TomahawkSettings::xmppBotJid() const TomahawkSettings::xmppBotJid() const
{ {
QMutexLocker locker( m_safety );
return value( "xmppBot/jid", QString() ).toString(); return value( "xmppBot/jid", QString() ).toString();
} }
@@ -464,6 +525,7 @@ TomahawkSettings::xmppBotJid() const
void void
TomahawkSettings::setXmppBotJid( const QString& component ) TomahawkSettings::setXmppBotJid( const QString& component )
{ {
QMutexLocker locker( m_safety );
setValue( "xmppBot/jid", component ); setValue( "xmppBot/jid", component );
} }
@@ -471,6 +533,7 @@ TomahawkSettings::setXmppBotJid( const QString& component )
QString QString
TomahawkSettings::xmppBotPassword() const TomahawkSettings::xmppBotPassword() const
{ {
QMutexLocker locker( m_safety );
return value( "xmppBot/password", QString() ).toString(); return value( "xmppBot/password", QString() ).toString();
} }
@@ -478,6 +541,7 @@ TomahawkSettings::xmppBotPassword() const
void void
TomahawkSettings::setXmppBotPassword( const QString& password ) TomahawkSettings::setXmppBotPassword( const QString& password )
{ {
QMutexLocker locker( m_safety );
setValue( "xmppBot/password", password ); setValue( "xmppBot/password", password );
} }
@@ -485,6 +549,7 @@ TomahawkSettings::setXmppBotPassword( const QString& password )
int int
TomahawkSettings::xmppBotPort() const TomahawkSettings::xmppBotPort() const
{ {
QMutexLocker locker( m_safety );
return value( "xmppBot/port", -1 ).toInt(); return value( "xmppBot/port", -1 ).toInt();
} }
@@ -492,23 +557,27 @@ TomahawkSettings::xmppBotPort() const
void void
TomahawkSettings::setXmppBotPort( const int port ) TomahawkSettings::setXmppBotPort( const int port )
{ {
QMutexLocker locker( m_safety );
setValue( "xmppBot/port", -1 ); setValue( "xmppBot/port", -1 );
} }
void void
TomahawkSettings::addScriptResolver(const QString& resolver) TomahawkSettings::addScriptResolver(const QString& resolver)
{ {
QMutexLocker locker( m_safety );
setValue( "script/resolvers", scriptResolvers() << resolver ); setValue( "script/resolvers", scriptResolvers() << resolver );
} }
QStringList QStringList
TomahawkSettings::scriptResolvers() const TomahawkSettings::scriptResolvers() const
{ {
QMutexLocker locker( m_safety );
return value( "script/resolvers" ).toStringList(); return value( "script/resolvers" ).toStringList();
} }
void void
TomahawkSettings::setScriptResolvers( const QStringList& resolver ) TomahawkSettings::setScriptResolvers( const QStringList& resolver )
{ {
QMutexLocker locker( m_safety );
setValue( "script/resolvers", resolver ); setValue( "script/resolvers", resolver );
} }

View File

@@ -130,6 +130,7 @@ public:
private: private:
static TomahawkSettings* s_instance; static TomahawkSettings* s_instance;
QMutex *m_safety;
}; };
#endif #endif