mirror of
https://github.com/lana-k/sqliteviz.git
synced 2025-12-06 18:18:53 +08:00
Add hotkeys #6
This commit is contained in:
@@ -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()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user