From 95030c353a42ae03d62a6fe1fd27d39e93f96fd6 Mon Sep 17 00:00:00 2001 From: lxk955 <164191365+lxk955@users.noreply.github.com> Date: Fri, 9 Oct 2026 09:45:55 +0800 Subject: [PATCH] feat(sidebar): compact row density for connection tree Closes #6683 --- .../editor/EditorSettingsDialog.vue | 34 ++++ .../src/components/sidebar/ConnectionTree.vue | 50 +++-- .../src/components/sidebar/TreeItem.vue | 20 +- .../__tests__/TreeItem.rowDensity.spec.ts | 189 ++++++++++++++++++ .../composables/__tests__/useFlatTree.spec.ts | 17 +- apps/desktop/src/composables/useFlatTree.ts | 8 +- apps/desktop/src/i18n/locales/az.ts | 4 + apps/desktop/src/i18n/locales/en.ts | 4 + apps/desktop/src/i18n/locales/es.ts | 4 + apps/desktop/src/i18n/locales/id.ts | 4 + apps/desktop/src/i18n/locales/it.ts | 4 + apps/desktop/src/i18n/locales/ja.ts | 4 + apps/desktop/src/i18n/locales/ko.ts | 4 + apps/desktop/src/i18n/locales/pt-BR.ts | 4 + apps/desktop/src/i18n/locales/ru.ts | 4 + apps/desktop/src/i18n/locales/tr.ts | 4 + apps/desktop/src/i18n/locales/zh-CN.ts | 4 + apps/desktop/src/i18n/locales/zh-TW.ts | 4 + .../__tests__/settingsTransfer.spec.ts | 13 ++ .../src/lib/settings/editorSettingsDraft.ts | 1 + .../src/lib/settings/settingsSearch.ts | 1 + .../src/lib/settings/settingsTransfer.ts | 2 + .../stores/__tests__/settingsStore.spec.ts | 5 + apps/desktop/src/stores/settingsStore.ts | 14 ++ 24 files changed, 377 insertions(+), 25 deletions(-) create mode 100644 apps/desktop/src/components/sidebar/__tests__/TreeItem.rowDensity.spec.ts diff --git a/apps/desktop/src/components/editor/EditorSettingsDialog.vue b/apps/desktop/src/components/editor/EditorSettingsDialog.vue index e28eb34d8d..864e32adfa 100644 --- a/apps/desktop/src/components/editor/EditorSettingsDialog.vue +++ b/apps/desktop/src/components/editor/EditorSettingsDialog.vue @@ -125,6 +125,9 @@ import { SIDEBAR_INDENT_MAX, SIDEBAR_FONT_SIZE_MIN, SIDEBAR_FONT_SIZE_MAX, + SIDEBAR_DENSITIES, + isSidebarDensity, + type SidebarDensity, } from "@/stores/settingsStore"; import { EDITOR_FONT_FAMILY_CSS_VAR, EDITOR_FONT_SIZE_CSS_VAR, createRunStatementButtonDom, loadEditorTheme, editorFontTheme } from "@/lib/editor/editorThemes"; import { orderAiConfigsForDisplay } from "@/lib/ai/aiConfigOrdering"; @@ -910,6 +913,7 @@ const editSidebarAllowHorizontalScroll = ref(settingsStore.editorSettings.sideba const editSidebarShowTooltips = ref(settingsStore.editorSettings.sidebarShowTooltips); const editSidebarIndent = ref(settingsStore.editorSettings.sidebarIndent); const editSidebarFontSize = ref(settingsStore.editorSettings.sidebarFontSize); +const editSidebarDensity = ref(settingsStore.editorSettings.sidebarDensity); const editExportBatchSize = ref(settingsStore.editorSettings.exportBatchSize); const editPreferredExportPath = ref(settingsStore.editorSettings.preferredExportPath); const editAutoOpenExportFolder = ref(settingsStore.editorSettings.autoOpenExportFolder); @@ -1192,6 +1196,7 @@ function currentEditorSettingsDraft(): EditorSettingsDraft { sidebarShowTooltips: editSidebarShowTooltips.value, sidebarIndent: editSidebarIndent.value, sidebarFontSize: editSidebarFontSize.value, + sidebarDensity: editSidebarDensity.value, sidebarHiddenTablePrefixes: normalizeSidebarHiddenTablePrefixes(editSidebarHiddenTablePrefixes.value), sidebarCopyTableNameSeparator: editSidebarCopyTableNameSeparator.value, sidebarCopyTableNameIncludeSchema: editSidebarCopyTableNameIncludeSchema.value, @@ -1883,6 +1888,7 @@ function syncEditorSettingsDraftFromStore() { editSidebarShowTooltips.value = settingsStore.editorSettings.sidebarShowTooltips; editSidebarIndent.value = settingsStore.editorSettings.sidebarIndent; editSidebarFontSize.value = settingsStore.editorSettings.sidebarFontSize; + editSidebarDensity.value = settingsStore.editorSettings.sidebarDensity; editExportBatchSize.value = settingsStore.editorSettings.exportBatchSize; editPreferredExportPath.value = settingsStore.editorSettings.preferredExportPath; editAutoOpenExportFolder.value = settingsStore.editorSettings.autoOpenExportFolder; @@ -2037,6 +2043,7 @@ const editorSettingsDraftRefs: EditorSettingsDraftRefMap = { sidebarShowTooltips: editSidebarShowTooltips, sidebarIndent: editSidebarIndent, sidebarFontSize: editSidebarFontSize, + sidebarDensity: editSidebarDensity, sidebarHiddenTablePrefixes: editSidebarHiddenTablePrefixes, sidebarCopyTableNameSeparator: editSidebarCopyTableNameSeparator, sidebarCopyTableNameIncludeSchema: editSidebarCopyTableNameIncludeSchema, @@ -2553,6 +2560,7 @@ function resetDefaultsForTab(tab: SettingsCategory) { editSidebarShowTooltips.value = DEFAULT_EDITOR_SETTINGS.sidebarShowTooltips; editSidebarIndent.value = DEFAULT_EDITOR_SETTINGS.sidebarIndent; editSidebarFontSize.value = DEFAULT_EDITOR_SETTINGS.sidebarFontSize; + editSidebarDensity.value = DEFAULT_EDITOR_SETTINGS.sidebarDensity; editSidebarHiddenTablePrefixes.value = DEFAULT_EDITOR_SETTINGS.sidebarHiddenTablePrefixes.join("\n"); editSidebarCopyTableNameSeparator.value = DEFAULT_EDITOR_SETTINGS.sidebarCopyTableNameSeparator; editSidebarCopyTableNameIncludeSchema.value = DEFAULT_EDITOR_SETTINGS.sidebarCopyTableNameIncludeSchema; @@ -2765,6 +2773,7 @@ function resetAllDefaults() { editSidebarShowTooltips.value = DEFAULT_EDITOR_SETTINGS.sidebarShowTooltips; editSidebarIndent.value = DEFAULT_EDITOR_SETTINGS.sidebarIndent; editSidebarFontSize.value = DEFAULT_EDITOR_SETTINGS.sidebarFontSize; + editSidebarDensity.value = DEFAULT_EDITOR_SETTINGS.sidebarDensity; editSidebarHiddenTablePrefixes.value = DEFAULT_EDITOR_SETTINGS.sidebarHiddenTablePrefixes.join("\n"); editSidebarCopyTableNameSeparator.value = DEFAULT_EDITOR_SETTINGS.sidebarCopyTableNameSeparator; editSidebarCopyTableNameIncludeSchema.value = DEFAULT_EDITOR_SETTINGS.sidebarCopyTableNameIncludeSchema; @@ -8305,6 +8314,31 @@ onUnmounted(() => { " /> +
+
+ +

+ {{ t("settings.sidebarDensityDescription") }} +

+
+ +