mirror of
https://github.com/lostpaul/obsidian-folder-notes.git
synced 2026-07-22 07:40:24 +00:00
Open folder notes with ctrl/alt only
This commit is contained in:
parent
1fb8ead51e
commit
2917ff57e0
3 changed files with 50 additions and 1 deletions
|
|
@ -39,6 +39,7 @@ export async function handleFolderClick(event: MouseEvent, plugin: FolderNotesPl
|
|||
|
||||
const folderPath = event.target.parentElement?.getAttribute('data-path');
|
||||
if (!folderPath) { return; }
|
||||
|
||||
const excludedFolder = getExcludedFolder(plugin, folderPath);
|
||||
if (excludedFolder?.disableFolderNote) {
|
||||
event.target.onclick = null;
|
||||
|
|
@ -50,8 +51,19 @@ export async function handleFolderClick(event: MouseEvent, plugin: FolderNotesPl
|
|||
}
|
||||
|
||||
const folderNote = getFolderNote(plugin, folderPath);
|
||||
|
||||
if (folderNote) {
|
||||
return openFolderNote(plugin, folderNote, event);
|
||||
if (plugin.settings.openByClick) {
|
||||
return openFolderNote(plugin, folderNote, event);
|
||||
} else if (plugin.settings.openWithCtrl && Keymap.isModEvent(event) === 'tab') {
|
||||
return openFolderNote(plugin, folderNote, event);
|
||||
} else if (plugin.settings.openWithAlt && event.altKey) {
|
||||
return openFolderNote(plugin, folderNote, event);
|
||||
} else {
|
||||
if (plugin.settings.enableCollapsing) return;
|
||||
event.target.parentElement?.click()
|
||||
return;
|
||||
}
|
||||
} else if (event.altKey || Keymap.isModEvent(event) === 'tab') {
|
||||
if ((plugin.settings.altKey && event.altKey) || (plugin.settings.ctrlKey && Keymap.isModEvent(event) === 'tab')) {
|
||||
await createFolderNote(plugin, folderPath, true, undefined, true);
|
||||
|
|
@ -59,7 +71,11 @@ export async function handleFolderClick(event: MouseEvent, plugin: FolderNotesPl
|
|||
plugin.removeCSSClassFromEL(folderPath, 'has-not-folder-note');
|
||||
return;
|
||||
}
|
||||
} else if (!folderNote) {
|
||||
if (plugin.settings.enableCollapsing) return;
|
||||
return event.target.parentElement?.click();
|
||||
}
|
||||
|
||||
event.target.onclick = null;
|
||||
event.target.click();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -215,6 +215,33 @@ export async function renderGeneral(settingsTab: SettingsTab) {
|
|||
settingsTab.display();
|
||||
});
|
||||
});
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('Key for opening folder note')
|
||||
.setDesc('Select the combination to open a folder note')
|
||||
.addDropdown((dropdown) => {
|
||||
dropdown.addOption('click', 'Mouse Click');
|
||||
if (!Platform.isMacOS) {
|
||||
dropdown.addOption('ctrl', 'Ctrl + Click');
|
||||
} else {
|
||||
dropdown.addOption('ctrl', 'Cmd + Click');
|
||||
}
|
||||
dropdown.addOption('alt', 'Alt + Click');
|
||||
if (settingsTab.plugin.settings.openByClick) {
|
||||
dropdown.setValue('click');
|
||||
} else if (settingsTab.plugin.settings.openWithCtrl) {
|
||||
dropdown.setValue('ctrl');
|
||||
} else {
|
||||
dropdown.setValue('alt');
|
||||
}
|
||||
dropdown.onChange(async (value) => {
|
||||
settingsTab.plugin.settings.openByClick = value === 'click';
|
||||
settingsTab.plugin.settings.openWithCtrl = value === 'ctrl';
|
||||
settingsTab.plugin.settings.openWithAlt = value === 'alt';
|
||||
await settingsTab.plugin.saveSettings();
|
||||
settingsTab.display();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
new Setting(containerEl)
|
||||
|
|
|
|||
|
|
@ -46,6 +46,9 @@ export interface FolderNotesSettings {
|
|||
cursiveName: boolean;
|
||||
cursiveNameInPath: boolean;
|
||||
disableOpenFolderNoteOnClick: boolean;
|
||||
openByClick: boolean;
|
||||
openWithCtrl: boolean;
|
||||
openWithAlt: boolean;
|
||||
}
|
||||
|
||||
export const DEFAULT_SETTINGS: FolderNotesSettings = {
|
||||
|
|
@ -101,6 +104,9 @@ export const DEFAULT_SETTINGS: FolderNotesSettings = {
|
|||
cursiveName: false,
|
||||
cursiveNameInPath: false,
|
||||
disableOpenFolderNoteOnClick: false,
|
||||
openByClick: true,
|
||||
openWithCtrl: false,
|
||||
openWithAlt: false,
|
||||
};
|
||||
|
||||
export class SettingsTab extends PluginSettingTab {
|
||||
|
|
|
|||
Loading…
Reference in a new issue