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

* Fixed crash bug caused by multiple sources going on- and offline at a time.

This commit is contained in:
Christian Muehlhaeuser
2011-04-09 11:03:52 +02:00
parent c6442e4dfd
commit c0994e3c24
2 changed files with 31 additions and 21 deletions

View File

@@ -1,3 +1,6 @@
Version 0.0.4:
* Fixed a crash situation caused by sources going on- or offline.
Version 0.0.3:
* Show spinner while resolving playlists.
* Go back to previous page visible when deleting a playlist.

View File

@@ -1,5 +1,5 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
*
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
@@ -89,10 +89,13 @@ Query::refreshResults()
void
Query::onResultStatusChanged()
{
if ( m_results.count() )
qStableSort( m_results.begin(), m_results.end(), Query::resultSorter );
checkResults();
{
QMutexLocker lock( &m_mutex );
if ( m_results.count() )
qStableSort( m_results.begin(), m_results.end(), Query::resultSorter );
}
checkResults();
emit resultsChanged();
}
@@ -180,27 +183,31 @@ Query::checkResults()
{
bool becameSolved = false;
bool becameUnsolved = true;
m_playable = false;
// hook up signals, and check solved status
foreach( const result_ptr& rp, m_results )
{
if ( rp->score() > 0.0 && rp->collection().isNull() )
{
m_playable = true;
}
if ( !rp->collection().isNull() && rp->collection()->source()->isOnline() )
{
m_playable = true;
QMutexLocker lock( &m_mutex );
if ( rp->score() > 0.99 )
m_playable = false;
// hook up signals, and check solved status
foreach( const result_ptr& rp, m_results )
{
if ( rp->score() > 0.0 && rp->collection().isNull() )
{
becameUnsolved = false;
m_playable = true;
}
if ( !rp->collection().isNull() && rp->collection()->source()->isOnline() )
{
m_playable = true;
if ( !m_solved )
if ( rp->score() > 0.99 )
{
m_solved = true;
becameSolved = true;
becameUnsolved = false;
if ( !m_solved )
{
m_solved = true;
becameSolved = true;
}
}
}
}
@@ -226,7 +233,7 @@ Query::toVariant() const
m.insert( "track", track() );
m.insert( "duration", duration() );
m.insert( "qid", id() );
return m;
}