diff --git a/src/libtomahawk/playlist.cpp b/src/libtomahawk/playlist.cpp
index 2712bbe30..1b5f037aa 100644
--- a/src/libtomahawk/playlist.cpp
+++ b/src/libtomahawk/playlist.cpp
@@ -119,7 +119,7 @@ Playlist::Playlist( const source_ptr& src,
, m_currentItem( 0 )
, m_busy( false )
{
-// qDebug() << Q_FUNC_INFO << "1";
+ qDebug() << Q_FUNC_INFO << "1" << title;
init();
}
@@ -144,7 +144,7 @@ Playlist::Playlist( const source_ptr& author,
, m_initEntries( entries )
, m_busy( false )
{
-// qDebug() << Q_FUNC_INFO << "2";
+ qDebug() << Q_FUNC_INFO << "2" << title;
init();
}
diff --git a/src/libtomahawk/widgets/playlisttypeselectordlg.cpp b/src/libtomahawk/widgets/playlisttypeselectordlg.cpp
index 8207edf34..9e80addcd 100644
--- a/src/libtomahawk/widgets/playlisttypeselectordlg.cpp
+++ b/src/libtomahawk/widgets/playlisttypeselectordlg.cpp
@@ -35,22 +35,24 @@ PlaylistTypeSelectorDlg::PlaylistTypeSelectorDlg( QWidget* parent, Qt::WindowFla
#ifdef Q_WS_MAC
// ui->
- ui->horizontalLayout_2->setContentsMargins( 4, 4, 4, 4 );
+ ui->verticalLayout->setContentsMargins( 4, 0, 4, 4 );
setSizeGripEnabled( false );
+ resize( width(), 150 );
setMinimumSize( size() );
setMaximumSize( size() ); // to remove the resize grip on osx this is the only way
+#else
+ ui->verticalLayout->setContentsMargins( 9, 0, 9, 9 );
#endif
+ ui->line->setMaximumHeight( ui->label->height() );
+ ui->line->setContentsMargins( 0, 0, 0, 0 );
m_isAutoPlaylist = false;
- m_playlistName = "";
connect( ui->manualPlaylistButton, SIGNAL( clicked() ),
this, SLOT( createNormalPlaylist() ));
connect( ui->autoPlaylistButton, SIGNAL( clicked() ),
this, SLOT( createAutomaticPlaylist() ));
- connect( ui->autoPlaylistNameLine, SIGNAL( textChanged( const QString& )),
- this, SLOT( enableAutoPlaylistButton( const QString& )));
}
@@ -72,7 +74,6 @@ void
PlaylistTypeSelectorDlg::createAutomaticPlaylist()
{
m_isAutoPlaylist = true;
- m_playlistName = ui->autoPlaylistNameLine->text();
done( QDialog::Accepted ); // return code is used to vaidate we did not exit out of the Dialog successfully
}
@@ -80,7 +81,7 @@ PlaylistTypeSelectorDlg::createAutomaticPlaylist()
QString
PlaylistTypeSelectorDlg::playlistName() const
{
- return m_playlistName;
+ return ui->playlistNameLine->text();
}
@@ -89,11 +90,3 @@ PlaylistTypeSelectorDlg::playlistTypeIsAuto() const
{
return m_isAutoPlaylist;
}
-
-
-void
-PlaylistTypeSelectorDlg::enableAutoPlaylistButton( const QString &text )
-{
- ui->autoPlaylistButton->setEnabled( !text.isEmpty() );
-}
-
diff --git a/src/libtomahawk/widgets/playlisttypeselectordlg.h b/src/libtomahawk/widgets/playlisttypeselectordlg.h
index de00c1504..ac90ef40f 100644
--- a/src/libtomahawk/widgets/playlisttypeselectordlg.h
+++ b/src/libtomahawk/widgets/playlisttypeselectordlg.h
@@ -40,15 +40,13 @@ public:
QString playlistName() const;
private slots:
- void createNormalPlaylist();
- void createAutomaticPlaylist();
- void enableAutoPlaylistButton( const QString& );
+ void createNormalPlaylist();
+ void createAutomaticPlaylist();
private:
bool m_isAutoPlaylist; // if not an auto playlist then its a normal playlist
Ui::PlaylistTypeSelectorDlg *ui;
- QString m_playlistName;
};
diff --git a/src/libtomahawk/widgets/playlisttypeselectordlg.ui b/src/libtomahawk/widgets/playlisttypeselectordlg.ui
index 3ae6c25df..bb17630a5 100644
--- a/src/libtomahawk/widgets/playlisttypeselectordlg.ui
+++ b/src/libtomahawk/widgets/playlisttypeselectordlg.ui
@@ -6,8 +6,8 @@
0
0
- 482
- 169
+ 420
+ 100
@@ -18,8 +18,8 @@
- 482
- 145
+ 420
+ 100
@@ -34,21 +34,15 @@
false
-
+
-
-
-
- 0
-
-
- 2
-
+
-
- 221
- 40
+ 190
+ 0
@@ -63,42 +57,12 @@
-
-
+
Qt::Vertical
-
-
- 20
- 28
-
-
-
-
- -
-
-
- Create Manual Playlist
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- -
-
-
- 4
-
-
- 1
-
-
@@ -118,57 +82,42 @@
+
+
+ -
+
-
-
-
- Qt::Vertical
+
+
+ Name:
-
-
- 20
- 40
-
+
+ 1
-
+
-
-
-
-
-
-
- Name:
-
-
- 1
-
-
-
- -
-
-
- New Playlist...
-
-
-
-
+
+
+ New Playlist...
+
+
+
+
+ -
+
-
-
-
- Qt::Vertical
+
+
+ Create Manual Playlist
-
-
- 20
- 40
-
-
-
+
-
- false
+ true
Create Automatic Playlist
diff --git a/src/sourcetree/items/categoryitems.cpp b/src/sourcetree/items/categoryitems.cpp
index d57551a14..86bc03134 100644
--- a/src/sourcetree/items/categoryitems.cpp
+++ b/src/sourcetree/items/categoryitems.cpp
@@ -68,34 +68,44 @@ CategoryAddItem::activate()
{
case SourcesModel::PlaylistsCategory: {
- PlaylistTypeSelectorDlg playlistSelectorDlg( TomahawkApp::instance()->mainWindow() );
- int successfulReturn = playlistSelectorDlg.exec();
-
- if ( !playlistSelectorDlg.playlistTypeIsAuto() && successfulReturn ) {
-
- // only show if none is shown yet
- if( !ViewManager::instance()->isNewPlaylistPageVisible() ) {
- //fix this namespace resolution problem, was not there before
- Tomahawk::ViewPage* p = ViewManager::instance()->show( new NewPlaylistWidget() );
- model()->linkSourceItemToPage( this, p );
- }
-
- } else if ( playlistSelectorDlg.playlistTypeIsAuto() && successfulReturn ) {
- // create Auto Playlist
- QString playlistName = playlistSelectorDlg.playlistName();
- APP->mainWindow()->createAutomaticPlaylist( playlistName );
- } else if ( !successfulReturn ) {
- model()->viewPageActivated( ViewManager::instance()->currentPage() );
- }
+ PlaylistTypeSelectorDlg* playlistSelectorDlg = new PlaylistTypeSelectorDlg( TomahawkApp::instance()->mainWindow(), Qt::Sheet );
+#ifndef Q_OS_MAC
+ playlistSelectorDlg->setModal( true );
+#endif
+ connect( playlistSelectorDlg, SIGNAL( finished( int ) ), this, SLOT( dialogClosed( int ) ) );
+ playlistSelectorDlg->show();
break;
- }
+ }
case SourcesModel::StationsCategory:
APP->mainWindow()->createStation();
break;
}
}
+void
+CategoryAddItem::dialogClosed( int ret )
+{
+ PlaylistTypeSelectorDlg* playlistSelectorDlg = qobject_cast< PlaylistTypeSelectorDlg* >( sender() );
+ Q_ASSERT( playlistSelectorDlg );
+
+ QString playlistName = playlistSelectorDlg->playlistName();
+ if ( playlistName.isEmpty() )
+ playlistName = tr( "New Playlist" );
+
+ if ( !playlistSelectorDlg->playlistTypeIsAuto() && ret ) {
+
+ playlist_ptr playlist = Tomahawk::Playlist::create( SourceList::instance()->getLocal(), uuid(), playlistName, "", "", false, QList< query_ptr>() );
+ ViewManager::instance()->show( playlist );
+
+ } else if ( playlistSelectorDlg->playlistTypeIsAuto() && ret ) {
+ // create Auto Playlist
+ APP->mainWindow()->createAutomaticPlaylist( playlistName );
+ } else if ( !ret ) {
+ model()->viewPageActivated( ViewManager::instance()->currentPage() );
+ }
+ playlistSelectorDlg->deleteLater();
+}
Qt::ItemFlags
CategoryAddItem::flags() const
diff --git a/src/sourcetree/items/categoryitems.h b/src/sourcetree/items/categoryitems.h
index 52468ff06..a7de58b0f 100644
--- a/src/sourcetree/items/categoryitems.h
+++ b/src/sourcetree/items/categoryitems.h
@@ -37,6 +37,7 @@ public:
private slots:
void parsedDroppedTracks( const QList< Tomahawk::query_ptr >& tracks );
+ void dialogClosed( int ret );
private:
SourcesModel::CategoryType m_categoryType;
diff --git a/src/tomahawkwindow.cpp b/src/tomahawkwindow.cpp
index 153982a35..3d99bdc48 100644
--- a/src/tomahawkwindow.cpp
+++ b/src/tomahawkwindow.cpp
@@ -524,26 +524,34 @@ TomahawkWindow::createStation()
void
TomahawkWindow::createPlaylist()
{
- PlaylistTypeSelectorDlg playlistSelectorDlg;
- int successfulReturn = playlistSelectorDlg.exec();
+ PlaylistTypeSelectorDlg* playlistSelectorDlg = new PlaylistTypeSelectorDlg( TomahawkApp::instance()->mainWindow(), Qt::Sheet );
+#ifndef Q_OS_MAC
+ playlistSelectorDlg->setModal( true );
+#endif
+ connect( playlistSelectorDlg, SIGNAL( finished( int ) ), this, SLOT( playlistCreateDialogFinished( int ) ) );
- if ( !playlistSelectorDlg.playlistTypeIsAuto() && successfulReturn )
- {
- // only show if none is shown yet
- if ( !ViewManager::instance()->isNewPlaylistPageVisible() )
- {
- ViewManager::instance()->show( new NewPlaylistWidget() );
- }
-
- }
- else if ( playlistSelectorDlg.playlistTypeIsAuto() && successfulReturn )
- {
- // create Auto Playlist
- QString playlistName = playlistSelectorDlg.playlistName();
- APP->mainWindow()->createAutomaticPlaylist( playlistName );
- }
+ playlistSelectorDlg->show();
}
+void TomahawkWindow::playlistCreateDialogFinished( int ret )
+{
+ PlaylistTypeSelectorDlg* playlistSelectorDlg = qobject_cast< PlaylistTypeSelectorDlg* >( sender() );
+ Q_ASSERT( playlistSelectorDlg );
+
+ QString playlistName = playlistSelectorDlg->playlistName();
+ if ( playlistName.isEmpty() )
+ playlistName = tr( "New Playlist" );
+
+ if ( !playlistSelectorDlg->playlistTypeIsAuto() && ret ) {
+
+ playlist_ptr playlist = Tomahawk::Playlist::create( SourceList::instance()->getLocal(), uuid(), playlistName, "", "", false, QList< query_ptr>() );
+ ViewManager::instance()->show( playlist );
+ } else if ( playlistSelectorDlg->playlistTypeIsAuto() && ret ) {
+ // create Auto Playlist
+ createAutomaticPlaylist( playlistName );
+ }
+ playlistSelectorDlg->deleteLater();
+}
void
TomahawkWindow::audioStarted()
diff --git a/src/tomahawkwindow.h b/src/tomahawkwindow.h
index 32e41bc2a..f6980f78a 100644
--- a/src/tomahawkwindow.h
+++ b/src/tomahawkwindow.h
@@ -98,6 +98,7 @@ private slots:
void minimize();
void maximize();
+ void playlistCreateDialogFinished( int ret );
private:
void loadSettings();
void saveSettings();