diff options
Diffstat (limited to 'xbmc/video/windows/GUIWindowVideoBase.cpp')
-rw-r--r-- | xbmc/video/windows/GUIWindowVideoBase.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/xbmc/video/windows/GUIWindowVideoBase.cpp b/xbmc/video/windows/GUIWindowVideoBase.cpp index 13c1bd25d2..9a8fb77ff6 100644 --- a/xbmc/video/windows/GUIWindowVideoBase.cpp +++ b/xbmc/video/windows/GUIWindowVideoBase.cpp @@ -836,6 +836,8 @@ void CGUIWindowVideoBase::GetContextButtons(int itemNumber, CContextButtons &but } if (item->IsSmartPlayList() || m_vecItems->IsSmartPlayList()) buttons.Add(CONTEXT_BUTTON_EDIT_SMART_PLAYLIST, 586); + if (IsBlurayPlaylist(*item)) + buttons.Add(CONTEXT_BUTTON_CHOOSE_PLAYLIST, 13424); } } CGUIMediaWindow::GetContextButtons(itemNumber, buttons); @@ -892,6 +894,7 @@ bool CGUIWindowVideoBase::OnPlayStackPart(const std::shared_ptr<CFileItem>& item bool CGUIWindowVideoBase::OnContextButton(int itemNumber, CONTEXT_BUTTON button) { CFileItemPtr item; + m_forceSelection = false; if (itemNumber >= 0 && itemNumber < m_vecItems->Size()) item = m_vecItems->Get(itemNumber); switch (button) @@ -945,6 +948,11 @@ bool CGUIWindowVideoBase::OnContextButton(int itemNumber, CONTEXT_BUTTON button) return OnPlayAndQueueMedia(item); case CONTEXT_BUTTON_PLAY_ONLY_THIS: return OnPlayMedia(itemNumber); + case CONTEXT_BUTTON_CHOOSE_PLAYLIST: + { + m_forceSelection = true; + return OnPlayMedia(itemNumber); + } default: break; } @@ -982,7 +990,7 @@ bool CGUIWindowVideoBase::OnPlayMedia(const std::shared_ptr<CFileItem>& pItem, if (m_thumbLoader.IsLoading()) m_thumbLoader.StopAsync(); - CServiceBroker::GetPlaylistPlayer().Play(itemCopy, player); + CServiceBroker::GetPlaylistPlayer().Play(itemCopy, player, m_forceSelection); const auto& components = CServiceBroker::GetAppComponents(); const auto appPlayer = components.GetComponent<CApplicationPlayer>(); @@ -1118,6 +1126,8 @@ bool CGUIWindowVideoBase::PlayItem(const std::shared_ptr<CFileItem>& pItem, return true; } + m_forceSelection = false; + //! @todo get rid of "videos with versions as folder" hack! if (pItem->m_bIsFolder && !pItem->IsPlugin() && !(pItem->HasVideoInfoTag() && pItem->GetVideoInfoTag()->IsDefaultVideoVersion())) |