+ {{ $t('ConnectionDialog.CannotConnectTo', { host: formatHostname }) }}
+
+
+ {{ $t('ConnectionDialog.ErrorMessage', { message: connectionFailedMessage }) }}
+
+
{{ $t('ConnectionDialog.TryAgain') }}
-
+
-
+
@@ -52,10 +47,6 @@ export default class TheConnectingDialog extends Mixins(BaseMixin, ThemeMixin) {
counter = 0
- get protocol() {
- return this.$store.state.socket.protocol
- }
-
get hostname() {
return this.$store.state.socket.hostname
}
@@ -94,6 +85,10 @@ export default class TheConnectingDialog extends Mixins(BaseMixin, ThemeMixin) {
return this.formatHostname
}
+ get connectionFailedMessage() {
+ return this.$store.state.socket.connectionFailedMessage ?? null
+ }
+
reconnect() {
this.counter++
this.$store.dispatch('socket/setData', { connectingFailed: false })
diff --git a/src/components/TheEditor.vue b/src/components/TheEditor.vue
index e740c7db8..215ed1ccd 100644
--- a/src/components/TheEditor.vue
+++ b/src/components/TheEditor.vue
@@ -31,6 +31,10 @@
{{ mdiHelp }}
{{ $t('Editor.ConfigReference') }}
+
+ {{ mdiFormatListCheckbox }}
+ {{ $t('Editor.FileStructure') }}
+
{{ mdiCloseThick }}
-
+
+ :file-extension="fileExtension"
+ class="codemirror"
+ @lineChange="lineChanges" />
+
-
+
{{ snackbarHeadline }}
@@ -123,7 +160,7 @@
+
+
diff --git a/src/components/inputs/Codemirror.vue b/src/components/inputs/Codemirror.vue
index 9c54459ec..232e675e5 100644
--- a/src/components/inputs/Codemirror.vue
+++ b/src/components/inputs/Codemirror.vue
@@ -1,13 +1,13 @@
diff --git a/src/components/panels/Extruder/ExtruderControlPanelControl.vue b/src/components/panels/Extruder/ExtruderControlPanelControl.vue
index 25d1d053b..b430f68ab 100644
--- a/src/components/panels/Extruder/ExtruderControlPanelControl.vue
+++ b/src/components/panels/Extruder/ExtruderControlPanelControl.vue
@@ -93,7 +93,7 @@
diff --git a/src/components/panels/MachineSettingsPanel.vue b/src/components/panels/MachineSettingsPanel.vue
index f2fc497dd..73319a34a 100644
--- a/src/components/panels/MachineSettingsPanel.vue
+++ b/src/components/panels/MachineSettingsPanel.vue
@@ -87,11 +87,12 @@
:output-error-msg="true"
:has-spinner="true"
:spinner-factor="5"
- :step="0.01"
- :min="0.0"
- :max="0.99"
- :dec="2"
- @submit="sendCmd" />
+ :step="1"
+ :min="0"
+ :max="99"
+ :dec="0"
+ unit="%"
+ @submit="sendCruiseRatioCmd" />
@@ -144,7 +145,7 @@ export default class MachineSettingsPanel extends Mixins(BaseMixin) {
if (value === null) return null
- return Math.round(value * 100) / 100
+ return Math.round(value * 100)
}
get squareCornerVelocity(): number {
@@ -166,7 +167,7 @@ export default class MachineSettingsPanel extends Mixins(BaseMixin) {
get defaultMinimumCruiseRatio(): number {
const value = this.configPrinter.minimum_cruise_ratio ?? 0.5
- return Math.round(value / 10) * 10
+ return Math.round(value * 100)
}
get defaultSquareCornerVelocity(): number {
@@ -175,6 +176,12 @@ export default class MachineSettingsPanel extends Mixins(BaseMixin) {
return Math.floor(value * 10) / 10
}
+ sendCruiseRatioCmd(params: { name: string; value: number }): void {
+ params.value = params.value / 100
+
+ this.sendCmd(params)
+ }
+
@Debounce(500)
sendCmd(params: { name: string; value: number }): void {
const gcode = `SET_VELOCITY_LIMIT ${params.name}=${params.value}`
diff --git a/src/components/panels/StatusPanel.vue b/src/components/panels/StatusPanel.vue
index ba405f501..d0a3833bb 100644
--- a/src/components/panels/StatusPanel.vue
+++ b/src/components/panels/StatusPanel.vue
@@ -110,6 +110,10 @@
+
@@ -141,9 +145,11 @@ import {
mdiDotsVertical,
} from '@mdi/js'
import { PrinterStateMacro } from '@/store/printer/types'
+import CancelJobDialog from '@/components/dialogs/CancelJobDialog.vue'
@Component({
components: {
+ CancelJobDialog,
KlippyStatePanel,
MinSettingsPanel,
Panel,
@@ -166,6 +172,7 @@ export default class StatusPanel extends Mixins(BaseMixin) {
bigThumbnail: any
}
+ showCancelJobDialog = false
boolShowObjects = false
boolShowPauseAtLayer = false
@@ -392,6 +399,17 @@ export default class StatusPanel extends Mixins(BaseMixin) {
}
btnCancelJob() {
+ const confirmOnCancelJob = this.$store.state.gui.uiSettings.confirmOnCancelJob
+ if (confirmOnCancelJob) {
+ this.showCancelJobDialog = true
+ return
+ }
+
+ this.cancelJob()
+ }
+
+ cancelJob() {
+ this.showCancelJobDialog = false
this.$socket.emit('printer.print.cancel', {}, { loading: 'statusPrintCancel' })
}
diff --git a/src/components/settings/SettingsUiSettingsTab.vue b/src/components/settings/SettingsUiSettingsTab.vue
index 0bc26e456..14bb0f33e 100644
--- a/src/components/settings/SettingsUiSettingsTab.vue
+++ b/src/components/settings/SettingsUiSettingsTab.vue
@@ -178,6 +178,13 @@
+
+
+
+
@@ -426,6 +433,14 @@ export default class SettingsUiSettingsTab extends Mixins(BaseMixin, ThemeMixin)
this.$store.dispatch('gui/saveSetting', { name: 'uiSettings.confirmOnPowerDeviceChange', value: newVal })
}
+ get confirmOnCancelJob() {
+ return this.$store.state.gui.uiSettings.confirmOnCancelJob
+ }
+
+ set confirmOnCancelJob(newVal) {
+ this.$store.dispatch('gui/saveSetting', { name: 'uiSettings.confirmOnCancelJob', value: newVal })
+ }
+
get lockSliders() {
return this.$store.state.gui.uiSettings.lockSlidersOnTouchDevices
}
diff --git a/src/components/webcams/WebcamWrapperItem.vue b/src/components/webcams/WebcamWrapperItem.vue
index 8d95a42f7..00d4a9078 100644
--- a/src/components/webcams/WebcamWrapperItem.vue
+++ b/src/components/webcams/WebcamWrapperItem.vue
@@ -1,7 +1,7 @@
-
+
diff --git a/src/components/webcams/streamers/Mjpegstreamer.vue b/src/components/webcams/streamers/Mjpegstreamer.vue
index d42ecf78d..03706b94a 100644
--- a/src/components/webcams/streamers/Mjpegstreamer.vue
+++ b/src/components/webcams/streamers/Mjpegstreamer.vue
@@ -1,47 +1,62 @@
-
{{ $t('Panels.WebcamPanel.FPS') }}: {{ fpsOutput }}
+
+ {{ $t('Panels.WebcamPanel.FPS') }}: {{ fpsOutput }}
+
+
+
+
+ {{ statusMessage }}
+
+
@@ -261,4 +355,8 @@ export default class Mjpegstreamer extends Mixins(BaseMixin, WebcamMixin) {
html.theme--light .webcamFpsOutput {
background: rgba(255, 255, 255, 0.7);
}
+
+._webcam_mjpegstreamer_output {
+ aspect-ratio: calc(3 / 2);
+}
diff --git a/src/components/webcams/streamers/MjpegstreamerAdaptive.vue b/src/components/webcams/streamers/MjpegstreamerAdaptive.vue
index 39f04cc30..cac1ee5f8 100644
--- a/src/components/webcams/streamers/MjpegstreamerAdaptive.vue
+++ b/src/components/webcams/streamers/MjpegstreamerAdaptive.vue
@@ -1,55 +1,58 @@
-
-
-
-
-