Exemplo n.º 1
0
bool FeFilterEditMenu::save( FeConfigContext &ctx )
{
	if (( m_display ) && ( m_index >= 0 ))
	{
		FeFilter *f = m_display->get_filter( m_index );

		std::string name = ctx.opt_list[0].get_value();
		f->set_name( name );

		int sort_pos = ctx.opt_list.size() - 4;
		FeRomInfo::Index sort_by = (FeRomInfo::Index)ctx.opt_list[ sort_pos ].get_vindex();

		f->set_sort_by( sort_by );

		//
		// TODO - make reverse order configurable from the config menu
		//
		// right now we just arbitrarily sort players, playcount and playtime in "reverse" order so
		// higher values are first.
		//
		bool reverse_order( false );
		if (( sort_by == FeRomInfo::Players )
				|| ( sort_by == FeRomInfo::PlayedCount )
				|| ( sort_by == FeRomInfo::PlayedTime ))
			reverse_order = true;

		f->set_reverse_order( reverse_order );

		std::string limit_str = ctx.opt_list[ sort_pos + 1 ].get_value();
		int list_limit = as_int( limit_str );
		f->set_list_limit( list_limit );
	}

	return true;
}