diff --git a/src/libtomahawk/sip/PeerInfo.cpp b/src/libtomahawk/sip/PeerInfo.cpp index aea61876a..6ddc04371 100644 --- a/src/libtomahawk/sip/PeerInfo.cpp +++ b/src/libtomahawk/sip/PeerInfo.cpp @@ -123,13 +123,7 @@ PeerInfo::PeerInfo( SipPlugin* parent, const QString& id ) PeerInfo::~PeerInfo() { - Q_D( PeerInfo ); - tLog( LOGVERBOSE ) << Q_FUNC_INFO; - - delete d->avatar; - delete d->fancyAvatar; - delete d_ptr; } @@ -334,10 +328,8 @@ PeerInfo::setAvatar( const QPixmap& avatar ) d->avatarHash = hash; d->avatarBuffer = ba; - delete d->avatar; - delete d->fancyAvatar; - d->avatar = 0; - d->fancyAvatar = 0; + d->avatar.reset(); + d->fancyAvatar.reset(); Q_ASSERT( !contactId().isEmpty() ); TomahawkUtils::Cache::instance()->putData( "Sources", 7776000000 /* 90 days */, contactId(), ba ); @@ -349,22 +341,22 @@ PeerInfo::avatar( TomahawkUtils::ImageMode style, const QSize& size ) const { Q_D( const PeerInfo ); - if ( !d->avatar ) + if ( d->avatar.isNull() ) { tDebug() << "Avatar for:" << id(); Q_ASSERT( !contactId().isEmpty() ); if ( d->avatarBuffer.isEmpty() && !contactId().isEmpty() ) d->avatarBuffer = TomahawkUtils::Cache::instance()->getData( "Sources", contactId() ).toByteArray(); - d->avatar = new QPixmap(); + d->avatar.reset( new QPixmap() ); if ( !d->avatarBuffer.isEmpty() ) d->avatar->loadFromData( d->avatarBuffer ); d->avatarBuffer.clear(); } - if ( style == TomahawkUtils::RoundedCorners && d->avatar && !d->avatar->isNull() && !d->fancyAvatar ) - d->fancyAvatar = new QPixmap( TomahawkUtils::createRoundedImage( QPixmap( *d->avatar ), QSize( 0, 0 ) ) ); + if ( style == TomahawkUtils::RoundedCorners && d->avatar && !d->avatar->isNull() && d->fancyAvatar.isNull() ) + d->fancyAvatar.reset( new QPixmap( TomahawkUtils::createRoundedImage( QPixmap( *d->avatar ), QSize( 0, 0 ) ) ) ); QPixmap pixmap; if ( style == TomahawkUtils::RoundedCorners && d->fancyAvatar ) diff --git a/src/libtomahawk/sip/PeerInfo.h b/src/libtomahawk/sip/PeerInfo.h index 1e0bdbf20..3cc1d915b 100644 --- a/src/libtomahawk/sip/PeerInfo.h +++ b/src/libtomahawk/sip/PeerInfo.h @@ -127,7 +127,7 @@ private: void announce(); Q_DECLARE_PRIVATE( Tomahawk::PeerInfo ) - Tomahawk::PeerInfoPrivate* d_ptr; + QScopedPointer< Tomahawk::PeerInfoPrivate > d_ptr; static QHash< SipPlugin*, peerinfo_ptr > s_selfPeersBySipPlugin; }; diff --git a/src/libtomahawk/sip/PeerInfo_p.h b/src/libtomahawk/sip/PeerInfo_p.h index 5c7b945c1..7bc472aa3 100644 --- a/src/libtomahawk/sip/PeerInfo_p.h +++ b/src/libtomahawk/sip/PeerInfo_p.h @@ -60,8 +60,8 @@ private: QString versionString; QVariant data; - mutable QPixmap* avatar; - mutable QPixmap* fancyAvatar; + mutable QScopedPointer< QPixmap > avatar; + mutable QScopedPointer< QPixmap > fancyAvatar; mutable QByteArray avatarBuffer; mutable QByteArray avatarHash;