From a463c02273f3ce99c49e09bc8e54cde5b7cc6196 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Tue, 31 Jul 2012 21:33:04 -0400 Subject: [PATCH] Debounce updates to loved tracks model --- src/libtomahawk/playlist/LovedTracksModel.cpp | 13 ++++++++----- src/libtomahawk/playlist/LovedTracksModel.h | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/libtomahawk/playlist/LovedTracksModel.cpp b/src/libtomahawk/playlist/LovedTracksModel.cpp index 6af5da878..0ad14a0e0 100644 --- a/src/libtomahawk/playlist/LovedTracksModel.cpp +++ b/src/libtomahawk/playlist/LovedTracksModel.cpp @@ -29,6 +29,8 @@ #include "utils/TomahawkUtils.h" #include "utils/Logger.h" +#include + #define LOVED_TRACK_ITEMS 25 using namespace Tomahawk; @@ -36,8 +38,13 @@ using namespace Tomahawk; LovedTracksModel::LovedTracksModel( QObject* parent ) : PlaylistModel( parent ) + , m_smoothingTimer( new QTimer ) , m_limit( LOVED_TRACK_ITEMS ) { + m_smoothingTimer->setInterval( 150 ); + m_smoothingTimer->setSingleShot( false ); + + connect( m_smoothingTimer, SIGNAL( timeout() ), this, SLOT( loadTracks() ) ); } @@ -49,10 +56,6 @@ LovedTracksModel::~LovedTracksModel() void LovedTracksModel::loadTracks() { - if ( rowCount( QModelIndex() ) ) - { - clear(); - } startLoading(); QString sql; @@ -122,7 +125,7 @@ LovedTracksModel::onSourceAdded( const Tomahawk::source_ptr& source ) void LovedTracksModel::onTrackLoved() { - loadTracks(); + m_smoothingTimer->start(); } diff --git a/src/libtomahawk/playlist/LovedTracksModel.h b/src/libtomahawk/playlist/LovedTracksModel.h index 9491ef905..43210b6a7 100644 --- a/src/libtomahawk/playlist/LovedTracksModel.h +++ b/src/libtomahawk/playlist/LovedTracksModel.h @@ -53,6 +53,7 @@ private slots: void tracksLoaded( QList ); private: Tomahawk::source_ptr m_source; + QTimer* m_smoothingTimer; unsigned int m_limit; };