CMenuOptionChooser: Fix multiple menu items, when using sort option

This commit is contained in:
M. Liebmann
2014-01-04 15:20:56 +01:00
parent f953cd07b3
commit 9af1cdb318
2 changed files with 11 additions and 9 deletions

View File

@@ -1383,6 +1383,7 @@ int CMenuOptionChooser::exec(CMenuTarget*)
int ret = menu_return::RETURN_NONE; int ret = menu_return::RETURN_NONE;
if (optionsSort) { if (optionsSort) {
optionsSort = false;
clearChooserOptions(); clearChooserOptions();
unsigned int i1; unsigned int i1;
for (i1 = 0; i1 < number_of_options; i1++) for (i1 = 0; i1 < number_of_options; i1++)
@@ -1395,12 +1396,13 @@ int CMenuOptionChooser::exec(CMenuTarget*)
sort(option_chooser_options_v.begin(), option_chooser_options_v.end(), CMenuOptionChooserCompareItem()); sort(option_chooser_options_v.begin(), option_chooser_options_v.end(), CMenuOptionChooserCompareItem());
i1 = 0; options.clear();
for (std::vector<CMenuOptionChooserOptions*>::iterator it = option_chooser_options_v.begin(); it != option_chooser_options_v.end() && i1 < number_of_options; ++it) { for (std::vector<CMenuOptionChooserOptions*>::iterator it = option_chooser_options_v.begin(); it != option_chooser_options_v.end(); ++it) {
options[i1].key = (*it)->key; struct keyval_ext opt;
options[i1].value = NONEXISTANT_LOCALE; opt.key = (*it)->key;
options[i1].valname = (*it)->valname.c_str(); opt.value = NONEXISTANT_LOCALE;
i1++; opt.valname = (*it)->valname.c_str();
options.push_back(opt);
} }
} }

View File

@@ -352,9 +352,9 @@ class CMenuOptionChooser : public CAbstractMenuOptionChooser
private: private:
std::vector<keyval_ext> options; std::vector<keyval_ext> options;
std::vector<CMenuOptionChooserOptions*> option_chooser_options_v; std::vector<CMenuOptionChooserOptions*> option_chooser_options_v;
unsigned number_of_options; unsigned number_of_options;
CChangeObserver * observ; CChangeObserver * observ;
std::string optionNameString; std::string optionNameString;
bool pulldown; bool pulldown;
bool optionsSort; bool optionsSort;