Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
尘离序散
obs-studio
提交
a9c65aea
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,发现更多精彩内容 >>
未验证
提交
a9c65aea
编写于
8月 08, 2020
作者:
J
Jim
提交者:
GitHub
8月 08, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2955 from cg2121/group-signals
UI: Make select/deselect signals work w/ group items
上级
d7ccac77
2fe749fc
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
20 addition
and
49 deletion
+20
-49
UI/source-tree.cpp
UI/source-tree.cpp
+18
-4
UI/source-tree.hpp
UI/source-tree.hpp
+2
-0
UI/window-basic-main.cpp
UI/window-basic-main.cpp
+0
-40
UI/window-basic-main.hpp
UI/window-basic-main.hpp
+0
-5
未找到文件。
UI/source-tree.cpp
浏览文件 @
a9c65aea
...
...
@@ -151,6 +151,7 @@ void SourceTreeItem::DisconnectSignals()
{
sceneRemoveSignal
.
Disconnect
();
itemRemoveSignal
.
Disconnect
();
selectSignal
.
Disconnect
();
deselectSignal
.
Disconnect
();
visibleSignal
.
Disconnect
();
lockedSignal
.
Disconnect
();
...
...
@@ -212,6 +213,16 @@ void SourceTreeItem::ReconnectSignals()
Q_ARG
(
bool
,
locked
));
};
auto
itemSelect
=
[](
void
*
data
,
calldata_t
*
cd
)
{
SourceTreeItem
*
this_
=
reinterpret_cast
<
SourceTreeItem
*>
(
data
);
obs_sceneitem_t
*
curItem
=
(
obs_sceneitem_t
*
)
calldata_ptr
(
cd
,
"item"
);
if
(
curItem
==
this_
->
sceneitem
)
QMetaObject
::
invokeMethod
(
this_
,
"Select"
);
};
auto
itemDeselect
=
[](
void
*
data
,
calldata_t
*
cd
)
{
SourceTreeItem
*
this_
=
reinterpret_cast
<
SourceTreeItem
*>
(
data
);
...
...
@@ -236,6 +247,8 @@ void SourceTreeItem::ReconnectSignals()
itemRemoveSignal
.
Connect
(
signal
,
"item_remove"
,
removeItem
,
this
);
visibleSignal
.
Connect
(
signal
,
"item_visible"
,
itemVisible
,
this
);
lockedSignal
.
Connect
(
signal
,
"item_locked"
,
itemLocked
,
this
);
selectSignal
.
Connect
(
signal
,
"item_select"
,
itemSelect
,
this
);
deselectSignal
.
Connect
(
signal
,
"item_deselect"
,
itemDeselect
,
this
);
if
(
obs_sceneitem_is_group
(
sceneitem
))
{
obs_source_t
*
source
=
obs_sceneitem_get_source
(
sceneitem
);
...
...
@@ -245,10 +258,6 @@ void SourceTreeItem::ReconnectSignals()
this
);
}
if
(
scene
!=
GetCurrentScene
())
deselectSignal
.
Connect
(
signal
,
"item_deselect"
,
itemDeselect
,
this
);
/* --------------------------------------------------------- */
auto
renamed
=
[](
void
*
data
,
calldata_t
*
cd
)
{
...
...
@@ -516,6 +525,11 @@ void SourceTreeItem::ExpandClicked(bool checked)
tree
->
GetStm
()
->
CollapseGroup
(
sceneitem
);
}
void
SourceTreeItem
::
Select
()
{
tree
->
SelectItem
(
sceneitem
,
true
);
}
void
SourceTreeItem
::
Deselect
()
{
tree
->
SelectItem
(
sceneitem
,
false
);
...
...
UI/source-tree.hpp
浏览文件 @
a9c65aea
...
...
@@ -70,6 +70,7 @@ private:
OBSSignal
sceneRemoveSignal
;
OBSSignal
itemRemoveSignal
;
OBSSignal
groupReorderSignal
;
OBSSignal
selectSignal
;
OBSSignal
deselectSignal
;
OBSSignal
visibleSignal
;
OBSSignal
lockedSignal
;
...
...
@@ -90,6 +91,7 @@ private slots:
void
ExpandClicked
(
bool
checked
);
void
Select
();
void
Deselect
();
};
...
...
UI/window-basic-main.cpp
浏览文件 @
a9c65aea
...
...
@@ -2677,11 +2677,6 @@ void OBSBasic::AddScene(OBSSource source)
container
.
handlers
.
assign
({
std
::
make_shared
<
OBSSignal
>
(
handler
,
"item_add"
,
OBSBasic
::
SceneItemAdded
,
this
),
std
::
make_shared
<
OBSSignal
>
(
handler
,
"item_select"
,
OBSBasic
::
SceneItemSelected
,
this
),
std
::
make_shared
<
OBSSignal
>
(
handler
,
"item_deselect"
,
OBSBasic
::
SceneItemDeselected
,
this
),
std
::
make_shared
<
OBSSignal
>
(
handler
,
"reorder"
,
OBSBasic
::
SceneReordered
,
this
),
std
::
make_shared
<
OBSSignal
>
(
handler
,
"refresh"
,
...
...
@@ -2851,16 +2846,6 @@ void OBSBasic::RenameSources(OBSSource source, QString newName,
OBSProjector
::
UpdateMultiviewProjectors
();
}
void
OBSBasic
::
SelectSceneItem
(
OBSScene
scene
,
OBSSceneItem
item
,
bool
select
)
{
SignalBlocker
sourcesSignalBlocker
(
ui
->
sources
);
if
(
scene
!=
GetCurrentScene
()
||
ignoreSelectionUpdate
)
return
;
ui
->
sources
->
SelectItem
(
item
,
select
);
}
static
inline
bool
SourceMixerHidden
(
obs_source_t
*
source
)
{
obs_data_t
*
priv_settings
=
obs_source_get_private_settings
(
source
);
...
...
@@ -3463,31 +3448,6 @@ void OBSBasic::SceneItemAdded(void *data, calldata_t *params)
Q_ARG
(
OBSSceneItem
,
OBSSceneItem
(
item
)));
}
void
OBSBasic
::
SceneItemSelected
(
void
*
data
,
calldata_t
*
params
)
{
OBSBasic
*
window
=
static_cast
<
OBSBasic
*>
(
data
);
obs_scene_t
*
scene
=
(
obs_scene_t
*
)
calldata_ptr
(
params
,
"scene"
);
obs_sceneitem_t
*
item
=
(
obs_sceneitem_t
*
)
calldata_ptr
(
params
,
"item"
);
QMetaObject
::
invokeMethod
(
window
,
"SelectSceneItem"
,
Q_ARG
(
OBSScene
,
scene
),
Q_ARG
(
OBSSceneItem
,
item
),
Q_ARG
(
bool
,
true
));
}
void
OBSBasic
::
SceneItemDeselected
(
void
*
data
,
calldata_t
*
params
)
{
OBSBasic
*
window
=
static_cast
<
OBSBasic
*>
(
data
);
obs_scene_t
*
scene
=
(
obs_scene_t
*
)
calldata_ptr
(
params
,
"scene"
);
obs_sceneitem_t
*
item
=
(
obs_sceneitem_t
*
)
calldata_ptr
(
params
,
"item"
);
QMetaObject
::
invokeMethod
(
window
,
"SelectSceneItem"
,
Q_ARG
(
OBSScene
,
scene
),
Q_ARG
(
OBSSceneItem
,
item
),
Q_ARG
(
bool
,
false
));
}
void
OBSBasic
::
SourceCreated
(
void
*
data
,
calldata_t
*
params
)
{
obs_source_t
*
source
=
(
obs_source_t
*
)
calldata_ptr
(
params
,
"source"
);
...
...
UI/window-basic-main.hpp
浏览文件 @
a9c65aea
...
...
@@ -232,7 +232,6 @@ private:
gs_vertbuffer_t
*
circle
=
nullptr
;
bool
sceneChanging
=
false
;
bool
ignoreSelectionUpdate
=
false
;
int
previewX
=
0
,
previewY
=
0
;
int
previewCX
=
0
,
previewCY
=
0
;
...
...
@@ -595,8 +594,6 @@ private slots:
void
RemoveScene
(
OBSSource
source
);
void
RenameSources
(
OBSSource
source
,
QString
newName
,
QString
prevName
);
void
SelectSceneItem
(
OBSScene
scene
,
OBSSceneItem
item
,
bool
select
);
void
ActivateAudioSource
(
OBSSource
source
);
void
DeactivateAudioSource
(
OBSSource
source
);
...
...
@@ -693,8 +690,6 @@ private:
static
void
SceneReordered
(
void
*
data
,
calldata_t
*
params
);
static
void
SceneRefreshed
(
void
*
data
,
calldata_t
*
params
);
static
void
SceneItemAdded
(
void
*
data
,
calldata_t
*
params
);
static
void
SceneItemSelected
(
void
*
data
,
calldata_t
*
params
);
static
void
SceneItemDeselected
(
void
*
data
,
calldata_t
*
params
);
static
void
SourceCreated
(
void
*
data
,
calldata_t
*
params
);
static
void
SourceRemoved
(
void
*
data
,
calldata_t
*
params
);
static
void
SourceActivated
(
void
*
data
,
calldata_t
*
params
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录