aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/skin.estuary/xml/Home.xml16
-rw-r--r--xbmc/FileItem.cpp2
-rw-r--r--xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.cpp5
-rw-r--r--xbmc/pvr/dialogs/GUIDialogPVRGuideInfo.h2
-rw-r--r--xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.cpp6
-rw-r--r--xbmc/pvr/dialogs/GUIDialogPVRRecordingInfo.h2
-rw-r--r--xbmc/pvr/epg/EpgContainer.cpp12
-rw-r--r--xbmc/pvr/epg/EpgContainer.h8
-rw-r--r--xbmc/pvr/epg/EpgDatabase.cpp108
-rw-r--r--xbmc/pvr/epg/EpgDatabase.h11
-rw-r--r--xbmc/pvr/epg/EpgSearchPath.cpp3
-rw-r--r--xbmc/pvr/epg/EpgSearchPath.h2
-rw-r--r--xbmc/pvr/filesystem/PVRGUIDirectory.cpp2
-rw-r--r--xbmc/pvr/guilib/PVRGUIActions.cpp15
-rw-r--r--xbmc/pvr/windows/GUIWindowPVRSearch.cpp31
-rw-r--r--xbmc/pvr/windows/GUIWindowPVRSearch.h7
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();