mirror of
https://github.com/zhongyang219/MusicPlayer2.git
synced 2026-10-21 08:20:02 +08:00
更正之前修改对媒体库列表全选的影响
This commit is contained in:
@@ -184,6 +184,9 @@ void CSelectPlaylistDlg::LeftListClicked(int index)
|
||||
str = m_playlist_ctrl.GetItemText(index, 0);
|
||||
m_row_selected = _ttoi(str) - 1;
|
||||
}
|
||||
m_right_selected_item = -1; // 点击左侧列表时清空右侧列表选中项
|
||||
m_right_selected_items.clear();
|
||||
m_song_list_ctrl.SelectNone();
|
||||
SetButtonsEnable();
|
||||
ShowSongList();
|
||||
}
|
||||
@@ -445,10 +448,10 @@ bool CSelectPlaylistDlg::SelectValid() const
|
||||
if (m_row_selected == 0 || m_row_selected == 1)
|
||||
return true;
|
||||
int index = m_row_selected - SPEC_PLAYLIST_NUM;
|
||||
int playlist_size{ static_cast<int>(CPlayer::GetInstance().GetRecentPlaylist().m_recent_playlists.size()) };
|
||||
int playlists_size{ static_cast<int>(CPlayer::GetInstance().GetRecentPlaylist().m_recent_playlists.size()) };
|
||||
// 对一般播放列表返回true,对临时播放列表仅当列表不为空时返回true
|
||||
return ((index >= 0 && index < playlist_size) ||
|
||||
(index == playlist_size && CPlayer::GetInstance().GetRecentPlaylist().m_temp_playlist.track_num > 0));
|
||||
return ((index >= 0 && index < playlists_size) ||
|
||||
(index == playlists_size && CPlayer::GetInstance().GetRecentPlaylist().m_temp_playlist.track_num > 0));
|
||||
}
|
||||
|
||||
PlaylistInfo CSelectPlaylistDlg::GetSelectedPlaylist() const
|
||||
@@ -629,8 +632,8 @@ void CSelectPlaylistDlg::OnDeletePlaylist()
|
||||
{
|
||||
// TODO: 在此添加命令处理程序代码
|
||||
int index{ m_row_selected - SPEC_PLAYLIST_NUM };
|
||||
int playlist_size{ static_cast<int>(CPlayer::GetInstance().GetRecentPlaylist().m_recent_playlists.size()) };
|
||||
if (index >= 0 && index < playlist_size)
|
||||
int playlists_size{ static_cast<int>(CPlayer::GetInstance().GetRecentPlaylist().m_recent_playlists.size()) };
|
||||
if (index >= 0 && index < playlists_size)
|
||||
{
|
||||
wstring playlist_path = CPlayer::GetInstance().GetRecentPlaylist().m_recent_playlists[index].path;
|
||||
if (playlist_path == CPlayer::GetInstance().GetPlaylistPath()) //如果删除的是正在播放的播放列表,则播放默认播放列表
|
||||
@@ -642,7 +645,7 @@ void CSelectPlaylistDlg::OnDeletePlaylist()
|
||||
ShowPathList();
|
||||
m_playlist_modified = true;
|
||||
}
|
||||
else if (index == playlist_size) // 删除的是临时播放列表
|
||||
else if (index == playlists_size) // 删除的是临时播放列表
|
||||
{
|
||||
if (CPlayer::GetInstance().GetRecentPlaylist().m_cur_playlist_type == PT_TEMP)
|
||||
{
|
||||
@@ -687,9 +690,9 @@ void CSelectPlaylistDlg::OnInitMenu(CMenu* pMenu)
|
||||
CMediaLibTabDlg::OnInitMenu(pMenu);
|
||||
|
||||
// TODO: 在此处添加消息处理程序代码
|
||||
auto playlist_size{ CPlayer::GetInstance().GetRecentPlaylist().m_recent_playlists.size() + SPEC_PLAYLIST_NUM };
|
||||
bool is_not_default_playlist{ m_row_selected > 1 && m_row_selected < playlist_size };
|
||||
bool is_tmp_playlist{ m_row_selected == playlist_size };
|
||||
int playlists_size{ static_cast<int>(CPlayer::GetInstance().GetRecentPlaylist().m_recent_playlists.size()) + SPEC_PLAYLIST_NUM };
|
||||
bool is_not_default_playlist{ m_row_selected > 1 && m_row_selected < playlists_size };
|
||||
bool is_tmp_playlist{ m_row_selected == playlists_size };
|
||||
pMenu->EnableMenuItem(ID_RENAME_PLAYLIST, MF_BYCOMMAND | (is_not_default_playlist ? MF_ENABLED : MF_GRAYED));
|
||||
pMenu->EnableMenuItem(ID_DELETE_PLAYLIST, MF_BYCOMMAND | (is_not_default_playlist || is_tmp_playlist ? MF_ENABLED : MF_GRAYED));
|
||||
pMenu->EnableMenuItem(ID_PLAY_PLAYLIST, MF_BYCOMMAND | (SelectedCanPlay() ? MF_ENABLED : MF_GRAYED));
|
||||
|
||||
@@ -143,6 +143,9 @@ void CFolderExploreDlg::FolderTreeClicked(HTREEITEM hItem)
|
||||
m_folder_path_selected = folder_path_selected;
|
||||
ShowSongList();
|
||||
}
|
||||
m_right_selected_item = -1; // 点击左侧列表时清空右侧列表选中项
|
||||
m_right_selected_items.clear();
|
||||
m_song_list_ctrl.SelectNone();
|
||||
SetButtonsEnable(CCommon::FolderExist(wstring(folder_path_selected)));
|
||||
}
|
||||
|
||||
|
||||
@@ -350,15 +350,16 @@ BOOL CListCtrlEx::PreTranslateMessage(MSG* pMsg)
|
||||
//if (pMsg->message == WM_KEYDOWN || pMsg->message == WM_CHAR) //屏蔽列表控件的键盘消息,防止每次按下一个键时列表选中行会出现讨厌的、难看的虚线框
|
||||
// return TRUE;
|
||||
|
||||
// 按Ctrl+A全选,由于需要在父窗口使用GetPlaylistItemSelected更新m_items_selected,此处仅发全选消息
|
||||
// 按Ctrl+A全选,向父窗口发送选中项更新消息
|
||||
if(m_enable_ctrl_a)
|
||||
{
|
||||
if ((GetKeyState(VK_CONTROL) & 0x80) && (pMsg->wParam == 'A'))
|
||||
{
|
||||
SelectAll();
|
||||
CWnd* pParent{ GetParent() };
|
||||
if (pParent != nullptr)
|
||||
{
|
||||
pParent->SendMessage(WM_COMMAND, ID_PLAYLIST_SELECT_ALL);
|
||||
pParent->SendMessage(WM_COMMAND, ID_PLAYLIST_SELECT_CHANGE);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -277,6 +277,9 @@ void CMediaClassifyDlg::ClassifyListClicked(int index)
|
||||
last_selected_index = index;
|
||||
last_selected_count = m_left_selected_items.size();
|
||||
}
|
||||
m_right_selected_item = -1; // 点击左侧列表时清空右侧列表选中项
|
||||
m_right_selected_items.clear();
|
||||
m_song_list_ctrl.SelectNone();
|
||||
|
||||
SetButtonsEnable(/*(index >= 0 && index < m_classify_list_ctrl.GetItemCount()) ||*/ !m_left_selected_items.empty());
|
||||
|
||||
|
||||
@@ -642,9 +642,8 @@ BOOL CMiniModeDlg::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
// TODO: 在此添加专用代码和/或调用基类
|
||||
WORD command = LOWORD(wParam);
|
||||
|
||||
if (command == ID_PLAYLIST_SELECT_ALL) // 处理播放列表ctrl+A触发的全选命令
|
||||
if (command == ID_PLAYLIST_SELECT_CHANGE) // 更新播放列表选中项
|
||||
{
|
||||
m_playlist_ctrl.SelectAll();
|
||||
GetPlaylistItemSelected();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1457,13 +1457,14 @@
|
||||
#define ID_USE_STANDARD_TITLE_BAR 33339
|
||||
#define ID_PLAYLIST_VIEW_ARTIST 33340
|
||||
#define ID_PLAYLIST_VIEW_ALBUM 33341
|
||||
#define ID_PLAYLIST_SELECT_CHANGE 33342
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 541
|
||||
#define _APS_NEXT_COMMAND_VALUE 33342
|
||||
#define _APS_NEXT_COMMAND_VALUE 33343
|
||||
#define _APS_NEXT_CONTROL_VALUE 1186
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user