From 19328d5acf036d4afb078c1a7487f4072bf27c42 Mon Sep 17 00:00:00 2001 From: Zhong Yang Date: Wed, 31 Jul 2024 23:20:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=88=97=E8=A1=A8=E4=B8=AD?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E2=80=9C=E4=BB=8E=E5=88=97=E8=A1=A8=E4=B8=AD?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E2=80=9D=E6=97=B6=E5=A2=9E=E5=8A=A0=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E5=AF=B9=E8=AF=9D=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MusicPlayer2/MusicPlayerCmdHelper.cpp | 20 ++++++++++++++++++++ MusicPlayer2/MusicPlayerCmdHelper.h | 2 ++ MusicPlayer2/MusicPlayerDlg.cpp | 7 +++++-- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/MusicPlayer2/MusicPlayerCmdHelper.cpp b/MusicPlayer2/MusicPlayerCmdHelper.cpp index 6a644eb6e..f77bbd61d 100644 --- a/MusicPlayer2/MusicPlayerCmdHelper.cpp +++ b/MusicPlayer2/MusicPlayerCmdHelper.cpp @@ -1089,6 +1089,26 @@ bool CMusicPlayerCmdHelper::OnRemoveFromPlaylist(const std::vector& so return false; } +bool CMusicPlayerCmdHelper::OnRemoveFromCurrentPlaylist(const std::vector& indexs) +{ + if (CPlayer::GetInstance().IsPlaylistMode()) + { + std::wstring playlist_name = CPlaylistMgr::GetPlaylistDisplayName(CPlayer::GetInstance().GetPlaylistPath()); + std::wstring info = theApp.m_str_table.LoadTextFormat(L"MSG_REMOVE_FROM_PLAYLIST_INQUIRY", { playlist_name, indexs.size() }); + if (GetOwner()->MessageBox(info.c_str(), NULL, MB_ICONQUESTION | MB_YESNO) == IDYES) + { + CPlayer::GetInstance().RemoveSongs(indexs); + + //如果是我喜欢的曲目,则需要更新UI中的显示 + if (CPlayer::GetInstance().GetPlaylistPath() == theApp.m_playlist_dir + FAVOURITE_PLAYLIST_NAME) + CUiMyFavouriteItemMgr::Instance().UpdateMyFavourite(); + + return true; + } + } + return false; +} + void CMusicPlayerCmdHelper::OnPlayMyFavourite(int index) { bool ok = CPlayer::GetInstance().SetPlaylist(theApp.m_playlist_dir + FAVOURITE_PLAYLIST_NAME, index, 0, true, true); diff --git a/MusicPlayer2/MusicPlayerCmdHelper.h b/MusicPlayer2/MusicPlayerCmdHelper.h index 1793957b5..38f70d6b6 100644 --- a/MusicPlayer2/MusicPlayerCmdHelper.h +++ b/MusicPlayer2/MusicPlayerCmdHelper.h @@ -107,6 +107,8 @@ class CMusicPlayerCmdHelper //从播放列表中移除 bool OnRemoveFromPlaylist(const std::vector& songs, const std::wstring& playlist_path); + //从正在播放的播放列表中移除 + bool OnRemoveFromCurrentPlaylist(const std::vector& indexs); void OnPlayMyFavourite(int index); void OnPlayMyFavourite(); diff --git a/MusicPlayer2/MusicPlayerDlg.cpp b/MusicPlayer2/MusicPlayerDlg.cpp index 57865c92c..0f40ae469 100644 --- a/MusicPlayer2/MusicPlayerDlg.cpp +++ b/MusicPlayer2/MusicPlayerDlg.cpp @@ -5204,8 +5204,9 @@ void CMusicPlayerDlg::OnPlaylistAddFile() void CMusicPlayerDlg::OnRemoveFromPlaylist() { // TODO: 在此添加命令处理程序代码 - CPlayer::GetInstance().RemoveSongs(m_items_selected); - ShowPlayList(false); + CMusicPlayerCmdHelper helper(this); + if (helper.OnRemoveFromCurrentPlaylist(m_items_selected)) + ShowPlayList(false); } @@ -5246,6 +5247,7 @@ void CMusicPlayerDlg::OnMovePlaylistItemUp() m_pFloatPlaylistDlg->GetListCtrl().SetCurSel(first - 1, last - 1); m_pFloatPlaylistDlg->GetPlaylistItemSelected(); } + SetUiPlaylistSelected(first - 1); } } @@ -5275,6 +5277,7 @@ void CMusicPlayerDlg::OnMovePlaylistItemDown() m_pFloatPlaylistDlg->GetListCtrl().SetCurSel(first + 1, last + 1); m_pFloatPlaylistDlg->GetPlaylistItemSelected(); } + SetUiPlaylistSelected(first + 1); } }