@@ -1310,27 +1310,29 @@ void DeckBuilder::ClearFilter() {
1310
1310
mainGame->btnMark [i]->setPressed (false );
1311
1311
}
1312
1312
void DeckBuilder::SortList () {
1313
- auto left = results.begin ();
1314
- for (auto it = results.begin (); it != results.end (); ++it) {
1315
- if (searched_terms.find (std::wstring{ gDataManager ->GetUppercaseName ((*it)->code ) }) != searched_terms.end ()) {
1316
- std::iter_swap (left, it);
1317
- ++left;
1318
- }
1319
- }
1313
+ auto sort = [&](auto & comparator) {
1314
+ std::sort (results.begin (), results.end (), comparator);
1315
+ };
1320
1316
switch (mainGame->cbSortType ->getSelected ()) {
1321
1317
case 0 :
1322
- std:: sort (left, results. end (), DataManager::deck_sort_lv);
1318
+ sort (DataManager::deck_sort_lv);
1323
1319
break ;
1324
1320
case 1 :
1325
- std:: sort (left, results. end (), DataManager::deck_sort_atk);
1321
+ sort ( DataManager::deck_sort_atk);
1326
1322
break ;
1327
1323
case 2 :
1328
- std:: sort (left, results. end (), DataManager::deck_sort_def);
1324
+ sort (DataManager::deck_sort_def);
1329
1325
break ;
1330
1326
case 3 :
1331
- std:: sort (left, results. end (), DataManager::deck_sort_name);
1327
+ sort (DataManager::deck_sort_name);
1332
1328
break ;
1333
1329
}
1330
+ for (auto it = results.begin (), left = it; it != results.end (); ++it) {
1331
+ if (searched_terms.find (gDataManager ->GetUppercaseName ((*it)->code )) != searched_terms.end ()) {
1332
+ std::iter_swap (left, it);
1333
+ ++left;
1334
+ }
1335
+ }
1334
1336
}
1335
1337
void DeckBuilder::ClearDeck () {
1336
1338
current_deck.main .clear ();
0 commit comments