Merge branch 'devel_keycontrol' of https://github.com/nEuDy/OctoPrint into nEuDy-devel_keycontrol

Conflicts:
	src/octoprint/static/css/octoprint.css
This commit is contained in:
Gina Häußge 2015-01-10 13:56:51 +01:00
commit 52056b0eeb
2 changed files with 94 additions and 4 deletions

View file

@ -263,4 +263,67 @@ function ControlViewModel(loginStateViewModel, settingsViewModel) {
self.onStartup = function() {
self.requestData();
};
self.keycontrolText = ko.observable("Nothing");
self.doKeyControl = function(data, event) {
switch(event.which) {
case 37: // left arrow key
event.preventDefault();
self.keycontrolText("Left (X-)");
self.sendJogCommand('x',-1);
return;
case 38: // up arrow key
event.preventDefault();
self.keycontrolText("Up (Y+)");
self.sendJogCommand('y',1);
return;
case 39: // right arrow key
event.preventDefault();
self.keycontrolText("Right (X+)");
self.sendJogCommand('x',1);
return;
case 40: // down arrow key
event.preventDefault();
self.keycontrolText("Down (Y-)");
self.sendJogCommand('y',-1);
return;
case 49: // number 1: Distance 0.1
event.preventDefault();
self.keycontrolText("Distance 0.1");
distbtn1.click();
return;
case 50: // number 2: Distance 1
event.preventDefault();
self.keycontrolText("Distance 1");
distbtn2.click();
return;
case 51: // number 3: Distance 10
event.preventDefault();
self.keycontrolText("Distance 10");
distbtn3.click();
return;
case 52: // number 4: Distance 100
event.preventDefault();
self.keycontrolText("Distance 100");
distbtn4.click();
return;
case 87: // w key: z lift up
event.preventDefault();
self.keycontrolText("Z Lift up (Z+)");
self.sendJogCommand('z',1);
return;
case 83: // s key: z lift down
event.preventDefault();
self.keycontrolText("Z Lift down (Z-)");
self.sendJogCommand('z',-1);
return;
default:
event.preventDefault();
self.keycontrolText("no known shortcut");
return false;
}
};
}

View file

@ -387,15 +387,42 @@
<button class="btn box" data-bind="enable: isOperational() && !isPrinting() && loginState.isUser(), click: function() { $root.sendJogCommand('z',-1) }"><i class="icon-arrow-down"></i></button>
</div>
</div>
<!-- Jog distance -->
<div class="distance">
<div class="btn-group" data-toggle="buttons-radio" id="jog_distance">
<button type="button" class="btn distance" data-distance="0.1" data-bind="enable: loginState.isUser()">0.1</button>
<button type="button" class="btn distance" data-distance="1" data-bind="enable: loginState.isUser()">1</button>
<button type="button" class="btn distance active" data-distance="10" data-bind="enable: loginState.isUser()">10</button>
<button type="button" class="btn distance" data-distance="100" data-bind="enable: loginState.isUser()">100</button>
<button type="button" id="distbtn1" class="btn distance" data-distance="0.1" data-bind="enable: loginState.isUser()">0.1</button>
<button type="button" id="distbtn2" class="btn distance" data-distance="1" data-bind="enable: loginState.isUser()">1</button>
<button type="button" id="distbtn3" class="btn distance active" data-distance="10" data-bind="enable: loginState.isUser()">10</button>
<button type="button" id="distbtn4" class="btn distance" data-distance="100" data-bind="enable: loginState.isUser()">100</button>
</div>
</div>
<!-- Shortcut Control -->
<div class="keycontrol">
<h1>{{ _('Key-Control') }}</h1>
<div class="keycontroltext">
<small>
{{ _('Arrow keys') }}:<br>
W, S:<br>
1-4:
</small>
</div>
<div class="keycontroltext">
<small>
<strong>X+,X-, Y+,Y-</strong><br>
<strong>{{ _('lift up/down (Z+,Z-)') }}</strong><br>
<strong>{{ _('Distance') }}&nbsp;(0.1, 1..)</strong>
</small>
</div>
<div class="keycontrolinput">
<input type="text" data-bind="value: $root.keycontrolText, valueUpdate: 'keyup', enable: isOperational() && !isPrinting() && loginState.isUser(), event: { keydown: doKeyControl }"></input>
</div>
<div class="keycontrol">
<em>{{ _('Click into Textfield and press key<br>for control') }}</em>
</div>
</div>
</div>
<!-- Extrusion control panel -->
<div class="jog-panel" style="display: none;" data-bind="visible: loginState.isUser">