From 06e00a83c83232300061c059625ecdc996e98fc9 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Thu, 12 May 2011 01:02:08 +0200 Subject: [PATCH] * Don't create pixmaps in the wrong thread. --- src/libtomahawk/source.cpp | 17 +++++++++++++---- src/libtomahawk/source.h | 7 ++++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/libtomahawk/source.cpp b/src/libtomahawk/source.cpp index 48e23dcb6..052d344a6 100644 --- a/src/libtomahawk/source.cpp +++ b/src/libtomahawk/source.cpp @@ -39,6 +39,7 @@ Source::Source( int id, const QString& username ) , m_username( username ) , m_id( id ) , m_cc( 0 ) + , m_avatar( 0 ) { qDebug() << Q_FUNC_INFO << id << username; @@ -55,6 +56,7 @@ Source::Source( int id, const QString& username ) Source::~Source() { qDebug() << Q_FUNC_INFO << friendlyName(); + delete m_avatar; } @@ -111,14 +113,21 @@ Source::friendlyName() const return m_friendlyname; } -void Source::setAvatar(const QPixmap& avatar) + +void +Source::setAvatar( const QPixmap& avatar ) { - m_avatar = avatar; + m_avatar = new QPixmap( avatar ); } -const QPixmap Source::avatar() const + +QPixmap +Source::avatar() const { - return m_avatar; + if ( m_avatar ) + return QPixmap( *m_avatar ); + else + return QPixmap(); } diff --git a/src/libtomahawk/source.h b/src/libtomahawk/source.h index 398e791db..b1d9cc6f1 100644 --- a/src/libtomahawk/source.h +++ b/src/libtomahawk/source.h @@ -54,8 +54,9 @@ public: QString userName() const { return m_username; } QString friendlyName() const; void setFriendlyName( const QString& fname ); - void setAvatar(const QPixmap &avatar); - const QPixmap avatar() const; + + void setAvatar( const QPixmap& avatar ); + QPixmap avatar() const; collection_ptr collection() const; void addCollection( const Tomahawk::collection_ptr& c ); @@ -120,7 +121,7 @@ private: ControlConnection* m_cc; - QPixmap m_avatar; + QPixmap* m_avatar; }; };