Allow inverting of any control axis from the webui, not just Z
Users who have already set the "invert Z" option must re-enable the setting as the storage of the option has changed.
This commit is contained in:
parent
076c6764a0
commit
8d78104be8
5 changed files with 38 additions and 8 deletions
|
|
@ -665,7 +665,7 @@ def getSettings():
|
|||
"feature": {
|
||||
"gcodeViewer": s.getBoolean(["feature", "gCodeVisualizer"]),
|
||||
"temperatureGraph": s.getBoolean(["feature", "temperatureGraph"]),
|
||||
"invertZ": s.getBoolean(["feature", "invertZ"]),
|
||||
"invertAxes": s.get(["feature", "invertAxes"]),
|
||||
"waitForStart": s.getBoolean(["feature", "waitForStartOnConnect"]),
|
||||
"alwaysSendChecksum": s.getBoolean(["feature", "alwaysSendChecksum"]),
|
||||
"sdSupport": s.getBoolean(["feature", "sdSupport"]),
|
||||
|
|
@ -737,7 +737,7 @@ def setSettings():
|
|||
if "feature" in data.keys():
|
||||
if "gcodeViewer" in data["feature"].keys(): s.setBoolean(["feature", "gCodeVisualizer"], data["feature"]["gcodeViewer"])
|
||||
if "temperatureGraph" in data["feature"].keys(): s.setBoolean(["feature", "temperatureGraph"], data["feature"]["temperatureGraph"])
|
||||
if "invertZ" in data["feature"].keys(): s.setBoolean(["feature", "invertZ"], data["feature"]["invertZ"])
|
||||
if "invertAxes" in data["feature"].keys(): s.set(["feature", "invertAxes"], data["feature"]["invertAxes"])
|
||||
if "waitForStart" in data["feature"].keys(): s.setBoolean(["feature", "waitForStartOnConnect"], data["feature"]["waitForStart"])
|
||||
if "alwaysSendChecksum" in data["feature"].keys(): s.setBoolean(["feature", "alwaysSendChecksum"], data["feature"]["alwaysSendChecksum"])
|
||||
if "sdSupport" in data["feature"].keys(): s.setBoolean(["feature", "sdSupport"], data["feature"]["sdSupport"])
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ default_settings = {
|
|||
"feature": {
|
||||
"gCodeVisualizer": True,
|
||||
"temperatureGraph": True,
|
||||
"invertZ": False,
|
||||
"invertAxes": "",
|
||||
"waitForStartOnConnect": False,
|
||||
"alwaysSendChecksum": False,
|
||||
"sdSupport": True,
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ function ControlViewModel(loginStateViewModel, settingsViewModel) {
|
|||
if (typeof distance === "undefined")
|
||||
distance = $('#jog_distance button.active').data('distance');
|
||||
|
||||
if (axis == "z" && self.settings.feature_invertZ()) {
|
||||
if (self.settings.getFeature_InvertAxis(axis)) {
|
||||
multiplier *= -1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
|
||||
self.feature_gcodeViewer = ko.observable(undefined);
|
||||
self.feature_temperatureGraph = ko.observable(undefined);
|
||||
self.feature_invertZ = ko.observable(undefined);
|
||||
self.feature_invertAxes = ko.observable(undefined);
|
||||
self.feature_waitForStart = ko.observable(undefined);
|
||||
self.feature_alwaysSendChecksum = ko.observable(undefined);
|
||||
self.feature_sdSupport = ko.observable(undefined);
|
||||
|
|
@ -75,6 +75,29 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
self.terminalFilters.remove(filter);
|
||||
};
|
||||
|
||||
self.getFeature_InvertAxis = function(axis) {
|
||||
return (self.feature_invertAxes() || "").indexOf(axis) != -1;
|
||||
};
|
||||
|
||||
self.setFeature_InvertAxis = function(axis, value) {
|
||||
var currInvert = self.feature_invertAxes() || "";
|
||||
var currValue = self.getFeature_InvertAxis(axis);
|
||||
if (value && !currValue)
|
||||
self.feature_invertAxes(currInvert + axis);
|
||||
else if (!value && currValue)
|
||||
self.feature_invertAxes(currInvert.replace(axis, ""));
|
||||
};
|
||||
|
||||
self.koInvertAxis = function (axis) { return ko.computed({
|
||||
read: function () { return self.getFeature_InvertAxis(axis); },
|
||||
write: function (value) { self.setFeature_InvertAxis(axis, value); },
|
||||
owner: self
|
||||
})};
|
||||
|
||||
self.feature_invertX = self.koInvertAxis('x');
|
||||
self.feature_invertY = self.koInvertAxis('y');
|
||||
self.feature_invertZ = self.koInvertAxis('z');
|
||||
|
||||
self.requestData = function() {
|
||||
$.ajax({
|
||||
url: AJAX_BASEURL + "settings",
|
||||
|
|
@ -106,7 +129,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
|
||||
self.feature_gcodeViewer(response.feature.gcodeViewer);
|
||||
self.feature_temperatureGraph(response.feature.temperatureGraph);
|
||||
self.feature_invertZ(response.feature.invertZ);
|
||||
self.feature_invertAxes(response.feature.invertAxes);
|
||||
self.feature_waitForStart(response.feature.waitForStart);
|
||||
self.feature_alwaysSendChecksum(response.feature.alwaysSendChecksum);
|
||||
self.feature_sdSupport(response.feature.sdSupport);
|
||||
|
|
@ -166,7 +189,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
"feature": {
|
||||
"gcodeViewer": self.feature_gcodeViewer(),
|
||||
"temperatureGraph": self.feature_temperatureGraph(),
|
||||
"invertZ": self.feature_invertZ(),
|
||||
"invertAxes": self.feature_invertAxes(),
|
||||
"waitForStart": self.feature_waitForStart(),
|
||||
"alwaysSendChecksum": self.feature_alwaysSendChecksum(),
|
||||
"sdSupport": self.feature_sdSupport(),
|
||||
|
|
|
|||
|
|
@ -185,8 +185,15 @@
|
|||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
Invert controls
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: feature_invertZ" id="settings-featureInvertZ"> Invert Z axis controls
|
||||
<input type="checkbox" data-bind="checked: feature_invertX" id="settings-featureInvertX"> X axis
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: feature_invertY" id="settings-featureInvertY"> Y axis
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: feature_invertZ" id="settings-featureInvertZ"> Z axis
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in a new issue