diff options
-rw-r--r-- | addons/skin.estuary/xml/Home.xml | 16 | ||||
-rw-r--r-- | xbmc/FileItem.cpp | 2 | ||||
-rw-r--r-- | xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.cpp | 5 | ||||
-rw-r--r-- | xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.h | 2 | ||||
-rw-r--r-- | xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.cpp | 6 | ||||
-rw-r--r-- | xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.h | 2 | ||||
-rw-r--r-- | xbmc/pvr/epg/EpgContainer.cpp | 12 | ||||
-rw-r--r-- | xbmc/pvr/epg/EpgContainer.h | 8 | ||||
-rw-r--r-- | xbmc/pvr/epg/EpgDatabase.cpp | 108 | ||||
-rw-r--r-- | xbmc/pvr/epg/EpgDatabase.h | 11 | ||||
-rw-r--r-- | xbmc/pvr/epg/EpgSearchPath.cpp | 3 | ||||
-rw-r--r-- | xbmc/pvr/epg/EpgSearchPath.h | 2 | ||||
-rw-r--r-- | xbmc/pvr/filesystem/PVRGUIDirectory.cpp | 2 | ||||
-rw-r--r-- | xbmc/pvr/guilib/PVRGUIActions.cpp | 15 | ||||
-rw-r--r-- | xbmc/pvr/windows/GUIWindowPVRSearch.cpp | 31 | ||||
-rw-r--r-- | xbmc/pvr/windows/GUIWindowPVRSearch.h | 7 |
16 files changed, 164 insertions, 68 deletions
diff --git a/addons/skin.estuary/xml/Home.xml b/addons/skin.estuary/xml/Home.xml index 41b2163d08..cdb2199f0a 100644 --- a/addons/skin.estuary/xml/Home.xml +++ b/addons/skin.estuary/xml/Home.xml @@ -410,6 +410,14 @@ <param name="list_id" value="12500"/> <param name="item_treshold" value="1"/> </include> + <include content="WidgetListPVR" condition="System.HasPVRAddon"> + <param name="content_path" value="pvr://search/tv/savedsearches"/> + <param name="sortorder" value="descending"/> + <param name="sortby" value="date"/> + <param name="widget_header" value="$LOCALIZE[19337]"/> + <param name="widget_target" value="tvsearch"/> + <param name="list_id" value="12600"/> + </include> </control> <include content="ImageWidget" condition="!System.HasPVRAddon"> <param name="text_label" value="$LOCALIZE[31143]" /> @@ -468,6 +476,14 @@ <param name="list_id" value="13500"/> <param name="item_treshold" value="1"/> </include> + <include content="WidgetListPVR" condition="System.HasPVRAddon"> + <param name="content_path" value="pvr://search/radio/savedsearches"/> + <param name="sortorder" value="descending"/> + <param name="sortby" value="date"/> + <param name="widget_header" value="$LOCALIZE[19337]"/> + <param name="widget_target" value="radiosearch"/> + <param name="list_id" value="13600"/> + </include> </control> <include content="ImageWidget" condition="!System.HasPVRAddon"> <param name="text_label" value="$LOCALIZE[31143]" /> diff --git a/xbmc/FileItem.cpp b/xbmc/FileItem.cpp index 172d0c491f..3c97d90ce6 100644 --- a/xbmc/FileItem.cpp +++ b/xbmc/FileItem.cpp @@ -201,7 +201,7 @@ CFileItem::CFileItem(const std::shared_ptr<PVR::CPVREpgSearchFilter>& filter) { Initialize(); - m_bIsFolder = false; + m_bIsFolder = true; m_epgSearchFilter = filter; m_strPath = filter->GetPath(); SetLabel(filter->GetTitle()); diff --git a/xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.cpp b/xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.cpp index 5a1506bdb1..e37d4a6f34 100644 --- a/xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.cpp +++ b/xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.cpp @@ -247,8 +247,3 @@ void CGUIDialogPVRGuideInfo::OnInitWindow() if (bHideSetReminder) SET_CONTROL_HIDDEN(CONTROL_BTN_SET_REMINDER); } - -void CGUIDialogPVRGuideInfo::ShowFor(const CFileItemPtr& item) -{ - CServiceBroker::GetPVRManager().GUIActions()->ShowEPGInfo(item); -} diff --git a/xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.h b/xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.h index fe0de207c1..1f38865bf0 100644 --- a/xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.h +++ b/xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.h @@ -30,8 +30,6 @@ namespace PVR void SetProgInfo(const std::shared_ptr<CPVREpgInfoTag>& tag); - static void ShowFor(const CFileItemPtr& item); - protected: void OnInitWindow() override; diff --git a/xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.cpp b/xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.cpp index fa69c622ed..963f34787b 100644 --- a/xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.cpp +++ b/xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.cpp @@ -101,9 +101,3 @@ CFileItemPtr CGUIDialogPVRRecordingInfo::GetCurrentListItem(int offset) { return m_recordItem; } - -void CGUIDialogPVRRecordingInfo::ShowFor(const CFileItemPtr& item) -{ - CServiceBroker::GetPVRManager().GUIActions()->ShowRecordingInfo(item); -} - diff --git a/xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.h b/xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.h index 99c11ceb7e..7f371f91f4 100644 --- a/xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.h +++ b/xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.h @@ -27,8 +27,6 @@ namespace PVR void SetRecording(const CFileItem* item); - static void ShowFor(const CFileItemPtr& item); - private: bool OnClickButtonFind(CGUIMessage& message); bool OnClickButtonOK(CGUIMessage& message); diff --git a/xbmc/pvr/epg/EpgContainer.cpp b/xbmc/pvr/epg/EpgContainer.cpp index f41cf8bf4d..aa9223b5a3 100644 --- a/xbmc/pvr/epg/EpgContainer.cpp +++ b/xbmc/pvr/epg/EpgContainer.cpp @@ -971,6 +971,18 @@ std::vector<std::shared_ptr<CPVREpgSearchFilter>> CPVREpgContainer::GetSavedSear return database->GetSavedSearches(bRadio); } +std::shared_ptr<CPVREpgSearchFilter> CPVREpgContainer::GetSavedSearchById(bool bRadio, int iId) +{ + const std::shared_ptr<CPVREpgDatabase> database = GetEpgDatabase(); + if (!database) + { + CLog::LogF(LOGERROR, "No EPG database"); + return {}; + } + + return database->GetSavedSearchById(bRadio, iId); +} + bool CPVREpgContainer::PersistSavedSearch(CPVREpgSearchFilter& search) { const std::shared_ptr<CPVREpgDatabase> database = GetEpgDatabase(); diff --git a/xbmc/pvr/epg/EpgContainer.h b/xbmc/pvr/epg/EpgContainer.h index 71e5a0c376..90df6d3eb3 100644 --- a/xbmc/pvr/epg/EpgContainer.h +++ b/xbmc/pvr/epg/EpgContainer.h @@ -231,6 +231,14 @@ namespace PVR std::vector<std::shared_ptr<CPVREpgSearchFilter>> GetSavedSearches(bool bRadio); /*! + * @brief Get the saved search matching the given id. + * @param bRadio Whether to fetch a TV or radio saved search. + * @param iId The id. + * @return The saved search or nullptr if not found. + */ + std::shared_ptr<CPVREpgSearchFilter> GetSavedSearchById(bool bRadio, int iId); + + /*! * @brief Persist a saved search in the database. * @param search The saved search. * @return True on success, false otherwise. diff --git a/xbmc/pvr/epg/EpgDatabase.cpp b/xbmc/pvr/epg/EpgDatabase.cpp index 4b7918a152..33f19c1454 100644 --- a/xbmc/pvr/epg/EpgDatabase.cpp +++ b/xbmc/pvr/epg/EpgDatabase.cpp @@ -1229,6 +1229,52 @@ int CPVREpgDatabase::GetLastEPGId() /********** Saved searches methods **********/ +std::shared_ptr<CPVREpgSearchFilter> CPVREpgDatabase::CreateEpgSearchFilter( + bool bRadio, const std::unique_ptr<dbiplus::Dataset>& pDS) +{ + if (!pDS->eof()) + { + const auto newSearch = std::make_shared<CPVREpgSearchFilter>(bRadio); + + newSearch->SetDatabaseId(m_pDS->fv("idSearch").get_asInt()); + newSearch->SetTitle(m_pDS->fv("sTitle").get_asString()); + + const std::string lastExec = m_pDS->fv("sLastExecutedDateTime").get_asString(); + if (!lastExec.empty()) + newSearch->SetLastExecutedDateTime(CDateTime::FromDBDateTime(lastExec)); + + newSearch->SetSearchTerm(m_pDS->fv("sSearchTerm").get_asString()); + newSearch->SetSearchInDescription(m_pDS->fv("bSearchInDescription").get_asBool()); + newSearch->SetGenreType(m_pDS->fv("iGenreType").get_asInt()); + + const std::string start = m_pDS->fv("sStartDateTime").get_asString(); + if (!start.empty()) + newSearch->SetStartDateTime(CDateTime::FromDBDateTime(start)); + + const std::string end = m_pDS->fv("sEndDateTime").get_asString(); + if (!end.empty()) + newSearch->SetEndDateTime(CDateTime::FromDBDateTime(end)); + + newSearch->SetCaseSensitive(m_pDS->fv("bIsCaseSensitive").get_asBool()); + newSearch->SetMinimumDuration(m_pDS->fv("iMinimumDuration").get_asInt()); + newSearch->SetMaximumDuration(m_pDS->fv("iMaximumDuration").get_asInt()); + newSearch->SetClientID(m_pDS->fv("iClientId").get_asInt()); + newSearch->SetChannelUID(m_pDS->fv("iChannelUid").get_asInt()); + newSearch->SetIncludeUnknownGenres(m_pDS->fv("bIncludeUnknownGenres").get_asBool()); + newSearch->SetRemoveDuplicates(m_pDS->fv("bRemoveDuplicates").get_asBool()); + newSearch->SetIgnoreFinishedBroadcasts(m_pDS->fv("bIgnoreFinishedBroadcasts").get_asBool()); + newSearch->SetIgnoreFutureBroadcasts(m_pDS->fv("bIgnoreFutureBroadcasts").get_asBool()); + newSearch->SetFreeToAirOnly(m_pDS->fv("bFreeToAirOnly").get_asBool()); + newSearch->SetIgnorePresentTimers(m_pDS->fv("bIgnorePresentTimers").get_asBool()); + newSearch->SetIgnorePresentRecordings(m_pDS->fv("bIgnorePresentRecordings").get_asBool()); + + newSearch->SetChanged(false); + + return newSearch; + } + return {}; +} + std::vector<std::shared_ptr<CPVREpgSearchFilter>> CPVREpgDatabase::GetSavedSearches(bool bRadio) { std::vector<std::shared_ptr<CPVREpgSearchFilter>> result; @@ -1242,44 +1288,7 @@ std::vector<std::shared_ptr<CPVREpgSearchFilter>> CPVREpgDatabase::GetSavedSearc { while (!m_pDS->eof()) { - const auto newSearch = std::make_shared<CPVREpgSearchFilter>(bRadio); - - newSearch->SetDatabaseId(m_pDS->fv("idSearch").get_asInt()); - newSearch->SetTitle(m_pDS->fv("sTitle").get_asString()); - - const std::string lastExec = m_pDS->fv("sLastExecutedDateTime").get_asString(); - if (!lastExec.empty()) - newSearch->SetLastExecutedDateTime(CDateTime::FromDBDateTime(lastExec)); - - newSearch->SetSearchTerm(m_pDS->fv("sSearchTerm").get_asString()); - newSearch->SetSearchInDescription(m_pDS->fv("bSearchInDescription").get_asBool()); - newSearch->SetGenreType(m_pDS->fv("iGenreType").get_asInt()); - - const std::string start = m_pDS->fv("sStartDateTime").get_asString(); - if (!start.empty()) - newSearch->SetStartDateTime(CDateTime::FromDBDateTime(start)); - - const std::string end = m_pDS->fv("sEndDateTime").get_asString(); - if (!end.empty()) - newSearch->SetEndDateTime(CDateTime::FromDBDateTime(end)); - - newSearch->SetCaseSensitive(m_pDS->fv("bIsCaseSensitive").get_asBool()); - newSearch->SetMinimumDuration(m_pDS->fv("iMinimumDuration").get_asInt()); - newSearch->SetMaximumDuration(m_pDS->fv("iMaximumDuration").get_asInt()); - newSearch->SetClientID(m_pDS->fv("iClientId").get_asInt()); - newSearch->SetChannelUID(m_pDS->fv("iChannelUid").get_asInt()); - newSearch->SetIncludeUnknownGenres(m_pDS->fv("bIncludeUnknownGenres").get_asBool()); - newSearch->SetRemoveDuplicates(m_pDS->fv("bRemoveDuplicates").get_asBool()); - newSearch->SetIgnoreFinishedBroadcasts(m_pDS->fv("bIgnoreFinishedBroadcasts").get_asBool()); - newSearch->SetIgnoreFutureBroadcasts(m_pDS->fv("bIgnoreFutureBroadcasts").get_asBool()); - newSearch->SetFreeToAirOnly(m_pDS->fv("bFreeToAirOnly").get_asBool()); - newSearch->SetIgnorePresentTimers(m_pDS->fv("bIgnorePresentTimers").get_asBool()); - newSearch->SetIgnorePresentRecordings(m_pDS->fv("bIgnorePresentRecordings").get_asBool()); - - newSearch->SetChanged(false); - - result.emplace_back(newSearch); - + result.emplace_back(CreateEpgSearchFilter(bRadio, m_pDS)); m_pDS->next(); } m_pDS->close(); @@ -1292,6 +1301,29 @@ std::vector<std::shared_ptr<CPVREpgSearchFilter>> CPVREpgDatabase::GetSavedSearc return result; } +std::shared_ptr<CPVREpgSearchFilter> CPVREpgDatabase::GetSavedSearchById(bool bRadio, int iId) +{ + CSingleLock lock(m_critSection); + const std::string strQuery = + PrepareSQL("SELECT * FROM savedsearches WHERE bIsRadio = %u AND idSearch = %u;", bRadio, iId); + + if (ResultQuery(strQuery)) + { + try + { + const std::shared_ptr<CPVREpgSearchFilter> filter = CreateEpgSearchFilter(bRadio, m_pDS); + m_pDS->close(); + return filter; + } + catch (...) + { + CLog::LogF(LOGERROR, "Could not load EPG search filter with id ({}) from the database", iId); + } + } + + return {}; +} + bool CPVREpgDatabase::Persist(CPVREpgSearchFilter& epgSearch) { CSingleLock lock(m_critSection); diff --git a/xbmc/pvr/epg/EpgDatabase.h b/xbmc/pvr/epg/EpgDatabase.h index b1fe0bb724..0d823feeb1 100644 --- a/xbmc/pvr/epg/EpgDatabase.h +++ b/xbmc/pvr/epg/EpgDatabase.h @@ -306,6 +306,14 @@ namespace PVR std::vector<std::shared_ptr<CPVREpgSearchFilter>> GetSavedSearches(bool bRadio); /*! + * @brief Get the saved search matching the given id. + * @param bRadio Whether to fetch a TV or radio saved search. + * @param iId The id. + * @return The saved search or nullptr if not found. + */ + std::shared_ptr<CPVREpgSearchFilter> GetSavedSearchById(bool bRadio, int iId); + + /*! * @brief Persist a search. * @param epgSearch The search. * @return True on success, false otherwise. @@ -355,6 +363,9 @@ namespace PVR std::shared_ptr<CPVREpgInfoTag> CreateEpgTag(const std::unique_ptr<dbiplus::Dataset>& pDS); + std::shared_ptr<CPVREpgSearchFilter> CreateEpgSearchFilter( + bool bRadio, const std::unique_ptr<dbiplus::Dataset>& pDS); + CCriticalSection m_critSection; }; } diff --git a/xbmc/pvr/epg/EpgSearchPath.cpp b/xbmc/pvr/epg/EpgSearchPath.cpp index 6b3cbc7830..9b24e10695 100644 --- a/xbmc/pvr/epg/EpgSearchPath.cpp +++ b/xbmc/pvr/epg/EpgSearchPath.cpp @@ -12,6 +12,7 @@ #include "utils/StringUtils.h" #include "utils/URIUtils.h" +#include <cstdlib> #include <string> #include <vector> @@ -56,6 +57,8 @@ bool CPVREpgSearchPath::Init(const std::string& strPath) m_bSavedSearchesRoot = (m_bValid && (segments.size() == 4) && (segments.at(3) == "savedsearches")); m_bSavedSearch = (m_bValid && (segments.size() == 5)); + if (m_bSavedSearch) + m_iId = std::stoi(segments.at(4)); return m_bValid; } diff --git a/xbmc/pvr/epg/EpgSearchPath.h b/xbmc/pvr/epg/EpgSearchPath.h index b1bfeef500..559a3c6ad5 100644 --- a/xbmc/pvr/epg/EpgSearchPath.h +++ b/xbmc/pvr/epg/EpgSearchPath.h @@ -33,6 +33,7 @@ public: bool IsRadio() const { return m_bRadio; } bool IsSavedSearchesRoot() const { return m_bSavedSearchesRoot; } bool IsSavedSearch() const { return m_bSavedSearch; } + int GetId() const { return m_iId; } private: bool Init(const std::string& strPath); @@ -43,5 +44,6 @@ private: bool m_bRadio = false; bool m_bSavedSearchesRoot = false; bool m_bSavedSearch = false; + int m_iId = -1; }; } // namespace PVR diff --git a/xbmc/pvr/filesystem/PVRGUIDirectory.cpp b/xbmc/pvr/filesystem/PVRGUIDirectory.cpp index d92b62081f..c49fbe33c0 100644 --- a/xbmc/pvr/filesystem/PVRGUIDirectory.cpp +++ b/xbmc/pvr/filesystem/PVRGUIDirectory.cpp @@ -221,7 +221,7 @@ bool CPVRGUIDirectory::GetDirectory(CFileItemList& results) const { if (path.IsSavedSearchesRoot()) return GetSavedSearchesDirectory(path.IsRadio(), results); - else if (path.IsSearchRoot()) + else return true; // handled by search window } diff --git a/xbmc/pvr/guilib/PVRGUIActions.cpp b/xbmc/pvr/guilib/PVRGUIActions.cpp index 91e97e3bda..5d631e5774 100644 --- a/xbmc/pvr/guilib/PVRGUIActions.cpp +++ b/xbmc/pvr/guilib/PVRGUIActions.cpp @@ -2631,13 +2631,15 @@ namespace PVR { if (item->HasPVRRecordingInfoTag()) { - CGUIDialogPVRRecordingInfo::ShowFor(item); - return true; + return ShowRecordingInfo(item); } else if (item->HasPVRChannelInfoTag() || item->HasPVRTimerInfoTag()) { - CGUIDialogPVRGuideInfo::ShowFor(item); - return true; + return ShowEPGInfo(item); + } + else if (item->HasEPGSearchFilter()) + { + return EditSavedSearch(item); } return false; } @@ -2657,6 +2659,7 @@ namespace PVR return false; windowSearch->SetItemToSearch(item); + CServiceBroker::GetGUI()->GetWindowManager().ActivateWindow(windowSearch->GetID()); return true; } @@ -2674,7 +2677,9 @@ namespace PVR if (!windowSearch) return false; - windowSearch->OpenDialogSearch(item); + if (windowSearch->OpenDialogSearch(item) == CGUIDialogPVRGuideSearch::Result::SEARCH) + CServiceBroker::GetGUI()->GetWindowManager().ActivateWindow(windowSearch->GetID()); + return true; } diff --git a/xbmc/pvr/windows/GUIWindowPVRSearch.cpp b/xbmc/pvr/windows/GUIWindowPVRSearch.cpp index e4b3cf84ad..a38ed2a324 100644 --- a/xbmc/pvr/windows/GUIWindowPVRSearch.cpp +++ b/xbmc/pvr/windows/GUIWindowPVRSearch.cpp @@ -225,6 +225,7 @@ bool CGUIWindowPVRSearchBase::OnMessage(CGUIMessage& message) { const CPVREpgSearchPath path(pItem->GetPath()); const bool bIsSavedSearch = (path.IsValid() && path.IsSavedSearch()); + const bool bIsSavedSearchesRoot = (path.IsValid() && path.IsSavedSearchesRoot()); if (message.GetParam1() != ACTION_SHOW_INFO) { @@ -235,7 +236,7 @@ bool CGUIWindowPVRSearchBase::OnMessage(CGUIMessage& message) break; // handled by base class } - if (pItem->m_bIsFolder) + if (bIsSavedSearchesRoot) { // List saved searches m_bSearchConfirmed = false; @@ -308,6 +309,21 @@ bool CGUIWindowPVRSearchBase::OnMessage(CGUIMessage& message) } } } + else if (message.GetMessage() == GUI_MSG_WINDOW_INIT) + { + const CPVREpgSearchPath path(message.GetStringParam(0)); + if (path.IsValid() && path.IsSavedSearch()) + { + const std::shared_ptr<CPVREpgSearchFilter> filter = + CServiceBroker::GetPVRManager().EpgContainer().GetSavedSearchById(path.IsRadio(), + path.GetId()); + if (filter) + { + SetSearchFilter(filter); + m_bSearchConfirmed = true; + } + } + } return CGUIWindowPVRBase::OnMessage(message); } @@ -384,16 +400,17 @@ bool CGUIWindowPVRSearchBase::OnContextButtonClear(CFileItem* item, CONTEXT_BUTT return bReturn; } -void CGUIWindowPVRSearchBase::OpenDialogSearch(const std::shared_ptr<CFileItem>& item) +CGUIDialogPVRGuideSearch::Result CGUIWindowPVRSearchBase::OpenDialogSearch( + const std::shared_ptr<CFileItem>& item) { const auto searchFilter = item->GetEPGSearchFilter(); if (!searchFilter) - return; + return CGUIDialogPVRGuideSearch::Result::CANCEL; - OpenDialogSearch(searchFilter); + return OpenDialogSearch(searchFilter); } -void CGUIWindowPVRSearchBase::OpenDialogSearch( +CGUIDialogPVRGuideSearch::Result CGUIWindowPVRSearchBase::OpenDialogSearch( const std::shared_ptr<CPVREpgSearchFilter>& searchFilter) { CGUIDialogPVRGuideSearch* dlgSearch = @@ -401,7 +418,7 @@ void CGUIWindowPVRSearchBase::OpenDialogSearch( WINDOW_DIALOG_PVR_GUIDE_SEARCH); if (!dlgSearch) - return; + return CGUIDialogPVRGuideSearch::Result::CANCEL; const std::shared_ptr<CPVREpgSearchFilter> tmpSearchFilter = searchFilter != nullptr ? std::make_shared<CPVREpgSearchFilter>(*searchFilter) @@ -430,6 +447,8 @@ void CGUIWindowPVRSearchBase::OpenDialogSearch( ExecuteSearch(); } } + + return result; } void CGUIWindowPVRSearchBase::ExecuteSearch() diff --git a/xbmc/pvr/windows/GUIWindowPVRSearch.h b/xbmc/pvr/windows/GUIWindowPVRSearch.h index 8a9c12b175..4e949c6801 100644 --- a/xbmc/pvr/windows/GUIWindowPVRSearch.h +++ b/xbmc/pvr/windows/GUIWindowPVRSearch.h @@ -9,6 +9,7 @@ #pragma once #include "dialogs/GUIDialogContextMenu.h" +#include "pvr/dialogs/GUIDialogPVRGuideSearch.h" #include "pvr/windows/GUIWindowPVRBase.h" #include <memory> @@ -42,8 +43,9 @@ namespace PVR /*! * @brief Open the search dialog for the given search filter item. * @param item the epg search filter. + * @return The result of the dialog */ - void OpenDialogSearch(const std::shared_ptr<CFileItem>& item); + CGUIDialogPVRGuideSearch::Result OpenDialogSearch(const std::shared_ptr<CFileItem>& item); protected: void OnPrepareFileItems(CFileItemList& items) override; @@ -51,7 +53,8 @@ namespace PVR private: bool OnContextButtonClear(CFileItem* item, CONTEXT_BUTTON button); - void OpenDialogSearch(const std::shared_ptr<CPVREpgSearchFilter>& searchFilter); + CGUIDialogPVRGuideSearch::Result OpenDialogSearch( + const std::shared_ptr<CPVREpgSearchFilter>& searchFilter); void ExecuteSearch(); |