Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
尘离序散
obs-studio
提交
f093028d
O
obs-studio
项目概览
尘离序散
/
obs-studio
与 Fork 源项目一致
从无法访问的项目Fork
通知
30
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
obs-studio
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f093028d
编写于
5月 16, 2017
作者:
J
jp9000
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
UI: Sort filter names when adding filters
上级
0a378834
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
30 addition
and
6 deletion
+30
-6
UI/window-basic-filters.cpp
UI/window-basic-filters.cpp
+30
-6
未找到文件。
UI/window-basic-filters.cpp
浏览文件 @
f093028d
...
...
@@ -26,6 +26,7 @@
#include <QMessageBox>
#include <QCloseEvent>
#include <vector>
#include <string>
#include <QMenu>
#include <QVariant>
...
...
@@ -322,20 +323,43 @@ static bool filter_compatible(bool async, uint32_t sourceFlags,
QMenu
*
OBSBasicFilters
::
CreateAddFilterPopupMenu
(
bool
async
)
{
uint32_t
sourceFlags
=
obs_source_get_output_flags
(
source
);
const
char
*
type
;
const
char
*
type
_str
;
bool
foundValues
=
false
;
size_t
idx
=
0
;
struct
FilterInfo
{
string
type
;
string
name
;
inline
FilterInfo
(
const
char
*
type_
,
const
char
*
name_
)
:
type
(
type_
),
name
(
name_
)
{}
};
vector
<
FilterInfo
>
types
;
while
(
obs_enum_filter_types
(
idx
++
,
&
type_str
))
{
const
char
*
name
=
obs_source_get_display_name
(
type_str
);
auto
it
=
types
.
begin
();
for
(;
it
!=
types
.
end
();
++
it
)
{
if
(
it
->
name
>=
name
)
break
;
}
types
.
emplace
(
it
,
type_str
,
name
);
}
QMenu
*
popup
=
new
QMenu
(
QTStr
(
"Add"
),
this
);
while
(
obs_enum_filter_types
(
idx
++
,
&
type
)
)
{
const
char
*
name
=
obs_source_get_display_name
(
type
);
uint32_t
filterFlags
=
obs_get_source_output_flags
(
type
);
for
(
FilterInfo
&
type
:
types
)
{
uint32_t
filterFlags
=
obs_get_source_output_flags
(
type
.
type
.
c_str
()
);
if
(
!
filter_compatible
(
async
,
sourceFlags
,
filterFlags
))
continue
;
QAction
*
popupItem
=
new
QAction
(
QT_UTF8
(
name
),
this
);
popupItem
->
setData
(
QT_UTF8
(
type
));
QAction
*
popupItem
=
new
QAction
(
QT_UTF8
(
type
.
name
.
c_str
()),
this
);
popupItem
->
setData
(
QT_UTF8
(
type
.
type
.
c_str
()));
connect
(
popupItem
,
SIGNAL
(
triggered
(
bool
)),
this
,
SLOT
(
AddFilterFromAction
()));
popup
->
addAction
(
popupItem
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录