bool CGUIWindowMusicPlaylistEditor::OnContextButton(int itemNumber, CONTEXT_BUTTON button) { switch (button) { case CONTEXT_BUTTON_MOVE_ITEM_UP: OnMovePlaylistItem(GetCurrentPlaylistItem(), -1); return true; case CONTEXT_BUTTON_MOVE_ITEM_DOWN: OnMovePlaylistItem(GetCurrentPlaylistItem(), 1); return true; case CONTEXT_BUTTON_SAVE: OnSavePlaylist(); return true; case CONTEXT_BUTTON_CLEAR: ClearPlaylist(); return true; case CONTEXT_BUTTON_LOAD: OnLoadPlaylist(); return true; case CONTEXT_BUTTON_DELETE: OnDeletePlaylistItem(GetCurrentPlaylistItem()); return true; default: break; } return CGUIWindowMusicBase::OnContextButton(itemNumber, button); }
void CGUIWindowMusicPlaylistEditor::GetContextButtons(int itemNumber, CContextButtons &buttons) { CFileItemPtr item; if (itemNumber >= 0 && itemNumber < m_vecItems->Size()) item = m_vecItems->Get(itemNumber); if (GetFocusedControlID() == CONTROL_PLAYLIST) { int playlistItem = GetCurrentPlaylistItem(); if (playlistItem > 0) buttons.Add(CONTEXT_BUTTON_MOVE_ITEM_UP, 13332); if (playlistItem >= 0 && playlistItem < m_playlist->Size()) buttons.Add(CONTEXT_BUTTON_MOVE_ITEM_DOWN, 13333); if (playlistItem >= 0) buttons.Add(CONTEXT_BUTTON_DELETE, 1210); } else if (item && !item->IsParentFolder() && !m_vecItems->IsVirtualDirectoryRoot()) buttons.Add(CONTEXT_BUTTON_QUEUE_ITEM, 15019); if (m_playlist->Size()) { buttons.Add(CONTEXT_BUTTON_SAVE, 190); buttons.Add(CONTEXT_BUTTON_CLEAR, 192); } buttons.Add(CONTEXT_BUTTON_LOAD, 21385); }
void CGUIWindowMusicPlaylistEditor::OnPlaylistContext() { int item = GetCurrentPlaylistItem(); if (item >= 0) m_playlist->Get(item)->Select(true); if (!OnPopupMenu(-1) && item >= 0 && item < m_playlist->Size()) m_playlist->Get(item)->Select(false); }
bool CGUIWindowMusicPlaylistEditor::OnMessage(CGUIMessage& message) { switch ( message.GetMessage() ) { case GUI_MSG_WINDOW_DEINIT: if (m_thumbLoader.IsLoading()) m_thumbLoader.StopThread(); if (m_playlistThumbLoader.IsLoading()) m_playlistThumbLoader.StopThread(); CGUIWindowMusicBase::OnMessage(message); return true; case GUI_MSG_WINDOW_INIT: { if (m_vecItems->GetPath() == "?") m_vecItems->SetPath(""); CGUIWindowMusicBase::OnMessage(message); if (message.GetNumStringParams()) LoadPlaylist(message.GetStringParam()); return true; } break; case GUI_MSG_NOTIFY_ALL: { if (message.GetParam1()==GUI_MSG_REMOVED_MEDIA) DeleteRemoveableMediaDirectoryCache(); } break; case GUI_MSG_CLICKED: { int control = message.GetSenderId(); if (control == CONTROL_PLAYLIST) { int item = GetCurrentPlaylistItem(); int action = message.GetParam1(); if (action == ACTION_CONTEXT_MENU || action == ACTION_MOUSE_RIGHT_CLICK) OnPlaylistContext(); else if (action == ACTION_QUEUE_ITEM || action == ACTION_DELETE_ITEM || action == ACTION_MOUSE_MIDDLE_CLICK) OnDeletePlaylistItem(item); else if (action == ACTION_MOVE_ITEM_UP) OnMovePlaylistItem(item, -1); else if (action == ACTION_MOVE_ITEM_DOWN) OnMovePlaylistItem(item, 1); return true; } else if (control == CONTROL_LOAD_PLAYLIST) { // load a playlist OnLoadPlaylist(); return true; } else if (control == CONTROL_SAVE_PLAYLIST) { // save the playlist OnSavePlaylist(); return true; } else if (control == CONTROL_CLEAR_PLAYLIST) { // clear the playlist ClearPlaylist(); return true; } } break; } return CGUIWindowMusicBase::OnMessage(message); }