Skip to content

Commit 049220a

Browse files
authored
Add all proposed Keyboard shortcuts (#451)
* Add more keybindings * Make keybindings work in leftpanel, rightpanel & mainview * Use a standard selector for keybindings * `Accel Shift Z` for redo
1 parent a5442ea commit 049220a

File tree

4 files changed

+96
-6
lines changed

4 files changed

+96
-6
lines changed

packages/base/src/3dview/mainview.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1390,7 +1390,8 @@ export class MainView extends React.Component<IProps, IStates> {
13901390
render(): JSX.Element {
13911391
return (
13921392
<div
1393-
className="jcad-Mainview"
1393+
className="jcad-Mainview data-jcad-keybinding"
1394+
tabIndex={-2}
13941395
style={{
13951396
border: this.state.remoteUser
13961397
? `solid 3px ${this.state.remoteUser.color}`

packages/base/src/keybindings.json

Lines changed: 90 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22
{
33
"command": "jupytercad:undo",
44
"keys": ["Accel Z"],
5-
"selector": "body"
5+
"selector": ".data-jcad-keybinding"
66
},
77
{
88
"command": "jupytercad:redo",
9-
"keys": ["Accel Y"],
10-
"selector": "body"
9+
"keys": ["Accel Shift Z"],
10+
"selector": ".data-jcad-keybinding"
1111
},
1212
{
1313
"command": "jupytercad:removeObject",
1414
"keys": ["Delete"],
15-
"selector": "body"
15+
"selector": ".data-jcad-keybinding"
1616
},
1717
{
1818
"command": "jupytercad:wireframe",
1919
"keys": ["Accel Space"],
20-
"selector": "body"
20+
"selector": ".data-jcad-keybinding"
2121
},
2222
{
2323
"command": "jupytercad:executeConsole",
@@ -33,5 +33,90 @@
3333
"command": "jupytercad:selectConsoleCompleter",
3434
"keys": ["Enter"],
3535
"selector": ".jpcad-console .jp-ConsolePanel .jp-mod-completer-active"
36+
},
37+
{
38+
"command": "jupytercad:sketch",
39+
"keys": ["Accel Alt N"],
40+
"selector": ".data-jcad-keybinding"
41+
},
42+
{
43+
"command": "jupytercad:newBox",
44+
"keys": ["Accel Alt B"],
45+
"selector": ".data-jcad-keybinding"
46+
},
47+
{
48+
"command": "jupytercad:newCylinder",
49+
"keys": ["Accel Alt C"],
50+
"selector": ".data-jcad-keybinding"
51+
},
52+
{
53+
"command": "jupytercad:newSphere",
54+
"keys": ["Accel Alt S"],
55+
"selector": ".data-jcad-keybinding"
56+
},
57+
{
58+
"command": "jupytercad:newCone",
59+
"keys": ["Accel Alt E"],
60+
"selector": ".data-jcad-keybinding"
61+
},
62+
{
63+
"command": "jupytercad:newTorus",
64+
"keys": ["Accel Alt T"],
65+
"selector": ".data-jcad-keybinding"
66+
},
67+
{
68+
"command": "jupytercad:cut",
69+
"keys": ["Accel Alt X"],
70+
"selector": ".data-jcad-keybinding"
71+
},
72+
{
73+
"command": "jupytercad:extrusion",
74+
"keys": ["Accel Alt E"],
75+
"selector": ".data-jcad-keybinding"
76+
},
77+
{
78+
"command": "jupytercad:union",
79+
"keys": ["Accel Alt U"],
80+
"selector": ".data-jcad-keybinding"
81+
},
82+
{
83+
"command": "jupytercad:intersection",
84+
"keys": ["Accel Alt I"],
85+
"selector": ".data-jcad-keybinding"
86+
},
87+
{
88+
"command": "jupytercad:chamfer",
89+
"keys": ["Accel Alt H"],
90+
"selector": ".data-jcad-keybinding"
91+
},
92+
{
93+
"command": "jupytercad:fillet",
94+
"keys": ["Accel Alt F"],
95+
"selector": ".data-jcad-keybinding"
96+
},
97+
{
98+
"command": "jupytercad:updateAxes",
99+
"keys": ["Alt A"],
100+
"selector": ".data-jcad-keybinding"
101+
},
102+
{
103+
"command": "jupytercad:updateExplodedView",
104+
"keys": ["Alt E"],
105+
"selector": ".data-jcad-keybinding"
106+
},
107+
{
108+
"command": "jupytercad:updateCameraSettings",
109+
"keys": ["Accel Alt K"],
110+
"selector": ".data-jcad-keybinding"
111+
},
112+
{
113+
"command": "jupytercad:updateClipView",
114+
"keys": ["Alt C"],
115+
"selector": ".data-jcad-keybinding"
116+
},
117+
{
118+
"command": "jupytercad:exportJcad",
119+
"keys": ["Accel Alt X"],
120+
"selector": ".data-jcad-keybinding"
36121
}
37122
]

packages/base/src/panelview/leftpanel.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ export class LeftPanelWidget extends SidePanel {
1414
constructor(options: LeftPanelWidget.IOptions) {
1515
super();
1616
this.addClass('jpcad-sidepanel-widget');
17+
this.addClass('data-jcad-keybinding');
18+
this.node.tabIndex = 0;
1719
this._model = options.model;
1820
this._annotationModel = options.annotationModel;
1921
const header = new ControlPanelHeader();

packages/base/src/panelview/rightpanel.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ export class RightPanelWidget extends SidePanel {
1313
constructor(options: RightPanelWidget.IOptions) {
1414
super();
1515
this.addClass('jpcad-sidepanel-widget');
16+
this.addClass('data-jcad-keybinding');
17+
this.node.tabIndex = 0;
1618
this._model = options.model;
1719
const header = new ControlPanelHeader();
1820
this.header.addWidget(header);

0 commit comments

Comments
 (0)