Skip to content

Commit

Permalink
Make keybindings work in leftpanel, rightpanel & mainview
Browse files Browse the repository at this point in the history
  • Loading branch information
arjxn-py committed Oct 6, 2024
1 parent 622371b commit a307965
Show file tree
Hide file tree
Showing 4 changed files with 129 additions and 21 deletions.
1 change: 1 addition & 0 deletions packages/base/src/3dview/mainview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1359,6 +1359,7 @@ export class MainView extends React.Component<IProps, IStates> {
return (
<div
className="jcad-Mainview"
tabIndex={-2}
style={{
border: this.state.remoteUser
? `solid 3px ${this.state.remoteUser.color}`
Expand Down
147 changes: 126 additions & 21 deletions packages/base/src/keybindings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,42 @@
{
"command": "jupytercad:undo",
"keys": ["Accel Z"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:undo",
"keys": ["Accel Z"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:redo",
"keys": ["Accel Y"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:redo",
"keys": ["Accel Y"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:removeObject",
"keys": ["Delete"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:removeObject",
"keys": ["Delete"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:wireframe",
"keys": ["Accel Space"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:wireframe",
"keys": ["Accel Space"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:executeConsole",
Expand All @@ -37,86 +57,171 @@
{
"command": "jupytercad:sketch",
"keys": ["Accel Alt N"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:sketch",
"keys": ["Accel Alt N"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:newBox",
"keys": ["Accel Alt B"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:newBox",
"keys": ["Accel Alt B"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:newCylinder",
"keys": ["Accel Alt C"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:newCylinder",
"keys": ["Accel Alt C"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:newSphere",
"keys": ["Accel Alt S"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:newSphere",
"keys": ["Accel Alt S"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:newCone",
"keys": ["Accel Alt E"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:newCone",
"keys": ["Accel Alt E"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:newTorus",
"keys": ["Accel Alt T"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:newTorus",
"keys": ["Accel Alt T"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:cut",
"keys": ["Accel Alt X"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:cut",
"keys": ["Accel Alt X"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:extrusion",
"keys": ["Accel Alt E"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:extrusion",
"keys": ["Accel Alt E"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:union",
"keys": ["Accel Alt U"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:union",
"keys": ["Accel Alt U"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:intersection",
"keys": ["Accel Alt I"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:intersection",
"keys": ["Accel Alt I"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:chamfer",
"keys": ["Accel Alt H"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:chamfer",
"keys": ["Accel Alt H"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:fillet",
"keys": ["Accel Alt F"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:fillet",
"keys": ["Accel Alt F"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:updateAxes",
"keys": ["Alt A"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:updateAxes",
"keys": ["Alt A"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:updateExplodedView",
"keys": ["Alt E"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:updateExplodedView",
"keys": ["Alt E"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:updateCameraSettings",
"keys": ["Accel Alt K"],
"selector": "body"
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:updateCameraSettings",
"keys": ["Accel Alt K"],
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:updateClipView",
"keys": ["Alt C"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:updateClipView",
"keys": ["Alt C"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
},
{
"command": "jupytercad:exportJcad",
"keys": ["Accel Alt X"],
"selector": ".jcad-Mainview"
},
{
"command": "jupytercad:exportJcad",
"keys": ["Accel Alt X"],
"selector": "body"
"selector": ".jpcad-sidepanel-widget"
}
]
1 change: 1 addition & 0 deletions packages/base/src/panelview/leftpanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export class LeftPanelWidget extends SidePanel {
constructor(options: LeftPanelWidget.IOptions) {
super();
this.addClass('jpcad-sidepanel-widget');
this.node.tabIndex = 0;
this._model = options.model;
this._annotationModel = options.annotationModel;
const header = new ControlPanelHeader();
Expand Down
1 change: 1 addition & 0 deletions packages/base/src/panelview/rightpanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export class RightPanelWidget extends SidePanel {
constructor(options: RightPanelWidget.IOptions) {
super();
this.addClass('jpcad-sidepanel-widget');
this.node.tabIndex = 0;
this._model = options.model;
const header = new ControlPanelHeader();
this.header.addWidget(header);
Expand Down

0 comments on commit a307965

Please sign in to comment.