From 1bd26ceaa68fe66f26c76b3b60fa6eeccea91729 Mon Sep 17 00:00:00 2001 From: Fabio Di Stasio Date: Sun, 18 Dec 2022 15:59:58 +0100 Subject: [PATCH] feat: option to disable selected query execution, closes #477 --- package-lock.json | 14 ++++++------- package.json | 2 +- src/renderer/components/ModalSettings.vue | 21 ++++++++++++++++++- src/renderer/components/WorkspaceTabQuery.vue | 8 +++++-- src/renderer/i18n/en-US.ts | 3 ++- src/renderer/stores/settings.ts | 5 +++++ 6 files changed, 41 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index dff1f207..245bc92d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "@mdi/font": "~7.0.96", "@turf/helpers": "~6.5.0", "@vueuse/core": "~8.7.5", - "ace-builds": "~1.8.1", + "ace-builds": "~1.14.0", "better-sqlite3": "~8.0.0", "electron-log": "~4.4.1", "electron-store": "~8.0.1", @@ -3374,9 +3374,9 @@ } }, "node_modules/ace-builds": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.8.1.tgz", - "integrity": "sha512-wjEQ4khMQYg9FfdEDoOtqdoHwcwFL48H0VB3te5b5A3eqHwxsTw8IX6+xzfisgborIb8dYU+1y9tcmtGFrCPIg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.14.0.tgz", + "integrity": "sha512-3q8LvawomApRCt4cC0OzxVjDsZ609lDbm8l0Xl9uqG06dKEq4RT0YXLUyk7J2SxmqIp5YXzZNw767Dr8GKUruw==" }, "node_modules/acorn": { "version": "7.4.1", @@ -18489,9 +18489,9 @@ } }, "ace-builds": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.8.1.tgz", - "integrity": "sha512-wjEQ4khMQYg9FfdEDoOtqdoHwcwFL48H0VB3te5b5A3eqHwxsTw8IX6+xzfisgborIb8dYU+1y9tcmtGFrCPIg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.14.0.tgz", + "integrity": "sha512-3q8LvawomApRCt4cC0OzxVjDsZ609lDbm8l0Xl9uqG06dKEq4RT0YXLUyk7J2SxmqIp5YXzZNw767Dr8GKUruw==" }, "acorn": { "version": "7.4.1", diff --git a/package.json b/package.json index 3d017d07..f31ea1c6 100644 --- a/package.json +++ b/package.json @@ -124,7 +124,7 @@ "@mdi/font": "~7.0.96", "@turf/helpers": "~6.5.0", "@vueuse/core": "~8.7.5", - "ace-builds": "~1.8.1", + "ace-builds": "~1.14.0", "better-sqlite3": "~8.0.0", "electron-log": "~4.4.1", "electron-store": "~8.0.1", diff --git a/src/renderer/components/ModalSettings.vue b/src/renderer/components/ModalSettings.vue index e6fc253c..68cec433 100644 --- a/src/renderer/components/ModalSettings.vue +++ b/src/renderer/components/ModalSettings.vue @@ -86,7 +86,7 @@ />
- + {{ t('message.missingOrIncompleteTranslation') }}
{{ t('message.findOutHowToContribute') }}
@@ -196,6 +196,19 @@
+
+
+ +
+
+ +
+
@@ -379,6 +392,7 @@ const { dataTabLimit: pageSize, autoComplete: selectedAutoComplete, lineWrap: selectedLineWrap, + executeSelected: selectedExecuteSelected, notificationsTimeout, restoreTabs, disableBlur, @@ -398,6 +412,7 @@ const { changeDisableScratchpad, changeAutoComplete, changeLineWrap, + changeExecuteSelected, changeApplicationTheme, changeEditorTheme, changeEditorFontSize, @@ -550,6 +565,10 @@ const toggleLineWrap = () => { changeLineWrap(!selectedLineWrap.value); }; +const toggleExecuteSelected = () => { + changeExecuteSelected(!selectedExecuteSelected.value); +}; + localLocale.value = selectedLocale.value; localPageSize.value = pageSize.value as number; localTimeout.value = notificationsTimeout.value as number; diff --git a/src/renderer/components/WorkspaceTabQuery.vue b/src/renderer/components/WorkspaceTabQuery.vue index 1917c72c..a0e39ce9 100644 --- a/src/renderer/components/WorkspaceTabQuery.vue +++ b/src/renderer/components/WorkspaceTabQuery.vue @@ -198,6 +198,7 @@ import WorkspaceTabQueryEmptyState from '@/components/WorkspaceTabQueryEmptyStat import ModalHistory from '@/components/ModalHistory.vue'; import BaseSelect from '@/components/BaseSelect.vue'; import { ipcRenderer } from 'electron'; +import { useSettingsStore } from '@/stores/settings'; const { t } = useI18n(); @@ -222,6 +223,7 @@ const { addNotification } = useNotificationsStore(); const workspacesStore = useWorkspacesStore(); const { consoleHeight } = storeToRefs(useConsoleStore()); +const { executeSelected } = storeToRefs(useSettingsStore()); const { getWorkspace, @@ -290,8 +292,10 @@ const runQuery = async (query: string) => { if (!query || isQuering.value) return; isQuering.value = true; - const selectedQuery = queryEditor.value.editor.getSelectedText(); - if (selectedQuery) query = selectedQuery; + if (executeSelected.value) { + const selectedQuery = queryEditor.value.editor.getSelectedText(); + if (selectedQuery) query = selectedQuery; + } clearTabData(); queryTable.value.resetSort(); diff --git a/src/renderer/i18n/en-US.ts b/src/renderer/i18n/en-US.ts index 2136cc1d..be51482d 100644 --- a/src/renderer/i18n/en-US.ts +++ b/src/renderer/i18n/en-US.ts @@ -332,7 +332,8 @@ export const enUS = { editFolder: 'Edit folder', folderName: 'Folder name', deleteFolder: 'Delete folder', - editConnectionAppearence: 'Edit connection appearence' + editConnectionAppearence: 'Edit connection appearence', + executeSelectedQuery: 'Execute selected query' }, faker: { address: 'Address', diff --git a/src/renderer/stores/settings.ts b/src/renderer/stores/settings.ts index 1d509856..cb1d551a 100644 --- a/src/renderer/stores/settings.ts +++ b/src/renderer/stores/settings.ts @@ -22,6 +22,7 @@ export const useSettingsStore = defineStore('settings', { dataTabLimit: settingsStore.get('data_tab_limit', 1000) as number, autoComplete: settingsStore.get('auto_complete', true) as boolean, lineWrap: settingsStore.get('line_wrap', true) as boolean, + executeSelected: settingsStore.get('execute_selected', true) as boolean, applicationTheme: settingsStore.get('application_theme', defaultAppTheme) as ApplicationTheme, editorTheme: settingsStore.get('editor_theme', defaultEditorTheme) as string, editorFontSize: settingsStore.get('editor_font_size', 'medium') as EditorFontSize, @@ -60,6 +61,10 @@ export const useSettingsStore = defineStore('settings', { this.lineWrap = val; settingsStore.set('line_wrap', this.lineWrap); }, + changeExecuteSelected (val: boolean) { + this.executeSelected = val; + settingsStore.set('execute_selected', this.executeSelected); + }, changeApplicationTheme (theme: string) { this.applicationTheme = theme; settingsStore.set('application_theme', this.applicationTheme);