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:
@@ -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.
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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 ) );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user