fix: recover gcode viewer after switching tabs
Signed-off-by: Stefan Dej <meteyou@gmail.com>
This commit is contained in:
parent
9df182f44a
commit
f2a33a8e48
@ -234,6 +234,7 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
|
||||
async mounted() {
|
||||
this.loadedFile = this.$store.state.gcodeviewer?.loadedFileBackup ?? null
|
||||
viewer = this.$store.state.gcodeviewer?.viewerBackup ?? null
|
||||
|
||||
await this.init()
|
||||
|
||||
@ -244,6 +245,7 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
if (viewer) {
|
||||
viewer.gcodeProcessor.loadingProgressCallback = null
|
||||
this.$store.dispatch('gcodeviewer/setLoadedFileBackup', this.loadedFile)
|
||||
this.$store.dispatch('gcodeviewer/setViewerBackup', viewer)
|
||||
}
|
||||
|
||||
window.removeEventListener('resize', this.eventListenerResize)
|
||||
@ -258,7 +260,7 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
}
|
||||
|
||||
get sdCardFilePath() {
|
||||
return this.$store.state.printer.print_stats.filename ?? ''
|
||||
return this.$store.state.printer.print_stats?.filename ?? ''
|
||||
}
|
||||
|
||||
get currentPosition() {
|
||||
@ -285,7 +287,14 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
canvasElement.className = 'viewer'
|
||||
this.$refs.viewerCanvasContainer.appendChild(canvasElement)
|
||||
await this.$store.dispatch('gcodeviewer/setCanvasBackup', canvasElement)
|
||||
} else this.$refs.viewerCanvasContainer.appendChild(canvasElement)
|
||||
} else {
|
||||
this.$refs.viewerCanvasContainer.appendChild(canvasElement)
|
||||
window.console.log('init else')
|
||||
if (viewer?.gcodeProcessor) {
|
||||
window.console.log('view.gcodeprocessor exists', viewer, viewer?.gcodeProcessor)
|
||||
viewer.gcodeProcessor.updateFilePosition(viewer?.fileSize)
|
||||
}
|
||||
}
|
||||
|
||||
if (viewer === null) {
|
||||
await this.viewerInit(canvasElement)
|
||||
@ -373,7 +382,6 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
this.zSlider = this.maxZSlider
|
||||
this.loading = false
|
||||
viewer.setCursorVisiblity(this.showCursor)
|
||||
viewer.gcodeProcessor.updateFilePosition(viewer.fileSize)
|
||||
|
||||
if (this.loadedFile === this.sdCardFilePath && this.printing_objects.length) {
|
||||
let objects: any = []
|
||||
@ -393,6 +401,9 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
viewer.buildObjects.loadObjectBoundaries(objects)
|
||||
viewer.buildObjects.showObjectSelection(this.showObjectSelection)
|
||||
}
|
||||
|
||||
window.console.log('finishLoad', viewer.fileSize)
|
||||
viewer.gcodeProcessor.updateFilePosition(viewer.fileSize)
|
||||
}
|
||||
|
||||
async fileSelected(e: any) {
|
||||
@ -521,7 +532,7 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
if (newVal > 0 && this.printerIsPrinting && this.tracking && newVal > offset) {
|
||||
viewer.gcodeProcessor.updateFilePosition(newVal - offset)
|
||||
} else {
|
||||
viewer.gcodeProcessor.updateFilePosition(0)
|
||||
viewer.gcodeProcessor.updateFilePosition(viewer.fileSize)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,10 @@ export const actions: ActionTree<GcodeviewerState, RootState> = {
|
||||
commit('reset')
|
||||
},
|
||||
|
||||
setViewerBackup({ commit }, backup) {
|
||||
commit('setViewerBackup', backup)
|
||||
},
|
||||
|
||||
setCanvasBackup({ commit }, backup) {
|
||||
commit('setCanvasBackup', backup)
|
||||
},
|
||||
|
@ -6,6 +6,7 @@ import { getters } from '@/store/gcodeviewer/getters'
|
||||
|
||||
export const getDefaultState = (): GcodeviewerState => {
|
||||
return {
|
||||
viewerBackup: null,
|
||||
canvasBackup: null,
|
||||
loadedFileBackup: null
|
||||
}
|
||||
|
@ -8,6 +8,10 @@ export const mutations: MutationTree<GcodeviewerState> = {
|
||||
Object.assign(state, getDefaultState())
|
||||
},
|
||||
|
||||
setViewerBackup(state, backup) {
|
||||
Vue.set(state, 'viewerBackup', backup)
|
||||
},
|
||||
|
||||
setCanvasBackup(state, backup) {
|
||||
Vue.set(state, 'canvasBackup', backup)
|
||||
},
|
||||
|
@ -1,4 +1,5 @@
|
||||
export interface GcodeviewerState {
|
||||
viewerBackup: any
|
||||
canvasBackup: any
|
||||
loadedFileBackup: string | null
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user