fix: UI fixes related to feedback form beta-phase (#494)
* fix: truncated settings menu Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: change probe chips to label Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor(timelapse): change button color and make responsive Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: change display helpers of some buttons * fix(#390): encodeURI of thumbnails in files page Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: responsivity of timelapse-page Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor(timelapse): more responsiveness Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor(timelapse): no frames found visibility Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: tooltip on disabled retract /extrude buttons * refactor(editor): show "read-only" in title if file is not writable * fix: visibility of reload button Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: select printer dialog new ui style Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: add attach prop to inputs w dropdowns Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: paddings of panels on spec. viewports Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: hide spin buttons on number inputs Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: hide-spin-buttons after merging timelapseTab Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: add overlay-scrollbar to sidebar Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: scrollbars in settingsmenu Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * feat: remember current path when leaving gcode-files-page Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: remove comment in gcodefilespanel Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * feat: remember current path in timlapse files panel Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * feat: remember current path in config files panel Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: console text colors and add css classes Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: filepanel-path-persistance to new db layout Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: settings tab scrollbars Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: button logic in heigthmap Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: color home button in heightmap Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: heightmap add color to small buttons Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * refactor: sidebar behavior on touch devices Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: reapply tooltip patch after merge Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: temp sidebar remove touch-condition Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * feat: add save-action for non persistant settings Signed-off-by: steadyjaw <martin.keilaus@gmail.com> * fix: use new save action in setters Signed-off-by: steadyjaw <martin.keilaus@gmail.com>
This commit is contained in:
parent
c1b344e94c
commit
b6966f05ee
@ -3,7 +3,7 @@
|
||||
<v-btn icon tile @click="showSettings = true">
|
||||
<v-icon>mdi-cogs</v-icon>
|
||||
</v-btn>
|
||||
<v-dialog v-model="showSettings" width="900" persistent :fullscreen="isMobile" @keydown.esc="showSettings = false">
|
||||
<v-dialog v-model="showSettings" width="900" persistent :fullscreen="isMobile" @keydown.esc="showSettings = false" scrollable>
|
||||
<panel :title="$t('Settings.InterfaceSettings')" icon="mdi-cogs" card-class="settings-menu-dialog" :margin-bottom="false" style="overflow: hidden;" :height="isMobile ? 0 : 548">
|
||||
<template v-slot:buttons>
|
||||
<v-btn icon tile @click="showSettings = false"><v-icon>mdi-close-thick</v-icon></v-btn>
|
||||
@ -187,18 +187,18 @@ export default class TheSettingsMenu extends Mixins(BaseMixin) {
|
||||
|
||||
<style scoped>
|
||||
.settings-tabs {
|
||||
height: auto;
|
||||
min-height: 100%;
|
||||
max-height: calc(var(--app-height) - 96px);
|
||||
height: calc(var(--app-height) - 96px);
|
||||
}
|
||||
|
||||
.settings-tabs-bar {
|
||||
border-right: 1px solid rgba(255, 255, 255, 0.12);
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.settings-tabs-bar.height500,
|
||||
.settings-tabs.height500 {
|
||||
max-height: 500px;
|
||||
height: 500px;
|
||||
max-height: calc(var(--app-height) - 111px);
|
||||
}
|
||||
</style>
|
||||
|
||||
|
@ -2,24 +2,33 @@
|
||||
.nav-logo {
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.small-list-item {
|
||||
height: var(--sidebar-menu-item-height);
|
||||
}
|
||||
|
||||
.no-text-decoration {
|
||||
text-decoration: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.no-background:before {
|
||||
background-color: rgba(255, 255, 255, 0) !important;
|
||||
}
|
||||
|
||||
.no-border {
|
||||
border: 0 !important;
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.active-nav-item {
|
||||
border-right: 4px solid var(--v-primary-base);
|
||||
}
|
||||
|
||||
.menu-item-icon {
|
||||
opacity: .85;
|
||||
}
|
||||
|
||||
.menu-item-title {
|
||||
line-height: 30px;
|
||||
font-size: 14px;
|
||||
@ -27,14 +36,32 @@
|
||||
text-transform: uppercase;
|
||||
opacity: .85;
|
||||
}
|
||||
</style>
|
||||
|
||||
.nav-scrollbar {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<v-navigation-drawer v-model="naviDrawer" :src="sidebarBackground" :mini-variant="(navigationStyle === 'iconsOnly')" :key="navigationStyle" :width="navigationWidth" clipped app>
|
||||
<v-navigation-drawer v-model="naviDrawer" :src="sidebarBackground" :mini-variant="(navigationStyle === 'iconsOnly')" :key="navigationStyle" :width="navigationWidth" :temporary="boolNaviTemp" :hide-overlay="!isMobile" clipped app :style="cssVars">
|
||||
<overlay-scrollbars class="nav-scrollbar">
|
||||
<v-list class="pr-0 pt-0 ml-0">
|
||||
<v-list-item-group active-class="active-nav-item">
|
||||
<v-list-item
|
||||
router to="/"
|
||||
class="d-flex d-sm-none sidebar-logo no-text-decoration no-background no-border"
|
||||
:style="'height: ' + topbarHeight + 'px'"
|
||||
:ripple="false"
|
||||
>
|
||||
<template v-if="sidebarLogo">
|
||||
<img :src="sidebarLogo" style="height: 32px;" class="nav-logo mr-3" alt="Logo" />
|
||||
</template>
|
||||
<template v-else>
|
||||
<mainsail-logo :color="logoColor" style="height: 32px;" class="nav-logo mr-4" :ripple="false"></mainsail-logo>
|
||||
</template>
|
||||
<span class="text-h6 font-weight-regular text-truncate"> {{ printerName }} </span>
|
||||
</v-list-item>
|
||||
<template v-if="countPrinters">
|
||||
<v-tooltip right>
|
||||
<v-tooltip right :open-delay="500" :disabled="navigationStyle !== 'iconsOnly'">
|
||||
<template v-slot:activator="{ on, attrs }">
|
||||
<v-list-item
|
||||
router to="/allPrinters"
|
||||
@ -51,7 +78,7 @@
|
||||
|
||||
</v-list-item>
|
||||
</template>
|
||||
<span v-if="navigationStyle === 'iconsOnly'">{{ $t("App.Printers") }}</span>
|
||||
<span>{{ $t("App.Printers") }}</span>
|
||||
</v-tooltip>
|
||||
<v-divider class="my-1"></v-divider>
|
||||
</template>
|
||||
@ -77,6 +104,7 @@
|
||||
</div>
|
||||
</v-list-item-group>
|
||||
</v-list>
|
||||
</overlay-scrollbars>
|
||||
<template v-slot:append>
|
||||
<v-list-item class="small-list-item mb-2">
|
||||
<v-list-item-icon class="menu-item-icon">
|
||||
@ -95,17 +123,20 @@ import BaseMixin from '@/components/mixins/base'
|
||||
import {PrinterStateKlipperConfig} from '@/store/printer/types'
|
||||
import TheSelectPrinterDialog from '@/components/TheSelectPrinterDialog.vue'
|
||||
import AboutModal from '@/components/modals/AboutModal.vue'
|
||||
import {navigationWidth} from '@/store/variables'
|
||||
import {navigationWidth, topbarHeight} from '@/store/variables'
|
||||
import MainsailLogo from '@/components/ui/MainsailLogo.vue'
|
||||
|
||||
@Component({
|
||||
components: {
|
||||
TheSelectPrinterDialog,
|
||||
AboutModal
|
||||
AboutModal,
|
||||
MainsailLogo
|
||||
}
|
||||
})
|
||||
|
||||
export default class TheSidebar extends Mixins(BaseMixin) {
|
||||
navigationWidth = navigationWidth
|
||||
topbarHeight = topbarHeight
|
||||
|
||||
get naviDrawer(): boolean {
|
||||
return this.$store.state.naviDrawer
|
||||
@ -157,6 +188,39 @@ export default class TheSidebar extends Mixins(BaseMixin) {
|
||||
return this.$store.getters['farm/countPrinters']
|
||||
}
|
||||
|
||||
get boolNaviTemp(): boolean {
|
||||
if(!this.isMobile && this.$vuetify.breakpoint.mdAndDown) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
get cssVars(): any {
|
||||
if(this.boolNaviTemp){
|
||||
return {
|
||||
'top': `${topbarHeight}px !important`,
|
||||
'padding-bottom': `${topbarHeight}px`
|
||||
}
|
||||
}
|
||||
return {}
|
||||
}
|
||||
|
||||
get sidebarLogo(): string {
|
||||
return this.$store.getters['files/getSidebarLogo']
|
||||
}
|
||||
|
||||
get logoColor(): string {
|
||||
return this.$store.state.gui.uiSettings.logo
|
||||
}
|
||||
|
||||
get printerName():string {
|
||||
if (this.$store.state.gui.general.printername.length)
|
||||
return this.$store.state.gui.general.printername
|
||||
|
||||
return this.$store.state.printer.hostname
|
||||
}
|
||||
|
||||
|
||||
showInNavi(route: AppRoute): boolean {
|
||||
if (['shutdown', 'error', 'disconnected'].includes(this.klippy_state) && !route.alwaysShow) return false
|
||||
else if (route.title === 'Webcam' && !this.boolNaviWebcam) return false
|
||||
|
@ -25,8 +25,8 @@
|
||||
|
||||
<template>
|
||||
<v-row :class="'ma-0 '+entryStyle">
|
||||
<v-col class="col-auto pr-0 text--secondary">{{ event.formatTime }}</v-col>
|
||||
<v-col :class="colorConsoleMessage(event)" v-html="event.formatMessage" @click.capture="commandClick"></v-col>
|
||||
<v-col class="col-auto pr-0 text--disabled console-time">{{ event.formatTime }}</v-col>
|
||||
<v-col :class="colorConsoleMessage(event) + ' ' + 'console-message'" v-html="event.formatMessage" @click.capture="commandClick"></v-col>
|
||||
</v-row>
|
||||
</template>
|
||||
|
||||
@ -46,9 +46,9 @@ export default class ConsoleTableEntry extends Vue {
|
||||
}
|
||||
|
||||
colorConsoleMessage(item: ServerStateEvent): string {
|
||||
if (item.message.startsWith('!! ')) return 'red--text'
|
||||
if (item.message.startsWith('!! ')) return 'error--text'
|
||||
|
||||
return 'white--text'
|
||||
return 'text--primary'
|
||||
}
|
||||
|
||||
commandClick(event: Event) {
|
||||
|
@ -470,7 +470,6 @@ export default class GcodefilesPanel extends Mixins(BaseMixin) {
|
||||
private search = ''
|
||||
private selected = []
|
||||
private hideHeaderColums = []
|
||||
private currentPath = 'gcodes'
|
||||
private dropzone = {
|
||||
visibility: 'hidden',
|
||||
opacity: 0,
|
||||
@ -563,6 +562,14 @@ export default class GcodefilesPanel extends Mixins(BaseMixin) {
|
||||
(value: string) => value.indexOf(' ') === -1 || 'Name contains spaces!'
|
||||
]
|
||||
|
||||
get currentPath() {
|
||||
return this.$store.state.gui.view.gcodefiles.currentPath
|
||||
}
|
||||
|
||||
set currentPath(newVal) {
|
||||
this.$store.dispatch('gui/saveSettingWithoutUpload', { name: 'view.gcodefiles.currentPath', value: newVal })
|
||||
}
|
||||
|
||||
get headers() {
|
||||
const headers = [
|
||||
{ text: '', value: '', align: 'left', configable: false, visible: true, filterable: false },
|
||||
|
@ -365,8 +365,6 @@ export default class ConfigFilesPanel extends Mixins(BaseMixin) {
|
||||
private selected = []
|
||||
private options = { }
|
||||
private currentPage = 1
|
||||
private currentPath = ''
|
||||
private root = 'config'
|
||||
private contextMenu: contextMenu = {
|
||||
shown: false,
|
||||
isDirectory: false,
|
||||
@ -580,6 +578,22 @@ export default class ConfigFilesPanel extends Mixins(BaseMixin) {
|
||||
return this.$store.state.server.registered_directories.filter((dir: string) => !hiddenRootDirectories.includes(dir)).sort()
|
||||
}
|
||||
|
||||
get root() {
|
||||
return this.$store.state.gui.view.configfiles.rootPath
|
||||
}
|
||||
|
||||
set root(newVal) {
|
||||
this.$store.dispatch('gui/saveSettingWithoutUpload', { name: 'view.configfiles.rootPath', value: newVal })
|
||||
}
|
||||
|
||||
get currentPath() {
|
||||
return this.$store.state.gui.view.configfiles.currentPath
|
||||
}
|
||||
|
||||
set currentPath(newVal) {
|
||||
this.$store.dispatch('gui/saveSettingWithoutUpload', { name: 'view.configfiles.currentPath', value: newVal })
|
||||
}
|
||||
|
||||
refreshFileList() {
|
||||
this.$socket.emit('server.files.get_directory', { path: this.absolutePath.substring(1) }, { action: 'files/getDirectory' })
|
||||
}
|
||||
|
@ -39,7 +39,7 @@
|
||||
<v-card-text>
|
||||
<v-row>
|
||||
<v-col class="col-12 py-2 d-flex align-center">
|
||||
<span><b>{{ $t('Timelapse.CurrentPath') }}:</b> {{ this.currentPath !== 'timelapse' ? "/"+this.currentPath.substring(7) : "/" }}</span>
|
||||
<span><b>{{ $t('Timelapse.CurrentPath') }}:</b> {{ this.currentPath !== 'timelapse' ? "/"+this.currentPath.substring(10) : "/" }}</span>
|
||||
<v-spacer></v-spacer>
|
||||
<template v-if="this.disk_usage !== null">
|
||||
<v-tooltip top>
|
||||
@ -284,7 +284,6 @@ export default class TimelapseFilesPanel extends Mixins(BaseMixin) {
|
||||
}
|
||||
|
||||
private search = ''
|
||||
private currentPath = 'timelapse'
|
||||
private boolVideoDialog = false
|
||||
private videoDialogFilename = ''
|
||||
|
||||
@ -405,6 +404,14 @@ export default class TimelapseFilesPanel extends Mixins(BaseMixin) {
|
||||
}) ?? []
|
||||
}
|
||||
|
||||
get currentPath() {
|
||||
return this.$store.state.gui.view.timelapse.currentPath
|
||||
}
|
||||
|
||||
set currentPath(newVal) {
|
||||
this.$store.dispatch('gui/saveSettingWithoutUpload', { name: 'view.timelapse.currentPath', value: newVal })
|
||||
}
|
||||
|
||||
createDirectory() {
|
||||
this.dialogCreateDirectory.name = ''
|
||||
this.dialogCreateDirectory.show = true
|
||||
|
@ -8,23 +8,23 @@
|
||||
<v-col class="col-12 col-md-8 pb-0">
|
||||
<panel card-class="heightmap-map-panel" :title="$t('Heightmap.Heightmap')" icon="mdi-grid">
|
||||
<template v-slot:buttons-title>
|
||||
<v-btn text tile color="primary" class="ml-1 d-none d-sm-inline-flex" v-if="bed_mesh" @click="openRenameProfile()">{{ bed_mesh ? bed_mesh.profile_name : "" }}</v-btn>
|
||||
<v-btn text tile color="primary" class="ml-1 d-none d-sm-inline-flex" v-if="meshLoaded" @click="openRenameProfile()">{{ bed_mesh.profile_name }}</v-btn>
|
||||
</template>
|
||||
<template v-slot:buttons>
|
||||
<v-btn text tile color="primary" class=" d-sm-none" @click="openRenameProfile()">{{ bed_mesh ? bed_mesh.profile_name : "" }}</v-btn>
|
||||
<v-btn icon tile class="d-none d-sm-flex" @click="homePrinter" :loading="loadings.includes('homeAll')" :title="$t('Heightmap.TitleHomeAll')" :ripple="true"><v-icon>mdi-home</v-icon></v-btn>
|
||||
<v-btn text tile class="d-none d-sm-flex" @click="clearBedMesh" :loading="loadings.includes('bedMeshClear')" v-if="bed_mesh" :title="$t('Heightmap.TitleClear')">{{ $t('Heightmap.Clear') }}</v-btn>
|
||||
<v-btn text tile color="primary" class="d-sm-none" v-if="meshLoaded" @click="openRenameProfile()">{{ bed_mesh ? bed_mesh.profile_name : "" }}</v-btn>
|
||||
<v-btn icon tile class="d-none d-sm-flex" @click="homePrinter" :color="homedAxes.includes('xyz') ? 'primary' : 'warning'" :loading="loadings.includes('homeAll')" :title="$t('Heightmap.TitleHomeAll')" :ripple="true"><v-icon>mdi-home</v-icon></v-btn>
|
||||
<v-btn text tile class="d-none d-sm-flex" @click="clearBedMesh" :loading="loadings.includes('bedMeshClear')" v-if="meshLoaded" :title="$t('Heightmap.TitleClear')">{{ $t('Heightmap.Clear') }}</v-btn>
|
||||
<v-btn text tile class="d-none d-sm-flex" @click="calibrateDialog = true" :loading="loadings.includes('bedMeshCalibrate')" :disabled="printerIsPrinting" :title="$t('Heightmap.TitleCalibrate')">{{ $t('Heightmap.Calibrate') }}</v-btn>
|
||||
</template>
|
||||
<v-card-text class="d-sm-none text-center pb-0">
|
||||
<v-item-group tile class="v-btn-toggle" name="controllers">
|
||||
<v-btn text small class="px-2 minwidth-0" color="primary" @click="homePrinter" :loading="loadings.includes('homeAll')" :title="$t('Heightmap.TitleHomeAll')"><v-icon small>mdi-home</v-icon></v-btn>
|
||||
<v-btn text small class="px-2 minwidth-0" :color="homedAxes.includes('xyz') ? 'primary' : 'warning'" @click="homePrinter" :loading="loadings.includes('homeAll')" :title="$t('Heightmap.TitleHomeAll')"><v-icon :color="homedAxes.includes('xyz') ? 'primary' : 'warning'" small>mdi-home</v-icon></v-btn>
|
||||
<v-btn text small class="px-2 minwidth-0" color="primary" @click="clearBedMesh" :loading="loadings.includes('bedMeshClear')" v-if="bed_mesh" :title="$t('Heightmap.TitleClear')">{{ $t('Heightmap.Clear') }}</v-btn>
|
||||
<v-btn text small class="px-2 minwidth-0" color="primary" @click="calibrateDialog = true" :loading="loadings.includes('bedMeshCalibrate')" :disabled="printerIsPrinting" :title="$t('Heightmap.TitleCalibrate')">{{ $t('Heightmap.Calibrate') }}</v-btn>
|
||||
</v-item-group>
|
||||
</v-card-text>
|
||||
<template v-if="!(bed_mesh)">
|
||||
<v-card-text>
|
||||
<template v-if="!(meshLoaded)">
|
||||
<v-card-text class="text-center py-3 font-italic">
|
||||
{{ $t('Heightmap.NoBedMeshHasBeenLoadedYet') }}
|
||||
</v-card-text>
|
||||
</template>
|
||||
@ -66,7 +66,7 @@
|
||||
</panel>
|
||||
</v-col>
|
||||
<v-col class="col-12 col-md-4">
|
||||
<panel :title="$t('Heightmap.CurrentMesh.Headline')" v-if="bed_mesh !== null && bed_mesh.profile_name !== ''" card-class="heightmap-current-mesh-panel" icon="mdi-information" :collapsible="true" class="mt-0">
|
||||
<panel :title="$t('Heightmap.CurrentMesh.Headline')" v-if="meshLoaded" card-class="heightmap-current-mesh-panel" icon="mdi-information" :collapsible="true" class="mt-0">
|
||||
<v-card-text class="py-3 px-0">
|
||||
<v-row class="px-3">
|
||||
<v-col>{{ $t('Heightmap.CurrentMesh.Name') }}</v-col>
|
||||
@ -184,6 +184,7 @@
|
||||
<script lang="ts">
|
||||
import {Component, Mixins, Watch} from 'vue-property-decorator'
|
||||
import BaseMixin from '@/components/mixins/base'
|
||||
import ControlMixin from '@/components/mixins/control'
|
||||
|
||||
import { createComponent } from 'echarts-for-vue'
|
||||
import * as echarts from 'echarts'
|
||||
@ -211,7 +212,7 @@ interface HeightmapSerie {
|
||||
ECharts: createComponent({ echarts }),
|
||||
}
|
||||
})
|
||||
export default class PageHeightmap extends Mixins(BaseMixin) {
|
||||
export default class PageHeightmap extends Mixins(BaseMixin, ControlMixin) {
|
||||
|
||||
$refs!: {
|
||||
// eslint-disable-next-line
|
||||
@ -726,6 +727,14 @@ export default class PageHeightmap extends Mixins(BaseMixin) {
|
||||
}
|
||||
}
|
||||
|
||||
get meshLoaded() {
|
||||
if(this.bed_mesh !== null) {
|
||||
return this.bed_mesh.profile_name !== ''
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
tooltipFormatter(data: any): string {
|
||||
const outputArray: string[] = []
|
||||
outputArray.push('<b>'+data.seriesName+'</b>')
|
||||
|
@ -117,6 +117,10 @@ export const actions: ActionTree<GuiState, RootState> = {
|
||||
Vue.$socket.emit('server.database.post_item', { namespace: 'mainsail', key: payload.name, value: payload.value })
|
||||
},
|
||||
|
||||
saveSettingWithoutUpload({ commit }, payload) {
|
||||
commit('saveSetting', payload)
|
||||
},
|
||||
|
||||
updateSettings(_, payload) {
|
||||
const keyName = payload.keyName
|
||||
let newState = payload.newVal
|
||||
|
@ -143,7 +143,9 @@ export const getDefaultState = (): GuiState => {
|
||||
sortBy: 'filename',
|
||||
sortDesc: false,
|
||||
showHiddenFiles: false,
|
||||
hideBackupFiles: false
|
||||
hideBackupFiles: false,
|
||||
currentPath: '',
|
||||
rootPath: 'config'
|
||||
},
|
||||
gcodefiles: {
|
||||
countPerPage: 10,
|
||||
@ -151,7 +153,8 @@ export const getDefaultState = (): GuiState => {
|
||||
sortDesc: true,
|
||||
showHiddenFiles: false,
|
||||
showPrintedFiles: true,
|
||||
hideMetadataColums: []
|
||||
hideMetadataColums: [],
|
||||
currentPath: 'gcodes'
|
||||
},
|
||||
heightmap: {
|
||||
probed: true,
|
||||
@ -193,6 +196,7 @@ export const getDefaultState = (): GuiState => {
|
||||
sortBy: 'modified',
|
||||
sortDesc: true,
|
||||
showHiddenFiles: false,
|
||||
currentPath: 'timelapse'
|
||||
},
|
||||
webcam: {
|
||||
currentCam: {
|
||||
|
@ -93,6 +93,8 @@ export interface GuiState {
|
||||
sortDesc: boolean
|
||||
showHiddenFiles: boolean
|
||||
hideBackupFiles: boolean
|
||||
currentPath: string
|
||||
rootPath: string
|
||||
}
|
||||
gcodefiles: {
|
||||
countPerPage: number
|
||||
@ -101,6 +103,7 @@ export interface GuiState {
|
||||
showHiddenFiles: boolean
|
||||
showPrintedFiles: boolean
|
||||
hideMetadataColums: string[]
|
||||
currentPath: string
|
||||
}
|
||||
heightmap: {
|
||||
probed: boolean
|
||||
@ -131,6 +134,7 @@ export interface GuiState {
|
||||
sortBy: string
|
||||
sortDesc: boolean
|
||||
showHiddenFiles: boolean
|
||||
currentPath: string
|
||||
}
|
||||
webcam: {
|
||||
currentCam: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user