mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
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:
committed by
Ryan Foster
parent
e36163ce89
commit
7c8acd48a9
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user