aboutsummaryrefslogtreecommitdiff
path: root/xbmc/video/windows/GUIWindowVideoBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/video/windows/GUIWindowVideoBase.cpp')
-rw-r--r--xbmc/video/windows/GUIWindowVideoBase.cpp12
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()))