mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	WIP
This commit is contained in:
		| @@ -382,32 +382,4 @@ class AppContext { | |||||||
|  |  | ||||||
| const appContext = new AppContext(); | const appContext = new AppContext(); | ||||||
|  |  | ||||||
| keyboardActionService.setGlobalActionHandler('OpenNewTab', () => { |  | ||||||
|     appContext.openEmptyTab(); |  | ||||||
| }); |  | ||||||
|  |  | ||||||
| keyboardActionService.setGlobalActionHandler('CloseActiveTab', () => { |  | ||||||
|     if (this.tabRow.activeTabEl) { |  | ||||||
|         this.tabRow.removeTab(this.tabRow.activeTabId); |  | ||||||
|     } |  | ||||||
| }); |  | ||||||
|  |  | ||||||
| keyboardActionService.setGlobalActionHandler('ActivateNextTab', () => { |  | ||||||
|     const nextTab = this.tabRow.nextTabEl; |  | ||||||
|  |  | ||||||
|     if (nextTab) { |  | ||||||
|         // FIXME |  | ||||||
|         this.tabRow.activateTab(nextTab); |  | ||||||
|     } |  | ||||||
| }); |  | ||||||
|  |  | ||||||
| keyboardActionService.setGlobalActionHandler('ActivatePreviousTab', () => { |  | ||||||
|     const prevTab = this.tabRow.previousTabEl; |  | ||||||
|  |  | ||||||
|     if (prevTab) { |  | ||||||
|         // FIXME |  | ||||||
|         this.tabRow.activateTab(prevTab); |  | ||||||
|     } |  | ||||||
| }); |  | ||||||
|  |  | ||||||
| export default appContext; | export default appContext; | ||||||
| @@ -1,11 +1,20 @@ | |||||||
| import server from "./server.js"; | import server from "./server.js"; | ||||||
| import utils from "./utils.js"; | import utils from "./utils.js"; | ||||||
|  | import appContext from "./app_context.js"; | ||||||
|  |  | ||||||
| const keyboardActionRepo = {}; | const keyboardActionRepo = {}; | ||||||
|  |  | ||||||
| const keyboardActionsLoaded = server.get('keyboard-actions').then(actions => { | const keyboardActionsLoaded = server.get('keyboard-actions').then(actions => { | ||||||
| 	for (const action of actions) { | 	for (const action of actions) { | ||||||
| 		keyboardActionRepo[action.actionName] = action; | 		keyboardActionRepo[action.actionName] = action; | ||||||
|  |  | ||||||
|  | 		for (const shortcut of action.effectiveShortcuts || []) { | ||||||
|  | 			if (shortcut && !shortcut.startsWith("global:")) { // global shortcuts should be handled in the electron code | ||||||
|  | 				const eventName = action.actionName.charAt(0).toUpperCase() + action.actionName.slice(1); | ||||||
|  |  | ||||||
|  | 				utils.bindGlobalShortcut(shortcut, appContext.trigger(eventName)); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| }); | }); | ||||||
|  |  | ||||||
| @@ -20,21 +29,7 @@ server.get('keyboard-shortcuts-for-notes').then(shortcutForNotes => { | |||||||
| }); | }); | ||||||
|  |  | ||||||
| function setGlobalActionHandler(actionName, handler) { | function setGlobalActionHandler(actionName, handler) { | ||||||
| 	keyboardActionsLoaded.then(() => { | 	console.log("Useless handler for " + actionName); | ||||||
| 		const action = keyboardActionRepo[actionName]; |  | ||||||
|  |  | ||||||
| 		if (!action) { |  | ||||||
| 			throw new Error(`Cannot find keyboard action '${actionName}'`); |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		action.handler = handler; |  | ||||||
|  |  | ||||||
| 		for (const shortcut of action.effectiveShortcuts) { |  | ||||||
| 			if (shortcut && !shortcut.startsWith("global:")) { // global shortcuts should be handled in the electron code |  | ||||||
| 				utils.bindGlobalShortcut(shortcut, handler); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| function setElementActionHandler($el, actionName, handler) { | function setElementActionHandler($el, actionName, handler) { | ||||||
| @@ -108,6 +103,34 @@ function updateDisplayedShortcuts($container) { | |||||||
|  |  | ||||||
| $(() => updateDisplayedShortcuts($(document))); | $(() => updateDisplayedShortcuts($(document))); | ||||||
|  |  | ||||||
|  | setGlobalActionHandler('OpenNewTab', () => { | ||||||
|  | 	appContext.openEmptyTab(); | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | setGlobalActionHandler('CloseActiveTab', () => { | ||||||
|  | 	if (this.tabRow.activeTabEl) { | ||||||
|  | 		this.tabRow.removeTab(this.tabRow.activeTabId); | ||||||
|  | 	} | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | setGlobalActionHandler('ActivateNextTab', () => { | ||||||
|  | 	const nextTab = this.tabRow.nextTabEl; | ||||||
|  |  | ||||||
|  | 	if (nextTab) { | ||||||
|  | 		// FIXME | ||||||
|  | 		this.tabRow.activateTab(nextTab); | ||||||
|  | 	} | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | setGlobalActionHandler('ActivatePreviousTab', () => { | ||||||
|  | 	const prevTab = this.tabRow.previousTabEl; | ||||||
|  |  | ||||||
|  | 	if (prevTab) { | ||||||
|  | 		// FIXME | ||||||
|  | 		this.tabRow.activateTab(prevTab); | ||||||
|  | 	} | ||||||
|  | }); | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	setGlobalActionHandler, | 	setGlobalActionHandler, | ||||||
| 	setElementActionHandler, | 	setElementActionHandler, | ||||||
|   | |||||||
| @@ -200,7 +200,9 @@ function noteChanged() { | |||||||
| // this makes sure that when user e.g. reloads the page or navigates away from the page, the note's content is saved | // this makes sure that when user e.g. reloads the page or navigates away from the page, the note's content is saved | ||||||
| // this sends the request asynchronously and doesn't wait for result | // this sends the request asynchronously and doesn't wait for result | ||||||
| // FIXME | // FIXME | ||||||
| $(window).on('beforeunload', () => { saveNotesIfChanged(); }); // don't convert to short form, handler doesn't like returned promise | $(window).on('beforeunload', () => { | ||||||
|  |     //saveNotesIfChanged(); | ||||||
|  |  }); | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|     reload, |     reload, | ||||||
|   | |||||||
| @@ -636,7 +636,7 @@ export default class TabRowWidget extends BasicWidget { | |||||||
|  |  | ||||||
|         const {note} = this.appContext.getTabContextById(tabId); |         const {note} = this.appContext.getTabContextById(tabId); | ||||||
|  |  | ||||||
|         if (!note) { |         if (!note || !$tab.length) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user