Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
af00f974
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
af00f974
编写于
9月 19, 2019
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debt - temporary allow IElectronService in file dialog service
上级
d58aa5eb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
12 deletion
+25
-12
src/vs/workbench/services/dialogs/browser/fileDialogService.ts
...s/workbench/services/dialogs/browser/fileDialogService.ts
+25
-12
未找到文件。
src/vs/workbench/services/dialogs/browser/fileDialogService.ts
浏览文件 @
af00f974
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import
*
as
nls
from
'
vs/nls
'
;
import
{
IWindowService
,
INativeOpenDialogOptions
,
OpenDialogOptions
,
IURIToOpen
,
FileFilter
}
from
'
vs/platform/windows/common/windows
'
;
import
{
IWindowService
,
INativeOpenDialogOptions
,
OpenDialogOptions
,
IURIToOpen
,
FileFilter
,
SaveDialogOptions
}
from
'
vs/platform/windows/common/windows
'
;
import
{
IPickAndOpenOptions
,
ISaveDialogOptions
,
IOpenDialogOptions
,
IFileDialogService
}
from
'
vs/platform/dialogs/common/dialogs
'
;
import
{
IWorkspaceContextService
,
WorkbenchState
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IHistoryService
}
from
'
vs/workbench/services/history/common/history
'
;
...
...
@@ -12,7 +12,7 @@ import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
Schemas
}
from
'
vs/base/common/network
'
;
import
*
as
resources
from
'
vs/base/common/resources
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IInstantiationService
,
optional
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
RemoteFileDialog
}
from
'
vs/workbench/services/dialogs/browser/remoteFileDialog
'
;
import
{
WORKSPACE_EXTENSION
}
from
'
vs/platform/workspaces/common/workspaces
'
;
import
{
REMOTE_HOST_SCHEME
}
from
'
vs/platform/remote/common/remoteHosts
'
;
...
...
@@ -22,6 +22,10 @@ import { IFileService } from 'vs/platform/files/common/files';
import
{
isWeb
}
from
'
vs/base/common/platform
'
;
import
{
IOpenerService
}
from
'
vs/platform/opener/common/opener
'
;
// TODO@Alex layer breaker
// tslint:disable-next-line: layering import-patterns
import
{
IElectronService
}
from
'
vs/platform/electron/node/electron
'
;
export
class
FileDialogService
implements
IFileDialogService
{
_serviceBrand
:
undefined
;
...
...
@@ -34,7 +38,8 @@ export class FileDialogService implements IFileDialogService {
@
IInstantiationService
private
readonly
instantiationService
:
IInstantiationService
,
@
IConfigurationService
private
readonly
configurationService
:
IConfigurationService
,
@
IFileService
private
readonly
fileService
:
IFileService
,
@
IOpenerService
private
readonly
openerService
:
IOpenerService
@
IOpenerService
private
readonly
openerService
:
IOpenerService
,
@
optional
(
IElectronService
)
private
readonly
electronService
:
IElectronService
)
{
}
defaultFilePath
(
schemeFilter
=
this
.
getSchemeFilterForWindow
()):
URI
|
undefined
{
...
...
@@ -217,15 +222,17 @@ export class FileDialogService implements IFileDialogService {
return
this
.
saveRemoteResource
(
options
);
}
const
result
=
await
this
.
windowService
.
showSaveDialog
(
this
.
toNativeSaveDialogOptions
(
options
));
if
(
result
)
{
return
URI
.
file
(
result
);
if
(
this
.
electronService
)
{
const
result
=
await
this
.
electronService
.
showSaveDialog
(
this
.
toNativeSaveDialogOptions
(
options
));
if
(
result
&&
result
.
filePath
)
{
return
URI
.
file
(
result
.
filePath
);
}
}
return
;
}
private
toNativeSaveDialogOptions
(
options
:
ISaveDialogOptions
):
Electron
.
SaveDialogOptions
{
private
toNativeSaveDialogOptions
(
options
:
ISaveDialogOptions
):
SaveDialogOptions
{
options
.
defaultUri
=
options
.
defaultUri
?
URI
.
file
(
options
.
defaultUri
.
path
)
:
undefined
;
return
{
defaultPath
:
options
.
defaultUri
&&
options
.
defaultUri
.
fsPath
,
...
...
@@ -245,9 +252,11 @@ export class FileDialogService implements IFileDialogService {
return
this
.
saveRemoteResource
(
options
);
}
const
result
=
await
this
.
windowService
.
showSaveDialog
(
this
.
toNativeSaveDialogOptions
(
options
));
if
(
result
)
{
return
URI
.
file
(
result
);
if
(
this
.
electronService
)
{
const
result
=
await
this
.
electronService
.
showSaveDialog
(
this
.
toNativeSaveDialogOptions
(
options
));
if
(
result
&&
result
.
filePath
)
{
return
URI
.
file
(
result
.
filePath
);
}
}
return
;
...
...
@@ -289,9 +298,13 @@ export class FileDialogService implements IFileDialogService {
newOptions
.
properties
!
.
push
(
'
multiSelections
'
);
}
const
result
=
await
this
.
windowService
.
showOpenDialog
(
newOptions
);
if
(
this
.
electronService
)
{
const
result
=
await
this
.
electronService
.
showOpenDialog
(
newOptions
);
return
result
?
result
.
map
(
URI
.
file
)
:
undefined
;
return
result
&&
result
.
filePaths
?
result
.
filePaths
.
map
(
URI
.
file
)
:
undefined
;
}
return
;
}
private
pickRemoteResource
(
options
:
IOpenDialogOptions
):
Promise
<
URI
|
undefined
>
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录