Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
b8d1e278
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b8d1e278
编写于
9月 24, 2018
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
notifications - secondary prompts should close too unless keepOpen is provided
上级
380a5024
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
32 addition
and
8 deletion
+32
-8
src/vs/workbench/common/notifications.ts
src/vs/workbench/common/notifications.ts
+12
-4
src/vs/workbench/services/notification/common/notificationService.ts
...bench/services/notification/common/notificationService.ts
+20
-4
未找到文件。
src/vs/workbench/common/notifications.ts
浏览文件 @
b8d1e278
...
...
@@ -549,15 +549,19 @@ export class NotificationViewItem extends Disposable implements INotificationVie
}
export
class
ChoiceAction
extends
Action
{
private
_clicked
:
boolean
;
private
_onDidRun
=
new
Emitter
<
void
>
();
get
onDidRun
():
Event
<
void
>
{
return
this
.
_onDidRun
.
event
;
}
constructor
(
id
:
string
,
private
choice
:
IPromptChoice
)
{
super
(
id
,
choice
.
label
,
null
,
true
,
()
=>
{
this
.
_clicked
=
true
;
// Pass to runner
choice
.
run
();
// Emit Event
this
.
_onDidRun
.
fire
();
return
TPromise
.
as
(
void
0
);
});
}
...
...
@@ -566,7 +570,11 @@ export class ChoiceAction extends Action {
return
this
.
choice
.
keepOpen
;
}
get
clicked
():
boolean
{
return
this
.
_clicked
;
dispose
():
void
{
super
.
dispose
();
this
.
choice
=
null
;
this
.
_onDidRun
.
dispose
();
}
}
\ No newline at end of file
src/vs/workbench/services/notification/common/notificationService.ts
浏览文件 @
b8d1e278
...
...
@@ -7,7 +7,7 @@
import
{
INotificationService
,
INotification
,
INotificationHandle
,
Severity
,
NotificationMessage
,
INotificationActions
,
IPromptChoice
}
from
'
vs/platform/notification/common/notification
'
;
import
{
INotificationsModel
,
NotificationsModel
,
ChoiceAction
}
from
'
vs/workbench/common/notifications
'
;
import
{
dispose
,
Disposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
dispose
,
Disposable
,
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
once
}
from
'
vs/base/common/event
'
;
export
class
NotificationService
extends
Disposable
implements
INotificationService
{
...
...
@@ -55,6 +55,10 @@ export class NotificationService extends Disposable implements INotificationServ
}
prompt
(
severity
:
Severity
,
message
:
string
,
choices
:
IPromptChoice
[],
onCancel
?:
()
=>
void
):
INotificationHandle
{
const
toDispose
:
IDisposable
[]
=
[];
let
choiceClicked
=
false
;
let
handle
:
INotificationHandle
;
// Convert choices into primary/secondary actions
const
actions
:
INotificationActions
=
{
primary
:
[],
secondary
:
[]
};
...
...
@@ -65,18 +69,30 @@ export class NotificationService extends Disposable implements INotificationServ
}
else
{
actions
.
secondary
.
push
(
action
);
}
// React to action being clicked
toDispose
.
push
(
action
.
onDidRun
(()
=>
{
choiceClicked
=
true
;
// Close notification unless we are told to keep open
if
(
!
choice
.
keepOpen
)
{
handle
.
close
();
}
}));
toDispose
.
push
(
action
);
});
// Show notification with actions
const
handle
=
this
.
notify
({
severity
,
message
,
actions
});
handle
=
this
.
notify
({
severity
,
message
,
actions
});
once
(
handle
.
onDidClose
)(()
=>
{
// Cleanup when notification gets disposed
dispose
(
...
actions
.
primary
,
...
actions
.
secondary
);
dispose
(
toDispose
);
// Indicate cancellation to the outside if no action was executed
if
(
typeof
onCancel
===
'
function
'
&&
!
[...
actions
.
primary
,
...
actions
.
secondary
].
some
((
action
:
ChoiceAction
)
=>
action
.
clicked
)
)
{
if
(
typeof
onCancel
===
'
function
'
&&
!
choiceClicked
)
{
onCancel
();
}
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录