diff --git a/src/main_window.cpp b/src/main_window.cpp index 22f30ea..d614f88 100644 --- a/src/main_window.cpp +++ b/src/main_window.cpp @@ -9,6 +9,7 @@ #include #include"plugin.h" #include +#include #include std::unordered_map filter_map; @@ -1443,15 +1444,15 @@ void AC_MainWindow::menuFilterChanged(int index) { loading = true; std::string menu_n = menuNames[index]; filters->clear(); - std::vector *v = ac::filter_menu_map[menu_n].menu_list; + std::vector &v = *ac::filter_menu_map[menu_n].menu_list; - auto end = v->end(); - for(auto it = v->begin(); it != end; ++it) { - end = std::remove(it + 1, end, *it); - } - for(auto in = v->begin(); in != v->end(); ++in) { - filters->addItem(in->c_str()); - } + std::unordered_map map_values; + for(int i = 0; i < static_cast(v.size()); ++i) { + if(map_values.find(v[i]) == map_values.end()) { + map_values[v[i]] = v[i]; + filters->addItem(v[i].c_str()); + } + } filters->setCurrentIndex(0); loading = false; }