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();
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user