- Fixed Windows compile

- Fixed new playlist creation
- Added a confirmation dialog when replacing a playlist
This commit is contained in:
casey langen 2017-01-26 19:29:20 -08:00
parent 879df9321d
commit 1dfd14911c
4 changed files with 35 additions and 2 deletions

View File

@ -97,6 +97,7 @@
<ClInclude Include="query\CategoryTrackListQuery.h" />
<ClInclude Include="query\GetPlaylistQuery.h" />
<ClInclude Include="query\NowPlayingTrackListQuery.h" />
<ClInclude Include="query\SavePlaylistQuery.h" />
<ClInclude Include="query\SearchTrackListQuery.h" />
<ClInclude Include="query\TrackListQueryBase.h" />
<ClInclude Include="util\Duration.h" />
@ -112,6 +113,7 @@
<ClCompile Include="query\CategoryTrackListQuery.cpp" />
<ClCompile Include="query\GetPlaylistQuery.cpp" />
<ClCompile Include="query\NowPlayingTrackListQuery.cpp" />
<ClCompile Include="query\SavePlaylistQuery.cpp" />
<ClCompile Include="query\SearchTrackListQuery.cpp" />
<ClCompile Include="util\Duration.cpp" />
<ClCompile Include="util\Playback.cpp" />

View File

@ -45,6 +45,9 @@
<ClInclude Include="query\GetPlaylistQuery.h">
<Filter>src\query</Filter>
</ClInclude>
<ClInclude Include="query\SavePlaylistQuery.h">
<Filter>src\query</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
@ -74,5 +77,8 @@
<ClCompile Include="query\GetPlaylistQuery.cpp">
<Filter>src\query</Filter>
</ClCompile>
<ClCompile Include="query\SavePlaylistQuery.cpp">
<Filter>src\query</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -32,6 +32,7 @@
//
//////////////////////////////////////////////////////////////////////////////
#include "pch.hpp"
#include "SavePlaylistQuery.h"
#include <core/db/ScopedTransaction.h>
@ -182,7 +183,7 @@ bool SavePlaylistQuery::ReplacePlaylist(musik::core::db::Connection &db) {
}
bool SavePlaylistQuery::OnRun(musik::core::db::Connection &db) {
if (playlistName.size() && playlistId != 0) {
if (playlistName.size() && playlistId != -1) {
return this->RenamePlaylist(db);
}
else if (playlistId != -1) {

View File

@ -244,6 +244,29 @@ static void createNewPlaylist(
cursespp::App::Overlays().Push(dialog);
}
static void confirmOverwritePlaylist(
musik::core::ILibraryPtr library,
const std::string& playlistName,
const DBID playlistId,
std::shared_ptr<TrackList> tracks)
{
std::shared_ptr<DialogOverlay> dialog(new DialogOverlay());
(*dialog)
.SetTitle("musikbox")
.SetMessage("are you sure you want to overwrite the playlist '" + playlistName + "'?")
.AddButton("^[", "ESC", "no")
.AddButton(
"KEY_ENTER",
"ENTER",
"yes",
[library, playlistId, tracks](const std::string& str) {
library->Enqueue(SavePlaylistQuery::Replace(playlistId, tracks));
});
App::Overlays().Push(dialog);
}
void PlayQueueOverlays::ShowSavePlaylistOverlay(
musik::core::audio::PlaybackService& playback,
musik::core::ILibraryPtr library)
@ -270,7 +293,8 @@ void PlayQueueOverlays::ShowSavePlaylistOverlay(
else { /* replace existing */
--index;
DBID playlistId = (*result)[index]->id;
library->Enqueue(SavePlaylistQuery::Replace(playlistId, tracks));
std::string playlistName = (*result)[index]->displayValue;
confirmOverwritePlaylist(library, playlistName, playlistId, tracks);
}
});
}