1
0
mirror of https://github.com/lana-k/sqliteviz.git synced 2025-12-07 02:28:54 +08:00

Add hotkeys #6

This commit is contained in:
lana-k
2020-12-25 18:15:20 +01:00
parent d66eb48088
commit 1150b2e7c4

View File

@@ -6,17 +6,17 @@
</div> </div>
<div> <div>
<button <button
v-if="currentQuery" v-if="currentQuery && $route.path === '/editor'"
class="primary" class="primary"
:disabled="currentQuery && (!$store.state.schema || !currentQuery.query)" :disabled="runDisabled"
@click="currentQuery.execute" @click="currentQuery.execute"
> >
Run Run
</button> </button>
<button <button
v-if="currentQuery" v-show="currentQuery && $route.path === '/editor'"
class="primary" class="primary"
:disabled="currentQuery && !isUnsaved" :disabled="!isUnsaved"
@click="checkQueryBeforeSave" @click="checkQueryBeforeSave"
> >
Save Save
@@ -85,11 +85,18 @@ export default {
} else { } else {
return false return false
} }
},
runDisabled () {
return this.currentQuery && (!this.$store.state.schema || !this.currentQuery.query)
} }
}, },
created () { created () {
this.$root.$on('createNewQuery', this.createNewQuery) this.$root.$on('createNewQuery', this.createNewQuery)
this.$root.$on('saveQuery', this.checkQueryBeforeSave) this.$root.$on('saveQuery', this.checkQueryBeforeSave)
document.addEventListener('keydown', this._keyListener)
},
beforeDestroy () {
document.removeEventListener('keydown', this._keyListener)
}, },
methods: { methods: {
createNewQuery () { createNewQuery () {
@@ -174,6 +181,31 @@ export default {
// Signal about saving // Signal about saving
this.$root.$emit('querySaved') this.$root.$emit('querySaved')
},
_keyListener (e) {
if (this.$route.path === '/editor') {
// Run query Ctrl+R
if (e.key === 'r' && (e.ctrlKey || e.metaKey)) {
e.preventDefault()
if (!this.runDisabled) {
this.currentQuery.execute()
}
}
// Save query Ctrl+S
if (e.key === 's' && (e.ctrlKey || e.metaKey)) {
e.preventDefault()
if (this.isUnsaved) {
this.checkQueryBeforeSave()
}
}
// New (blank) query Ctrl+B
if (e.key === 'b' && (e.ctrlKey || e.metaKey)) {
e.preventDefault()
this.createNewQuery()
}
}
} }
} }
} }