Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
8be20697
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,发现更多精彩内容 >>
提交
8be20697
编写于
6月 22, 2018
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Settings editor - use inline checkbox control
上级
e0fbb429
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
50 addition
and
8 deletion
+50
-8
src/vs/workbench/parts/preferences/browser/media/settingsEditor2.css
...bench/parts/preferences/browser/media/settingsEditor2.css
+24
-0
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
...vs/workbench/parts/preferences/browser/settingsEditor2.ts
+1
-1
src/vs/workbench/parts/preferences/browser/settingsTree.ts
src/vs/workbench/parts/preferences/browser/settingsTree.ts
+25
-7
未找到文件。
src/vs/workbench/parts/preferences/browser/media/settingsEditor2.css
浏览文件 @
8be20697
...
...
@@ -207,10 +207,34 @@
display
:
flex
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item-bool
>
.reset-button-container
{
margin-top
:
5px
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item-bool
>
.reset-button-container
>
.setting-reset-button
{
width
:
initial
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item-bool
.setting-value-checkbox
{
height
:
16px
;
width
:
16px
;
border
:
1px
solid
transparent
;
border-radius
:
3px
;
margin-right
:
3px
;
margin-left
:
0px
;
margin-top
:
4px
;
padding
:
0px
;
background-size
:
14px
!important
;
}
.vs
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item-bool
.setting-value-checkbox.checked
{
background
:
url('check.svg')
center
center
no-repeat
;
}
.vs-dark
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item-bool
.setting-value-checkbox.checked
{
background
:
url('check-inverse.svg')
center
center
no-repeat
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-value
{
margin-top
:
7px
;
display
:
flex
;
...
...
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
浏览文件 @
8be20697
...
...
@@ -513,7 +513,7 @@ export class SettingsEditor2 extends BaseEditor {
.
then
(()
=>
{
if
(
focusedRowId
)
{
const
rowSelector
=
`.setting-item#
${
focusedRowId
}
`
;
const
inputElementToFocus
:
HTMLElement
=
this
.
settingsTreeContainer
.
querySelector
(
`
${
rowSelector
}
input,
${
rowSelector
}
select,
${
rowSelector
}
a`
);
const
inputElementToFocus
:
HTMLElement
=
this
.
settingsTreeContainer
.
querySelector
(
`
${
rowSelector
}
input,
${
rowSelector
}
select,
${
rowSelector
}
a
,
${
rowSelector
}
.monaco-custom-checkbox
`
);
if
(
inputElementToFocus
)
{
inputElementToFocus
.
focus
();
if
(
typeof
selection
===
'
number
'
)
{
...
...
src/vs/workbench/parts/preferences/browser/settingsTree.ts
浏览文件 @
8be20697
...
...
@@ -7,6 +7,7 @@ import * as DOM from 'vs/base/browser/dom';
import
{
StandardKeyboardEvent
}
from
'
vs/base/browser/keyboardEvent
'
;
import
{
IMouseEvent
}
from
'
vs/base/browser/mouseEvent
'
;
import
{
Button
}
from
'
vs/base/browser/ui/button/button
'
;
import
{
Checkbox
}
from
'
vs/base/browser/ui/checkbox/checkbox
'
;
import
{
InputBox
}
from
'
vs/base/browser/ui/inputbox/inputBox
'
;
import
{
SelectBox
}
from
'
vs/base/browser/ui/selectBox/selectBox
'
;
import
*
as
arrays
from
'
vs/base/common/arrays
'
;
...
...
@@ -22,8 +23,8 @@ import { IAccessibilityProvider, IDataSource, IFilter, IRenderer, ITree } from '
import
{
localize
}
from
'
vs/nls
'
;
import
{
ConfigurationTarget
,
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
IContextViewService
}
from
'
vs/platform/contextview/browser/contextView
'
;
import
{
WorkbenchTree
Controller
,
WorkbenchTree
}
from
'
vs/platform/list/browser/listService
'
;
import
{
editorActiveLinkForeground
,
registerColo
r
}
from
'
vs/platform/theme/common/colorRegistry
'
;
import
{
WorkbenchTree
,
WorkbenchTreeController
}
from
'
vs/platform/list/browser/listService
'
;
import
{
editorActiveLinkForeground
,
editorBackground
,
inputBackground
,
registerColor
,
selectBorde
r
}
from
'
vs/platform/theme/common/colorRegistry
'
;
import
{
attachButtonStyler
,
attachInputBoxStyler
,
attachSelectBoxStyler
}
from
'
vs/platform/theme/common/styler
'
;
import
{
ICssStyleCollector
,
ITheme
,
IThemeService
,
registerThemingParticipant
}
from
'
vs/platform/theme/common/themeService
'
;
import
{
SettingsTarget
}
from
'
vs/workbench/parts/preferences/browser/preferencesWidgets
'
;
...
...
@@ -45,6 +46,20 @@ registerThemingParticipant((theme: ITheme, collector: ICssStyleCollector) => {
}
});
registerThemingParticipant
((
theme
:
ITheme
,
collector
:
ICssStyleCollector
)
=>
{
const
inputBackgroundColor
=
theme
.
getColor
(
inputBackground
);
const
selectBorderColor
=
theme
.
getColor
(
selectBorder
);
const
editorBackgroundColor
=
theme
.
getColor
(
editorBackground
);
if
(
inputBackgroundColor
)
{
collector
.
addRule
(
`.settings-editor > .settings-body > .settings-tree-container .setting-item-bool .setting-value-checkbox { background-color:
${
inputBackgroundColor
}
!important; }`
);
}
if
(
selectBorderColor
&&
(
editorBackgroundColor
.
equals
(
inputBackgroundColor
)))
{
collector
.
addRule
(
`.settings-editor > .settings-body > .settings-tree-container .setting-item-bool .setting-value-checkbox { border-color:
${
selectBorderColor
}
!important; }`
);
}
});
export
abstract
class
SettingsTreeElement
{
id
:
string
;
parent
:
any
;
// SearchResultModel or group element... TODO search should be more similar to the normal case
...
...
@@ -684,12 +699,15 @@ export class SettingsRenderer implements IRenderer {
}
private
renderBool
(
dataElement
:
SettingsTreeSettingElement
,
isSelected
:
boolean
,
template
:
ISettingBoolItemTemplate
,
element
:
HTMLElement
,
onChange
:
(
value
:
boolean
)
=>
void
):
void
{
const
checkboxElement
=
<
HTMLInputElement
>
DOM
.
append
(
element
,
$
(
'
input.setting-value-checkbox.setting-value-input
'
));
checkboxElement
.
type
=
'
checkbox
'
;
checkboxElement
.
checked
=
dataElement
.
value
;
checkboxElement
.
tabIndex
=
isSelected
?
0
:
-
1
;
const
checkbox
=
new
Checkbox
({
actionClassName
:
'
setting-value-checkbox
'
,
isChecked
:
dataElement
.
value
,
title
:
''
,
inputActiveOptionBorder
:
null
});
template
.
toDispose
.
push
(
checkbox
);
template
.
toDispose
.
push
(
checkbox
.
onChange
(()
=>
{
onChange
(
checkbox
.
checked
);
}));
template
.
toDispose
.
push
(
DOM
.
addDisposableListener
(
checkboxElement
,
'
change
'
,
e
=>
onChange
(
checkboxElement
.
checked
)));
element
.
appendChild
(
checkbox
.
domNode
);
checkbox
.
domNode
.
tabIndex
=
isSelected
?
0
:
-
1
;
}
private
renderEnum
(
dataElement
:
SettingsTreeSettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
,
element
:
HTMLElement
,
onChange
:
(
value
:
string
)
=>
void
):
void
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录