mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
WIP
This commit is contained in:
parent
423a70d102
commit
9bc1f5af45
@ -382,32 +382,4 @@ class 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;
|
@ -1,11 +1,20 @@
|
||||
import server from "./server.js";
|
||||
import utils from "./utils.js";
|
||||
import appContext from "./app_context.js";
|
||||
|
||||
const keyboardActionRepo = {};
|
||||
|
||||
const keyboardActionsLoaded = server.get('keyboard-actions').then(actions => {
|
||||
for (const action of actions) {
|
||||
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) {
|
||||
keyboardActionsLoaded.then(() => {
|
||||
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);
|
||||
}
|
||||
}
|
||||
});
|
||||
console.log("Useless handler for " + actionName);
|
||||
}
|
||||
|
||||
function setElementActionHandler($el, actionName, handler) {
|
||||
@ -108,6 +103,34 @@ function updateDisplayedShortcuts($container) {
|
||||
|
||||
$(() => 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 {
|
||||
setGlobalActionHandler,
|
||||
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 sends the request asynchronously and doesn't wait for result
|
||||
// FIXME
|
||||
$(window).on('beforeunload', () => { saveNotesIfChanged(); }); // don't convert to short form, handler doesn't like returned promise
|
||||
$(window).on('beforeunload', () => {
|
||||
//saveNotesIfChanged();
|
||||
});
|
||||
|
||||
export default {
|
||||
reload,
|
||||
|
@ -636,7 +636,7 @@ export default class TabRowWidget extends BasicWidget {
|
||||
|
||||
const {note} = this.appContext.getTabContextById(tabId);
|
||||
|
||||
if (!note) {
|
||||
if (!note || !$tab.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user