1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-14 01:54:07 +02:00

Queue JobStatusItems if no JobStatusView is yet instantiated.

This commit is contained in:
Uwe L. Korn
2013-07-30 12:54:45 +02:00
parent 96b5a32a66
commit a3aaf13981
3 changed files with 45 additions and 7 deletions

View File

@@ -43,11 +43,7 @@ DatabaseCommand_UpdateSearchIndex::DatabaseCommand_UpdateSearchIndex()
{
tLog() << Q_FUNC_INFO << "Updating index.";
#ifndef ENABLE_HEADLESS
JobStatusView* jobStatusView = JobStatusView::instance();
if ( jobStatusView != NULL )
jobStatusView->model()->addJob( m_statusJob.data() );
#endif
JobStatusView::addJob( m_statusJob );
}
@@ -55,10 +51,10 @@ DatabaseCommand_UpdateSearchIndex::~DatabaseCommand_UpdateSearchIndex()
{
tDebug() << Q_FUNC_INFO;
#ifndef ENABLE_HEADLESS
if ( ! m_statusJob.isNull() )
{
m_statusJob.data()->done();
#endif
}
}

View File

@@ -42,11 +42,41 @@ using namespace Tomahawk;
JobStatusView* JobStatusView::s_instance = 0;
QList< QPointer< JobStatusItem > > s_jobItems;
void
JobStatusView::addJob( JobStatusItem* item )
{
if ( s_instance == 0 || s_instance->model() == 0 )
{
s_jobItems.append( QPointer<JobStatusItem>( item ) );
}
else
{
s_instance->model()->addJob( item );
}
}
void
JobStatusView::addJob( const QPointer<JobStatusItem>& item )
{
if ( s_instance == 0 || s_instance->model() == 0 )
{
s_jobItems.append( item );
}
else
{
s_instance->model()->addJob( item.data() );
}
}
JobStatusView::JobStatusView( AnimatedSplitter* parent )
: AnimatedWidget( parent )
, m_parent( parent )
, m_cachedHeight( -1 )
, m_model( 0 )
{
s_instance = this;
@@ -89,6 +119,15 @@ JobStatusView::setModel( JobStatusSortModel* m )
connect( m_view->model(), SIGNAL( customDelegateJobInserted( int, JobStatusItem* ) ), this, SLOT( customDelegateJobInserted( int, JobStatusItem* ) ) );
connect( m_view->model(), SIGNAL( customDelegateJobRemoved( int ) ), this, SLOT( customDelegateJobRemoved( int ) ) );
connect( m_view->model(), SIGNAL( refreshDelegates() ), this, SLOT( refreshDelegates() ) );
foreach ( const QPointer<JobStatusItem> item, s_jobItems )
{
if ( !item.isNull() )
{
m_model->addJob( item.data() );
}
}
s_jobItems.clear();
}

View File

@@ -40,6 +40,9 @@ public:
return s_instance;
}
static void addJob( JobStatusItem* item );
static void addJob( const QPointer<JobStatusItem>& item );
explicit JobStatusView( AnimatedSplitter* parent );
virtual ~JobStatusView()
{