mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-01 03:40:16 +02:00
* Fixed TWK-839: Creating name-less playlists results in a better default name.
This commit is contained in:
@@ -698,18 +698,18 @@ TomahawkWindow::onAudioEngineError( AudioEngine::AudioErrorCode /* error */ )
|
|||||||
void
|
void
|
||||||
TomahawkWindow::createAutomaticPlaylist( QString playlistName )
|
TomahawkWindow::createAutomaticPlaylist( QString playlistName )
|
||||||
{
|
{
|
||||||
QString name = playlistName;
|
if ( playlistName.isEmpty() )
|
||||||
|
|
||||||
if ( name.isEmpty() )
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
source_ptr author = SourceList::instance()->getLocal();
|
source_ptr author = SourceList::instance()->getLocal();
|
||||||
QString id = uuid();
|
QString id = uuid();
|
||||||
QString info = ""; // FIXME
|
QString info = ""; // FIXME
|
||||||
QString creator = "someone"; // FIXME
|
QString creator = "someone"; // FIXME
|
||||||
dynplaylist_ptr playlist = DynamicPlaylist::create( author, id, name, info, creator, Static, false );
|
|
||||||
|
dynplaylist_ptr playlist = DynamicPlaylist::create( author, id, playlistName, info, creator, Static, false );
|
||||||
playlist->setMode( Static );
|
playlist->setMode( Static );
|
||||||
playlist->createNewRevision( uuid(), playlist->currentrevision(), playlist->type(), playlist->generator()->controls(), playlist->entries() );
|
playlist->createNewRevision( uuid(), playlist->currentrevision(), playlist->type(), playlist->generator()->controls(), playlist->entries() );
|
||||||
|
|
||||||
ViewManager::instance()->show( playlist );
|
ViewManager::instance()->show( playlist );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -717,18 +717,36 @@ TomahawkWindow::createAutomaticPlaylist( QString playlistName )
|
|||||||
void
|
void
|
||||||
TomahawkWindow::createStation()
|
TomahawkWindow::createStation()
|
||||||
{
|
{
|
||||||
|
QString title = tr( "Station" );
|
||||||
bool ok;
|
bool ok;
|
||||||
QString name = QInputDialog( this, Qt::Sheet ).getText( this, tr( "Create New Station" ), tr( "Name:" ), QLineEdit::Normal, tr( "New Station" ), &ok );
|
QString playlistName = QInputDialog( this, Qt::Sheet ).getText( this, tr( "Create New Station" ), tr( "Name:" ), QLineEdit::Normal, title, &ok );
|
||||||
if ( !ok || name.isEmpty() )
|
if ( !ok )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if ( playlistName.isEmpty() || playlistName == title )
|
||||||
|
{
|
||||||
|
QList< dynplaylist_ptr > pls = SourceList::instance()->getLocal()->collection()->stations();
|
||||||
|
QStringList titles;
|
||||||
|
foreach ( const playlist_ptr& pl, pls )
|
||||||
|
titles << pl->title();
|
||||||
|
|
||||||
|
playlistName = title;
|
||||||
|
int i = 2;
|
||||||
|
while ( titles.contains( playlistName ) )
|
||||||
|
{
|
||||||
|
playlistName = QString( "%1 (%2)" ).arg( title ).arg( i++ );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
source_ptr author = SourceList::instance()->getLocal();
|
source_ptr author = SourceList::instance()->getLocal();
|
||||||
QString id = uuid();
|
QString id = uuid();
|
||||||
QString info = ""; // FIXME
|
QString info = ""; // FIXME
|
||||||
QString creator = "someone"; // FIXME
|
QString creator = "someone"; // FIXME
|
||||||
dynplaylist_ptr playlist = DynamicPlaylist::create( author, id, name, info, creator, OnDemand, false );
|
|
||||||
|
dynplaylist_ptr playlist = DynamicPlaylist::create( author, id, playlistName, info, creator, OnDemand, false );
|
||||||
playlist->setMode( OnDemand );
|
playlist->setMode( OnDemand );
|
||||||
playlist->createNewRevision( uuid(), playlist->currentrevision(), playlist->type(), playlist->generator()->controls() );
|
playlist->createNewRevision( uuid(), playlist->currentrevision(), playlist->type(), playlist->generator()->controls() );
|
||||||
|
|
||||||
ViewManager::instance()->show( playlist );
|
ViewManager::instance()->show( playlist );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -754,17 +772,47 @@ TomahawkWindow::playlistCreateDialogFinished( int ret )
|
|||||||
Q_ASSERT( playlistSelectorDlg );
|
Q_ASSERT( playlistSelectorDlg );
|
||||||
|
|
||||||
QString playlistName = playlistSelectorDlg->playlistName();
|
QString playlistName = playlistSelectorDlg->playlistName();
|
||||||
if ( playlistName.isEmpty() )
|
|
||||||
playlistName = tr( "New Playlist" );
|
|
||||||
|
|
||||||
if ( !playlistSelectorDlg->playlistTypeIsAuto() && ret )
|
if ( !playlistSelectorDlg->playlistTypeIsAuto() && ret )
|
||||||
{
|
{
|
||||||
|
if ( playlistName.isEmpty() )
|
||||||
|
{
|
||||||
|
QList< playlist_ptr > pls = SourceList::instance()->getLocal()->collection()->playlists();
|
||||||
|
QStringList titles;
|
||||||
|
foreach ( const playlist_ptr& pl, pls )
|
||||||
|
titles << pl->title();
|
||||||
|
|
||||||
|
QString title = tr( "Playlist" );
|
||||||
|
playlistName = title;
|
||||||
|
int i = 2;
|
||||||
|
while ( titles.contains( playlistName ) )
|
||||||
|
{
|
||||||
|
playlistName = QString( "%1 (%2)" ).arg( title ).arg( i++ );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
playlist_ptr playlist = Tomahawk::Playlist::create( SourceList::instance()->getLocal(), uuid(), playlistName, "", "", false, QList< query_ptr>() );
|
playlist_ptr playlist = Tomahawk::Playlist::create( SourceList::instance()->getLocal(), uuid(), playlistName, "", "", false, QList< query_ptr>() );
|
||||||
ViewManager::instance()->show( playlist );
|
ViewManager::instance()->show( playlist );
|
||||||
}
|
}
|
||||||
else if ( playlistSelectorDlg->playlistTypeIsAuto() && ret )
|
else if ( playlistSelectorDlg->playlistTypeIsAuto() && ret )
|
||||||
{
|
{
|
||||||
// create Auto Playlist
|
// create Auto Playlist
|
||||||
|
if ( playlistName.isEmpty() )
|
||||||
|
{
|
||||||
|
QList< dynplaylist_ptr > pls = SourceList::instance()->getLocal()->collection()->autoPlaylists();
|
||||||
|
QStringList titles;
|
||||||
|
foreach ( const dynplaylist_ptr& pl, pls )
|
||||||
|
titles << pl->title();
|
||||||
|
|
||||||
|
QString title = tr( "Automatic Playlist" );
|
||||||
|
playlistName = title;
|
||||||
|
int i = 2;
|
||||||
|
while ( titles.contains( playlistName ) )
|
||||||
|
{
|
||||||
|
playlistName = QString( "%1 (%2)" ).arg( title ).arg( i++ );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
createAutomaticPlaylist( playlistName );
|
createAutomaticPlaylist( playlistName );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user