From d2f876b6f3d7b2012338c7cd97c436745708eb43 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sun, 27 May 2012 13:09:22 -0400 Subject: [PATCH] Only load resolve icon pixmap once --- src/libtomahawk/jobview/PipelineStatusItem.cpp | 15 +++++++++++++-- src/libtomahawk/jobview/PipelineStatusItem.h | 5 +++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/libtomahawk/jobview/PipelineStatusItem.cpp b/src/libtomahawk/jobview/PipelineStatusItem.cpp index 779287789..556b9a41d 100644 --- a/src/libtomahawk/jobview/PipelineStatusItem.cpp +++ b/src/libtomahawk/jobview/PipelineStatusItem.cpp @@ -27,12 +27,11 @@ #include "JobStatusView.h" #include "Source.h" +QPixmap* PipelineStatusItem::s_pixmap = 0; PipelineStatusItem::PipelineStatusItem() : JobStatusItem() { - m_icon.load( RESPATH"images/search-icon.png" ); - connect( Tomahawk::Pipeline::instance(), SIGNAL( resolving( Tomahawk::query_ptr ) ), this, SLOT( resolving( Tomahawk::query_ptr ) ) ); connect( Tomahawk::Pipeline::instance(), SIGNAL( idle() ), this, SLOT( idle() ) ); } @@ -65,6 +64,18 @@ PipelineStatusItem::idle() } +QPixmap +PipelineStatusItem::icon() const +{ + if ( !s_pixmap ) + { + s_pixmap = new QPixmap( RESPATH"images/search-icon.png" ); + } + + return *s_pixmap; +} + + void PipelineStatusItem::resolving( const Tomahawk::query_ptr& query ) { diff --git a/src/libtomahawk/jobview/PipelineStatusItem.h b/src/libtomahawk/jobview/PipelineStatusItem.h index a1d7db719..da95e96fd 100644 --- a/src/libtomahawk/jobview/PipelineStatusItem.h +++ b/src/libtomahawk/jobview/PipelineStatusItem.h @@ -33,7 +33,7 @@ public: virtual QString rightColumnText() const; virtual QString mainText() const; - virtual QPixmap icon() const { return m_icon; } + virtual QPixmap icon() const; virtual QString type() const { return "pipeline"; } @@ -44,8 +44,9 @@ private slots: void idle(); private: - QPixmap m_icon; QString m_latestQuery; + + static QPixmap* s_pixmap; }; class PipelineStatusManager : public QObject