From 8b4d534e863b9e775adaec651b17853d62f8cb15 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Mon, 30 May 2022 22:09:45 +0200 Subject: [PATCH] refactor: hide PA input fields if extruder_stepper is configured (#846) --- .../panels/ExtruderControlPanel.vue | 12 +++++++++--- src/store/printer/getters.ts | 19 +++++++++++++++++++ src/store/printer/types.ts | 6 ++++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/components/panels/ExtruderControlPanel.vue b/src/components/panels/ExtruderControlPanel.vue index 23955f22..d154e02d 100644 --- a/src/components/panels/ExtruderControlPanel.vue +++ b/src/components/panels/ExtruderControlPanel.vue @@ -146,8 +146,10 @@ attribute-name="S"> - - + @@ -362,7 +364,7 @@ import { mdiDotsVertical, } from '@mdi/js' import { Component, Mixins, Watch } from 'vue-property-decorator' -import { PrinterStateExtruder, PrinterStateToolchangeMacro } from '@/store/printer/types' +import { PrinterStateExtruder, PrinterStateExtruderStepper, PrinterStateToolchangeMacro } from '@/store/printer/types' import BaseMixin from '../mixins/base' import ControlMixin from '../mixins/control' import NumberInput from '@/components/inputs/NumberInput.vue' @@ -410,6 +412,10 @@ export default class ExtruderControlPanel extends Mixins(BaseMixin, ControlMixin return this.$store.getters['printer/getExtruders'] } + get extruderSteppers(): PrinterStateExtruderStepper[] { + return this.$store.getters['printer/getExtruderSteppers'] + } + get activeExtruder(): string { return this.$store.state.printer.toolhead?.extruder } diff --git a/src/store/printer/getters.ts b/src/store/printer/getters.ts index 99b070bc..943ccc6c 100644 --- a/src/store/printer/getters.ts +++ b/src/store/printer/getters.ts @@ -9,6 +9,7 @@ import { PrinterState, PrinterStateBedMesh, PrinterStateExtruder, + PrinterStateExtruderStepper, PrinterStateFan, PrinterStateFilamentSensors, PrinterStateHeater, @@ -702,6 +703,24 @@ export const getters: GetterTree = { return extruders }, + getExtruderSteppers: (state) => { + const extruderSteppers: PrinterStateExtruderStepper[] = [] + if (state.configfile?.settings) { + Object.keys(state.configfile?.settings) + .filter((key) => key.match(/^extruder_stepper/g)) + .sort() + .forEach((key: string) => { + const extruderStepper = state.configfile?.settings[key] + extruderSteppers.push({ + key: key, + name: key.replace('extruder_stepper ', ''), + extruder: extruderStepper.extruder, + }) + }) + } + return extruderSteppers + }, + getExtrudePossible: (state) => { const extruderName = state.toolhead?.extruder ?? 'extruder' diff --git a/src/store/printer/types.ts b/src/store/printer/types.ts index 5e5cc76d..729353a1 100644 --- a/src/store/printer/types.ts +++ b/src/store/printer/types.ts @@ -217,6 +217,12 @@ export interface PrinterStateExtruder { maxExtrudeOnlyDistance: number } +export interface PrinterStateExtruderStepper { + key: string + name: string + extruder: number +} + export interface PrinterStateToolchangeMacro { name: string active: boolean