コード例 #1
0
void CWebTVSetup::Show()
{
	item_offset = 0;

	m = new CMenuWidget(LOCALE_WEBTV_HEAD, NEUTRINO_ICON_MOVIEPLAYER, width);
	m->addKey(CRCInput::RC_red, this, "d");
	m->addKey(CRCInput::RC_green, this, "a");
	m->setSelected(selected);
	m->addIntroItems(LOCALE_EPGPLUS_OPTIONS, LOCALE_WEBTV_XML);
	item_offset = m->getItemsCount();
	for (std::list<std::string>::iterator it = g_settings.webtv_xml.begin(); it != g_settings.webtv_xml.end(); ++it)
		m->addItem(new CMenuForwarder(*it, true, NULL, this, "c"));
	m->setFooter(CWebTVSetupFooterButtons, CWebTVSetupFooterButtonCount);
	m->exec(NULL, "");
	m->hide();
	if (changed) {
			g_settings.webtv_xml.clear();
			for (int i = item_offset; i < m->getItemsCount(); i++) {
				CMenuItem *item = m->getItem(i);
				CMenuForwarder *f = static_cast<CMenuForwarder*>(item);
				g_settings.webtv_xml.push_back(f->getName());
			}
			g_Zapit->reinitChannels();
			changed = false;
	}
	selected = m->getSelected();
	delete m;
}
コード例 #2
0
int CWebTVSetup::exec(CMenuTarget* parent, const std::string & actionKey)
{
	int res = menu_return::RETURN_REPAINT;

	if(actionKey == "d" /* delete */) {
		selected = m->getSelected();
		if (selected >= item_offset) {
			m->removeItem(selected);
		    m->hide();
			selected = m->getSelected();
			changed = true;
		}
		return res;
	}
	if(actionKey == "c" /* change */) {
		CFileBrowser fileBrowser;
		CFileFilter fileFilter;
		fileFilter.addFilter("xml");
		fileBrowser.Filter = &fileFilter;
		selected = m->getSelected();
		CMenuItem* item = m->getItem(selected);
		CMenuForwarder *f = static_cast<CMenuForwarder*>(item);
		std::string dirname(f->getName());
		if (fileBrowser.exec(dirname.substr(0, dirname.rfind('/')).c_str())) {
			f->setName(fileBrowser.getSelectedFile()->Name);
			changed = true;
		}
		return res;
	}
	if(actionKey == "a" /* add */) {
		CFileBrowser fileBrowser;
		CFileFilter fileFilter;
		fileFilter.addFilter("xml");
		fileBrowser.Filter = &fileFilter;
		if (fileBrowser.exec("/") == true) {
			std::string s = fileBrowser.getSelectedFile()->Name;
			m->addItem(new CMenuForwarder(s, true, NULL, this, "c"));
			changed = true;
		}
		return res;
	}

    if(parent)
		parent->hide();

	Show();

	return res;
}