diff options
author | Philipp Temminghoff <phil65@kodi.tv> | 2016-10-28 04:26:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-28 04:26:31 +0200 |
commit | 734e150c055a72a034d79a87081bb480dec55f0c (patch) | |
tree | 4df85c59d562c33bf0ba4b6fded704c51e845ce0 | |
parent | e2333bfb6c2f8980abd6ccedcc06e986852c197c (diff) | |
parent | 3bc137777e49b4bc812c7fcda7c1f5e5c896b8eb (diff) |
Merge pull request #10776 from phil65/director_selectdialog
[gui] dialogvideoinfo: show selectdialog for directorbutton if amount of directors > 1
-rw-r--r-- | xbmc/video/dialogs/GUIDialogVideoInfo.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/xbmc/video/dialogs/GUIDialogVideoInfo.cpp b/xbmc/video/dialogs/GUIDialogVideoInfo.cpp index f473eaee4b..e2a834610a 100644 --- a/xbmc/video/dialogs/GUIDialogVideoInfo.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoInfo.cpp @@ -183,8 +183,25 @@ bool CGUIDialogVideoInfo::OnMessage(CGUIMessage& message) } else if (iControl == CONTROL_BTN_DIRECTOR) { - std::string strDirector = StringUtils::Join(m_movieItem->GetVideoInfoTag()->m_director, g_advancedSettings.m_videoItemSeparator); - OnSearch(strDirector); + auto directors = m_movieItem->GetVideoInfoTag()->m_director; + if (directors.size() == 0) + return true; + if (directors.size() == 1) + OnSearch(directors[0]); + else + { + auto pDlgSelect = static_cast<CGUIDialogSelect*>(g_windowManager.GetWindow(WINDOW_DIALOG_SELECT)); + pDlgSelect->Reset(); + pDlgSelect->SetHeading(CVariant{22080}); + for (const auto &director: directors) + pDlgSelect->Add(director); + pDlgSelect->Open(); + + int iItem = pDlgSelect->GetSelectedItem(); + if (iItem < 0) + return true; + OnSearch(directors[iItem]); + } } else if (iControl == CONTROL_LIST) { |