aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Temminghoff <phil65@kodi.tv>2016-10-28 04:26:31 +0200
committerGitHub <noreply@github.com>2016-10-28 04:26:31 +0200
commit734e150c055a72a034d79a87081bb480dec55f0c (patch)
tree4df85c59d562c33bf0ba4b6fded704c51e845ce0
parente2333bfb6c2f8980abd6ccedcc06e986852c197c (diff)
parent3bc137777e49b4bc812c7fcda7c1f5e5c896b8eb (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.cpp21
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)
{