Skip to content

Commit 752a402

Browse files
authored
feat: setting for configurable tab drop position (#2317)
1 parent 11deadc commit 752a402

File tree

5 files changed

+46
-1
lines changed

5 files changed

+46
-1
lines changed

src/_locales/dict.setup-page.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2340,6 +2340,39 @@ Available variables: %B - a list mark (bullet); %CT - custom title or title; %T
23402340
zh_TW: '注意:拖曳時按住 Ctrl 將保留書籤',
23412341
ja: '注:ブックマークの移動は、ドラッグアンドドロップが有効になっている場合にのみ機能します。',
23422342
},
2343+
'settings.move_tab_to_panel': {
2344+
en: 'Position when dropping tabs to a panel',
2345+
de: 'Position beim Ablegen von Tabs auf einem Panel',
2346+
fr: 'Position lors du dépôt des onglets sur un panneau',
2347+
hu: 'Pozíció a lapok panelre való ejtésekor',
2348+
pl: 'Pozycja przy upuszczaniu kart do panelu',
2349+
ru: 'Позиция при перетаскивании вкладок на панель',
2350+
zh_CN: '将标签页拖放到面板时的位置',
2351+
zh_TW: '將分頁拖放到面板時的位置',
2352+
ja: 'タブをパネルにドロップしたときの位置',
2353+
},
2354+
'settings.move_tab_to_panel_start': {
2355+
en: 'Panel start',
2356+
de: 'Panel-Anfang',
2357+
fr: 'Début du panneau',
2358+
hu: 'Panel eleje',
2359+
pl: 'Początek panelu',
2360+
ru: 'Начало панели',
2361+
zh_CN: '面板开头',
2362+
zh_TW: '面板開頭',
2363+
ja: 'パネルの先頭',
2364+
},
2365+
'settings.move_tab_to_panel_end': {
2366+
en: 'Panel end',
2367+
de: 'Panel-Ende',
2368+
fr: 'Fin du panneau',
2369+
hu: 'Panel vége',
2370+
pl: 'Koniec panelu',
2371+
ru: 'Конец панели',
2372+
zh_CN: '面板末尾',
2373+
zh_TW: '面板末尾',
2374+
ja: 'パネルの最後',
2375+
},
23432376

23442377
// - Search;
23452378
'settings.search_title': {

src/defaults/settings.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export const DEFAULT_SETTINGS: SettingsState = {
6060
dndActSearchTab: true,
6161
dndMoveTabs: false,
6262
dndMoveBookmarks: false,
63+
moveTabToPanel: 'end',
6364

6465
// Search
6566
searchBarMode: 'dynamic',
@@ -349,6 +350,7 @@ export const SETTINGS_OPTIONS = {
349350
dndExp: ['pointer', 'hover', 'none'],
350351
dndExpMod: ['alt', 'shift', 'ctrl', 'none'],
351352
dndOutside: ['win', 'data'],
353+
moveTabToPanel: ['start', 'end'],
352354
animationSpeed: ['fast', 'norm', 'slow'],
353355
treeRmOutdent: ['branch', 'first_child'],
354356
colorizeTabsSrc: ['domain', 'container'],

src/page.setup/components/settings.dnd.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ section(ref="el")
5656
label="settings.dnd_act_search_tab"
5757
v-model:value="Settings.state.dndActSearchTab"
5858
@update:value="Settings.saveDebounced(150)")
59+
SelectField(
60+
label="settings.move_tab_to_panel"
61+
optLabel="settings.move_tab_to_panel_"
62+
v-model:value="Settings.state.moveTabToPanel"
63+
:opts="Settings.getOpts('moveTabToPanel')"
64+
@update:value="Settings.saveDebounced(150)")
5965
ToggleField(
6066
label="settings.dnd_move_tabs"
6167
:note="translate('settings.dnd_move_tabs_note')"

src/services/drag-and-drop.actions.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,10 @@ function getDstIndexInside(dstType: DropType, dst: DstPlaceInfo): number {
263263
const branchLen = Tabs.getBranchLen(parent.id) ?? 0
264264
return parent.index + branchLen + 1
265265
} else {
266-
return dstPanel.nextTabIndex ?? Tabs.list.length
266+
// Use the setting to determine whether to drop at start or end
267+
return Settings.state.moveTabToPanel === 'start'
268+
? dstPanel.startTabIndex
269+
: (dstPanel.nextTabIndex ?? Tabs.list.length)
267270
}
268271
}
269272
// To the last position in bookmarks children list

src/types/settings.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export interface SettingsState {
5959
dndActSearchTab: boolean
6060
dndMoveTabs: boolean
6161
dndMoveBookmarks: boolean
62+
moveTabToPanel: (typeof SETTINGS_OPTIONS.moveTabToPanel)[number]
6263

6364
// Search
6465
searchBarMode: (typeof SETTINGS_OPTIONS.searchBarMode)[number]

0 commit comments

Comments
 (0)