mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-11 15:41:00 +02:00
CEventFinderMenu -add epg search history
Origin commit data
------------------
Commit: 4f387ae87f
Author: Jacek Jendrzej <overx300@gmail.com>
Date: 2013-11-26 (Tue, 26 Nov 2013)
This commit is contained in:
@@ -327,7 +327,9 @@ epgviewer.length Spieldauer (Min.)
|
|||||||
epgviewer.nodetailed Keine ausführlichen Informationen verfügbar
|
epgviewer.nodetailed Keine ausführlichen Informationen verfügbar
|
||||||
epgviewer.notfound Keine Programminformationen (EPG) gefunden
|
epgviewer.notfound Keine Programminformationen (EPG) gefunden
|
||||||
eventfinder.head EPG-Suche
|
eventfinder.head EPG-Suche
|
||||||
|
eventfinder.history Frühere Suchen
|
||||||
eventfinder.keyword Suche nach Textpassage
|
eventfinder.keyword Suche nach Textpassage
|
||||||
|
eventfinder.max_history Max. Anzahl früherer Suchen
|
||||||
eventfinder.search Suche
|
eventfinder.search Suche
|
||||||
eventfinder.search_all_epg Ganze
|
eventfinder.search_all_epg Ganze
|
||||||
eventfinder.search_within_epg Suche innerhalb EPG-Daten
|
eventfinder.search_within_epg Suche innerhalb EPG-Daten
|
||||||
|
@@ -327,7 +327,9 @@ epgviewer.length Length (min.)
|
|||||||
epgviewer.nodetailed No detailed informations available
|
epgviewer.nodetailed No detailed informations available
|
||||||
epgviewer.notfound No EPG found
|
epgviewer.notfound No EPG found
|
||||||
eventfinder.head Search in EPG
|
eventfinder.head Search in EPG
|
||||||
|
eventfinder.history Search history
|
||||||
eventfinder.keyword Keyword
|
eventfinder.keyword Keyword
|
||||||
|
eventfinder.max_history Max results to fetch
|
||||||
eventfinder.search Search
|
eventfinder.search Search
|
||||||
eventfinder.search_all_epg whole
|
eventfinder.search_all_epg whole
|
||||||
eventfinder.search_within_epg Search within
|
eventfinder.search_within_epg Search within
|
||||||
|
@@ -71,6 +71,7 @@ inline static bool sortbyEventid (const CChannelEvent& a, const CChannelEvent& b
|
|||||||
return (a.channelID == b.channelID && a.eventID == b.eventID && a.startTime == b.startTime);
|
return (a.channelID == b.channelID && a.eventID == b.eventID && a.startTime == b.startTime);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline bool sortByDescription (const CChannelEvent& a, const CChannelEvent& b)
|
inline bool sortByDescription (const CChannelEvent& a, const CChannelEvent& b)
|
||||||
{
|
{
|
||||||
if(a.description == b.description)
|
if(a.description == b.description)
|
||||||
@@ -1126,6 +1127,22 @@ bool CNeutrinoEventList::findEvents(void)
|
|||||||
search_head_name += ": '";
|
search_head_name += ": '";
|
||||||
search_head_name += m_search_keyword;
|
search_head_name += m_search_keyword;
|
||||||
search_head_name += "'";
|
search_head_name += "'";
|
||||||
|
|
||||||
|
if(!m_search_keyword.empty()){
|
||||||
|
g_settings.epg_search_history.push_front(m_search_keyword);
|
||||||
|
std::list<std::string>::iterator it = g_settings.epg_search_history.begin();
|
||||||
|
it++;
|
||||||
|
while (it != g_settings.epg_search_history.end()) {
|
||||||
|
if (*it == m_search_keyword)
|
||||||
|
it = g_settings.epg_search_history.erase(it);
|
||||||
|
else
|
||||||
|
++it;
|
||||||
|
}
|
||||||
|
g_settings.epg_search_history_size = g_settings.epg_search_history.size();
|
||||||
|
if (g_settings.epg_search_history_size > g_settings.epg_search_history_max)
|
||||||
|
g_settings.epg_search_history_size = g_settings.epg_search_history_max;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
paintHead(0, search_head_name);
|
paintHead(0, search_head_name);
|
||||||
paint();
|
paint();
|
||||||
@@ -1198,6 +1215,8 @@ CEventFinderMenu::CEventFinderMenu( int* event,
|
|||||||
m_search_list = search_list;
|
m_search_list = search_list;
|
||||||
m_search_channel_id = search_channel_id;
|
m_search_channel_id = search_channel_id;
|
||||||
m_search_bouquet_id = search_bouquet_id;
|
m_search_bouquet_id = search_bouquet_id;
|
||||||
|
width = w_max (40, 10);
|
||||||
|
selected = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1214,34 +1233,13 @@ int CEventFinderMenu::exec(CMenuTarget* parent, const std::string &actionkey)
|
|||||||
//printf("0\n");
|
//printf("0\n");
|
||||||
showMenu();
|
showMenu();
|
||||||
}
|
}
|
||||||
else if(actionkey =="1")
|
else if(actionkey =="#1")
|
||||||
{
|
{
|
||||||
//printf("1\n");
|
//printf("1\n");
|
||||||
*m_event = true;
|
*m_event = true;
|
||||||
res = menu_return::RETURN_EXIT_ALL;
|
res = menu_return::RETURN_EXIT_ALL;
|
||||||
}
|
}
|
||||||
else if(actionkey =="2")
|
else if(actionkey =="#2")
|
||||||
{
|
|
||||||
//printf("2\n");
|
|
||||||
/*
|
|
||||||
if(*m_search_list == CNeutrinoEventList::SEARCH_LIST_CHANNEL)
|
|
||||||
{
|
|
||||||
mf[1]->setActive(true);
|
|
||||||
m_search_channelname = CServiceManager::getInstance()->GetServiceName(*m_search_channel_id);;
|
|
||||||
}
|
|
||||||
else if(*m_search_list == CNeutrinoEventList::SEARCH_LIST_BOUQUET)
|
|
||||||
{
|
|
||||||
mf[1]->setActive(true);
|
|
||||||
m_search_channelname = bouquetList->Bouquets[*m_search_bouquet_id]->channelList->getName();
|
|
||||||
}
|
|
||||||
else if(*m_search_list == CNeutrinoEventList::SEARCH_LIST_ALL)
|
|
||||||
{
|
|
||||||
mf[1]->setActive(false);
|
|
||||||
m_search_channelname = "";
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
else if(actionkey =="3")
|
|
||||||
{
|
{
|
||||||
//printf("3\n");
|
//printf("3\n");
|
||||||
// get channel id / bouquet id
|
// get channel id / bouquet id
|
||||||
@@ -1275,9 +1273,38 @@ int CEventFinderMenu::exec(CMenuTarget* parent, const std::string &actionkey)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(actionkey =="4")
|
else if(actionkey =="#history")
|
||||||
{
|
{
|
||||||
//printf("4\n");
|
|
||||||
|
if (parent)
|
||||||
|
parent->hide();
|
||||||
|
CMenuWidget* m = new CMenuWidget(LOCALE_EVENTFINDER_HISTORY, NEUTRINO_ICON_MOVIEPLAYER, width);
|
||||||
|
m->addKey(CRCInput::RC_spkr, this, "#clear");
|
||||||
|
m->setSelected(selected);
|
||||||
|
m->addItem(GenericMenuSeparator);
|
||||||
|
m->addItem(GenericMenuBack);
|
||||||
|
m->addItem(GenericMenuSeparatorLine);
|
||||||
|
std::list<std::string>::iterator it = g_settings.epg_search_history.begin();
|
||||||
|
for (int i = 0; i < g_settings.epg_search_history_size; i++, ++it)
|
||||||
|
m->addItem(new CMenuForwarderNonLocalized((*it).c_str(), true, NULL, this, (*it).c_str(), CRCInput::convertDigitToKey(i + 1)));
|
||||||
|
m->exec(NULL, "");
|
||||||
|
m->hide();
|
||||||
|
delete m;
|
||||||
|
return menu_return::RETURN_REPAINT;
|
||||||
|
}
|
||||||
|
if (actionkey == "#clear") {
|
||||||
|
g_settings.epg_search_history.clear();
|
||||||
|
g_settings.epg_search_history_size = 0;
|
||||||
|
return menu_return::RETURN_EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::list<std::string>::iterator it = g_settings.epg_search_history.begin();
|
||||||
|
for (int i = 0; i < g_settings.epg_search_history_size; i++, ++it){
|
||||||
|
if((*it)== actionkey){
|
||||||
|
*m_search_keyword = actionkey;
|
||||||
|
g_RCInput->postMsg((neutrino_msg_t) CRCInput::RC_blue, 0);
|
||||||
|
return menu_return::RETURN_EXIT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
@@ -1316,12 +1343,16 @@ int CEventFinderMenu::showMenu(void)
|
|||||||
|
|
||||||
CMenuForwarder* mf0 = new CMenuForwarder(LOCALE_EVENTFINDER_KEYWORD, true, *m_search_keyword, &stringInput, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
|
CMenuForwarder* mf0 = new CMenuForwarder(LOCALE_EVENTFINDER_KEYWORD, true, *m_search_keyword, &stringInput, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
|
||||||
CMenuOptionChooser* mo0 = new CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_LIST, m_search_list, SEARCH_LIST_OPTIONS, SEARCH_LIST_OPTION_COUNT, true, this, CRCInput::convertDigitToKey(shortcut++));
|
CMenuOptionChooser* mo0 = new CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_LIST, m_search_list, SEARCH_LIST_OPTIONS, SEARCH_LIST_OPTION_COUNT, true, this, CRCInput::convertDigitToKey(shortcut++));
|
||||||
m_search_channelname_mf = new CMenuForwarderNonLocalized("", *m_search_list != CNeutrinoEventList::SEARCH_LIST_ALL, m_search_channelname, this, "3", CRCInput::convertDigitToKey(shortcut++));
|
m_search_channelname_mf = new CMenuForwarderNonLocalized("", *m_search_list != CNeutrinoEventList::SEARCH_LIST_ALL, m_search_channelname, this, "#2", CRCInput::convertDigitToKey(shortcut++));
|
||||||
CMenuOptionChooser* mo1 = new CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_EPG, m_search_epg_item, SEARCH_EPG_OPTIONS, SEARCH_EPG_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++));
|
CMenuOptionChooser* mo1 = new CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_EPG, m_search_epg_item, SEARCH_EPG_OPTIONS, SEARCH_EPG_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++));
|
||||||
CMenuForwarder* mf1 = new CMenuForwarder(LOCALE_EVENTFINDER_START_SEARCH, true, NULL, this, "1", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
|
CMenuForwarder* mf1 = new CMenuForwarder(LOCALE_EVENTFINDER_START_SEARCH, true, NULL, this, "#1", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
|
||||||
|
|
||||||
CMenuWidget searchMenu(LOCALE_EVENTFINDER_HEAD, NEUTRINO_ICON_FEATURES, 40);
|
CMenuWidget searchMenu(LOCALE_EVENTFINDER_HEAD, NEUTRINO_ICON_FEATURES, 40);
|
||||||
|
|
||||||
|
CMenuForwarder* mf2 = new CMenuForwarder(LOCALE_EVENTFINDER_HISTORY, true, NULL, this, "#history", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW);
|
||||||
|
CMenuOptionNumberChooser* moc1 = new CMenuOptionNumberChooser(LOCALE_EVENTFINDER_MAX_HISTORY, &g_settings.epg_search_history_max, true, 0, 50, NULL);
|
||||||
|
searchMenu.addItem(GenericMenuSeparatorLine);
|
||||||
|
|
||||||
searchMenu.addItem(GenericMenuSeparator);
|
searchMenu.addItem(GenericMenuSeparator);
|
||||||
searchMenu.addItem(mf0);
|
searchMenu.addItem(mf0);
|
||||||
searchMenu.addItem(GenericMenuSeparatorLine);
|
searchMenu.addItem(GenericMenuSeparatorLine);
|
||||||
@@ -1330,6 +1361,9 @@ int CEventFinderMenu::showMenu(void)
|
|||||||
searchMenu.addItem(mo1);
|
searchMenu.addItem(mo1);
|
||||||
searchMenu.addItem(GenericMenuSeparatorLine);
|
searchMenu.addItem(GenericMenuSeparatorLine);
|
||||||
searchMenu.addItem(mf1);
|
searchMenu.addItem(mf1);
|
||||||
|
searchMenu.addItem(GenericMenuSeparatorLine);
|
||||||
|
searchMenu.addItem(mf2);
|
||||||
|
searchMenu.addItem(moc1);
|
||||||
|
|
||||||
res = searchMenu.exec(NULL,"");
|
res = searchMenu.exec(NULL,"");
|
||||||
return(res);
|
return(res);
|
||||||
|
@@ -139,21 +139,23 @@ class CEventFinderMenu : public CMenuTarget, CChangeObserver
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
CMenuForwarderNonLocalized* m_search_channelname_mf;
|
CMenuForwarderNonLocalized* m_search_channelname_mf;
|
||||||
int* m_event;
|
int* m_event;
|
||||||
int* m_search_epg_item;
|
int* m_search_epg_item;
|
||||||
std::string* m_search_keyword;
|
std::string* m_search_keyword;
|
||||||
int* m_search_list;
|
int* m_search_list;
|
||||||
std::string m_search_channelname;
|
std::string m_search_channelname;
|
||||||
t_channel_id* m_search_channel_id;
|
t_channel_id* m_search_channel_id;
|
||||||
t_bouquet_id* m_search_bouquet_id;
|
t_bouquet_id* m_search_bouquet_id;
|
||||||
int showMenu(void);
|
int width;
|
||||||
|
int selected;
|
||||||
|
int showMenu(void);
|
||||||
public:
|
public:
|
||||||
CEventFinderMenu( int* event,
|
CEventFinderMenu( int* event,
|
||||||
int* search_epg_item,
|
int* search_epg_item,
|
||||||
std::string* search_keyword,
|
std::string* search_keyword,
|
||||||
int* search_list,
|
int* search_list,
|
||||||
t_channel_id* search_channel_id,
|
t_channel_id* search_channel_id,
|
||||||
t_bouquet_id* search_bouquet_id);
|
t_bouquet_id* search_bouquet_id);
|
||||||
int exec( CMenuTarget* parent, const std::string &actionkey);
|
int exec( CMenuTarget* parent, const std::string &actionkey);
|
||||||
bool changeNotify(const neutrino_locale_t OptionName, void *);
|
bool changeNotify(const neutrino_locale_t OptionName, void *);
|
||||||
|
|
||||||
|
@@ -738,6 +738,18 @@ int CNeutrinoApp::loadSetup(const char * fname)
|
|||||||
g_settings.startchanneltv_id = configfile.getInt64("startchanneltv_id", 0);
|
g_settings.startchanneltv_id = configfile.getInt64("startchanneltv_id", 0);
|
||||||
g_settings.startchannelradio_id = configfile.getInt64("startchannelradio_id", 0);
|
g_settings.startchannelradio_id = configfile.getInt64("startchannelradio_id", 0);
|
||||||
g_settings.uselastchannel = configfile.getInt32("uselastchannel" , 1);
|
g_settings.uselastchannel = configfile.getInt32("uselastchannel" , 1);
|
||||||
|
//epg searsch
|
||||||
|
g_settings.epg_search_history_max = configfile.getInt32("epg_search_history_max", 10);
|
||||||
|
g_settings.epg_search_history_size = configfile.getInt32("epg_search_history_size", 0);
|
||||||
|
if (g_settings.epg_search_history_size > g_settings.epg_search_history_max)
|
||||||
|
g_settings.epg_search_history_size = g_settings.epg_search_history_max;
|
||||||
|
g_settings.epg_search_history.clear();
|
||||||
|
for(int i = 0; i < g_settings.epg_search_history_size; i++) {
|
||||||
|
std::string s = configfile.getString("epg_search_history_" + to_string(i));
|
||||||
|
if (s != "")
|
||||||
|
g_settings.epg_search_history.push_back(configfile.getString("epg_search_history_" + to_string(i), ""));
|
||||||
|
}
|
||||||
|
g_settings.epg_search_history_size = g_settings.epg_search_history.size();
|
||||||
|
|
||||||
|
|
||||||
// USERMENU -> in system/settings.h
|
// USERMENU -> in system/settings.h
|
||||||
@@ -1179,6 +1191,15 @@ void CNeutrinoApp::saveSetup(const char * fname)
|
|||||||
configfile.setInt64("startchanneltv_id", g_settings.startchanneltv_id);
|
configfile.setInt64("startchanneltv_id", g_settings.startchanneltv_id);
|
||||||
configfile.setInt64("startchannelradio_id", g_settings.startchannelradio_id);
|
configfile.setInt64("startchannelradio_id", g_settings.startchannelradio_id);
|
||||||
configfile.setInt32("uselastchannel", g_settings.uselastchannel);
|
configfile.setInt32("uselastchannel", g_settings.uselastchannel);
|
||||||
|
//epg search
|
||||||
|
g_settings.epg_search_history_size = g_settings.epg_search_history.size();
|
||||||
|
if (g_settings.epg_search_history_size > g_settings.epg_search_history_max)
|
||||||
|
g_settings.epg_search_history_size = g_settings.epg_search_history_max;
|
||||||
|
configfile.setInt32("epg_search_history_max", g_settings.epg_search_history_max);
|
||||||
|
configfile.setInt32("epg_search_history_size", g_settings.epg_search_history_size);
|
||||||
|
std::list<std::string>:: iterator it = g_settings.epg_search_history.begin();
|
||||||
|
for(int i = 0; i < g_settings.epg_search_history_size; i++, ++it)
|
||||||
|
configfile.setString("epg_search_history_" + to_string(i), *it);
|
||||||
|
|
||||||
// USERMENU
|
// USERMENU
|
||||||
//---------------------------------------
|
//---------------------------------------
|
||||||
|
@@ -354,7 +354,9 @@ typedef enum
|
|||||||
LOCALE_EPGVIEWER_NODETAILED,
|
LOCALE_EPGVIEWER_NODETAILED,
|
||||||
LOCALE_EPGVIEWER_NOTFOUND,
|
LOCALE_EPGVIEWER_NOTFOUND,
|
||||||
LOCALE_EVENTFINDER_HEAD,
|
LOCALE_EVENTFINDER_HEAD,
|
||||||
|
LOCALE_EVENTFINDER_HISTORY,
|
||||||
LOCALE_EVENTFINDER_KEYWORD,
|
LOCALE_EVENTFINDER_KEYWORD,
|
||||||
|
LOCALE_EVENTFINDER_MAX_HISTORY,
|
||||||
LOCALE_EVENTFINDER_SEARCH,
|
LOCALE_EVENTFINDER_SEARCH,
|
||||||
LOCALE_EVENTFINDER_SEARCH_ALL_EPG,
|
LOCALE_EVENTFINDER_SEARCH_ALL_EPG,
|
||||||
LOCALE_EVENTFINDER_SEARCH_WITHIN_EPG,
|
LOCALE_EVENTFINDER_SEARCH_WITHIN_EPG,
|
||||||
|
@@ -354,7 +354,9 @@ const char * locale_real_names[] =
|
|||||||
"epgviewer.nodetailed",
|
"epgviewer.nodetailed",
|
||||||
"epgviewer.notfound",
|
"epgviewer.notfound",
|
||||||
"eventfinder.head",
|
"eventfinder.head",
|
||||||
|
"eventfinder.history",
|
||||||
"eventfinder.keyword",
|
"eventfinder.keyword",
|
||||||
|
"eventfinder.max_history",
|
||||||
"eventfinder.search",
|
"eventfinder.search",
|
||||||
"eventfinder.search_all_epg",
|
"eventfinder.search_all_epg",
|
||||||
"eventfinder.search_within_epg",
|
"eventfinder.search_within_epg",
|
||||||
|
@@ -38,6 +38,7 @@
|
|||||||
#include <zapit/client/zapittools.h>
|
#include <zapit/client/zapittools.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <list>
|
||||||
|
|
||||||
#ifdef BOXMODEL_APOLLO
|
#ifdef BOXMODEL_APOLLO
|
||||||
#define VIDEOMENU_VIDEOMODE_OPTION_COUNT 14
|
#define VIDEOMENU_VIDEOMODE_OPTION_COUNT 14
|
||||||
@@ -147,6 +148,10 @@ struct SNeutrinoSettings
|
|||||||
std::string epg_dir;
|
std::string epg_dir;
|
||||||
int epg_scan;
|
int epg_scan;
|
||||||
|
|
||||||
|
int epg_search_history_size;
|
||||||
|
int epg_search_history_max;
|
||||||
|
std::list<std::string> epg_search_history;
|
||||||
|
|
||||||
//network
|
//network
|
||||||
std::string network_ntpserver;
|
std::string network_ntpserver;
|
||||||
std::string network_ntprefresh;
|
std::string network_ntprefresh;
|
||||||
|
Reference in New Issue
Block a user