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

Merge branch 'stable'

Conflicts:
	ChangeLog
	src/tomahawkwindow.cpp
This commit is contained in:
Leo Franchi
2011-04-11 11:03:31 -04:00
4 changed files with 34 additions and 32 deletions

View File

@@ -1,11 +1,14 @@
Version 0.1.0: Version 0.1.0:
* Watch folders for changes and automatically update your collection. This * Watch folders for changes and automatically update your collection. This
is on by default; you can turn it off on the Local Music tab in the is on by default; you can turn it off on the Local Music tab in the
settings dialog. Note that this triggers only on files or folders being settings dialog. Note that this triggers only on files or folders being
added to or removed from folders; it is not watch individual files as added to or removed from folders; it is not watch individual files as
most OSes can't support enough file watches to handle a normal-sized most OSes can't support enough file watches to handle a normal-sized
music collection. music collection.
Version 0.0.4:
* Fixed a crash situation caused by sources going on- or offline.
Version 0.0.3: Version 0.0.3:
* Show spinner while resolving playlists. * Show spinner while resolving playlists.
* Go back to previous page visible when deleting a playlist. * 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> === /* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
* *
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org> * Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
* *
* Tomahawk is free software: you can redistribute it and/or modify * Tomahawk is free software: you can redistribute it and/or modify
@@ -89,10 +89,13 @@ Query::refreshResults()
void void
Query::onResultStatusChanged() Query::onResultStatusChanged()
{ {
if ( m_results.count() ) {
qStableSort( m_results.begin(), m_results.end(), Query::resultSorter ); QMutexLocker lock( &m_mutex );
checkResults(); if ( m_results.count() )
qStableSort( m_results.begin(), m_results.end(), Query::resultSorter );
}
checkResults();
emit resultsChanged(); emit resultsChanged();
} }
@@ -180,27 +183,31 @@ Query::checkResults()
{ {
bool becameSolved = false; bool becameSolved = false;
bool becameUnsolved = true; 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() ) QMutexLocker lock( &m_mutex );
{
m_playable = true;
}
if ( !rp->collection().isNull() && rp->collection()->source()->isOnline() )
{
m_playable = true;
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; becameUnsolved = false;
becameSolved = true;
if ( !m_solved )
{
m_solved = true;
becameSolved = true;
}
} }
} }
} }
@@ -226,7 +233,7 @@ Query::toVariant() const
m.insert( "track", track() ); m.insert( "track", track() );
m.insert( "duration", duration() ); m.insert( "duration", duration() );
m.insert( "qid", id() ); m.insert( "qid", id() );
return m; return m;
} }

View File

@@ -529,7 +529,7 @@ TomahawkApp::loadUrl( const QString& url )
if( f.exists() && info.suffix() == "xspf" ) { if( f.exists() && info.suffix() == "xspf" ) {
XSPFLoader* l = new XSPFLoader( true, this ); XSPFLoader* l = new XSPFLoader( true, this );
qDebug() << "Loading spiff:" << url; qDebug() << "Loading spiff:" << url;
l->load( QUrl( url ) ); l->load( QUrl::fromUserInput( url ) );
} }
} }
return true; return true;

View File

@@ -385,15 +385,7 @@ TomahawkWindow::loadSpiff()
return; return;
XSPFLoader* loader = new XSPFLoader; XSPFLoader* loader = new XSPFLoader;
QFileInfo info( urlstr ); loader->load( QUrl::fromUserInput( urlstr ) );
if( info.isFile() )
{
QFile f( urlstr );
loader->load( f );
} else
{
loader->load( QUrl( urlstr ) );
}
} }