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; }