UI: Improved implementation for sorting filters menu

Rather than finding the insertion point and iterating the vector for
each item, let's sort it afterwards.
This commit is contained in:
Richard Stanway
2023-02-15 12:48:08 -05:00
committed by Ryan Foster
parent e36163ce89
commit 7c8acd48a9
+8 -7
View File
@@ -528,6 +528,11 @@ QMenu *OBSBasicFilters::CreateAddFilterPopupMenu(bool async)
: type(type_), name(name_)
{
}
bool operator<(const FilterInfo &r) const
{
return name < r.name;
}
};
vector<FilterInfo> types;
@@ -542,15 +547,11 @@ QMenu *OBSBasicFilters::CreateAddFilterPopupMenu(bool async)
if ((caps & OBS_SOURCE_CAP_OBSOLETE) != 0)
continue;
auto it = types.begin();
for (; it != types.end(); ++it) {
if (it->name >= name)
break;
}
types.emplace(it, type_str, name);
types.emplace_back(type_str, name);
}
sort(types.begin(), types.end());
QMenu *popup = new QMenu(QTStr("Add"), this);
for (FilterInfo &type : types) {
uint32_t filterFlags =