mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
wip
This commit is contained in:
parent
3ab2b41e8c
commit
95d1952896
@ -69,9 +69,7 @@ export default class Entrypoints extends Component {
|
||||
|
||||
await treeService.expandToNote(note.noteId);
|
||||
|
||||
const tabContext = appContext.tabManager.openEmptyTab();
|
||||
appContext.tabManager.activateTab(tabContext.tabId);
|
||||
await tabContext.setNote(note.noteId);
|
||||
const tabContext = await appContext.tabManager.openTabWithNote(note.noteId, true);
|
||||
|
||||
appContext.triggerCommand('focusAndSelectTitle');
|
||||
}
|
||||
|
@ -77,8 +77,7 @@ function goToLink(e) {
|
||||
|
||||
if (notePath) {
|
||||
if ((e.which === 1 && e.ctrlKey) || e.which === 2) {
|
||||
const tabContext = appContext.tabManager.openEmptyTab();
|
||||
tabContext.setNote(notePath);
|
||||
appContext.tabManager.openTabWithNote(notePath);
|
||||
}
|
||||
else if (e.which === 1) {
|
||||
const activeTabContext = appContext.tabManager.getActiveTabContext();
|
||||
@ -118,8 +117,7 @@ function newTabContextMenu(e) {
|
||||
],
|
||||
selectMenuItemHandler: ({command}) => {
|
||||
if (command === 'openNoteInNewTab') {
|
||||
const tabContext = appContext.tabManager.openEmptyTab();
|
||||
tabContext.setNote(notePath);
|
||||
appContext.tabManager.openTabWithNote(notePath);
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -139,8 +137,7 @@ $(document).on('mousedown', '.note-detail-text a', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (notePath) {
|
||||
const tabContext = appContext.tabManager.openEmptyTab();
|
||||
tabContext.setNote(notePath);
|
||||
appContext.tabManager.openTabWithNote(notePath, false);
|
||||
}
|
||||
else {
|
||||
const address = $link.attr('href');
|
||||
|
@ -163,31 +163,31 @@ export default class TabManager extends Component {
|
||||
|
||||
async switchToTab(tabId, notePath) {
|
||||
const tabContext = this.tabContexts.find(tc => tc.tabId === tabId)
|
||||
|| this.openEmptyTab();
|
||||
|| await this.openEmptyTab();
|
||||
|
||||
this.activateTab(tabContext.tabId);
|
||||
await tabContext.setNote(notePath);
|
||||
}
|
||||
|
||||
async openAndActivateEmptyTab() {
|
||||
const tabContext = this.openEmptyTab();
|
||||
const tabContext = await this.openEmptyTab();
|
||||
|
||||
await this.activateTab(tabContext.tabId);
|
||||
|
||||
await tabContext.setEmpty();
|
||||
}
|
||||
|
||||
openEmptyTab(tabId) {
|
||||
async openEmptyTab(tabId) {
|
||||
const tabContext = new TabContext(tabId);
|
||||
this.child(tabContext);
|
||||
|
||||
this.triggerEvent('newTabOpened', {tabId: tabContext.tabId});
|
||||
await this.triggerEvent('newTabOpened', {tabId: tabContext.tabId});
|
||||
|
||||
return tabContext;
|
||||
}
|
||||
|
||||
async openTabWithNote(notePath, activate, tabId = null) {
|
||||
const tabContext = this.openEmptyTab(tabId);
|
||||
const tabContext = await this.openEmptyTab(tabId);
|
||||
|
||||
await tabContext.setNote(notePath, !activate); // if activate is false then send normal noteSwitched event
|
||||
|
||||
@ -211,8 +211,7 @@ export default class TabManager extends Component {
|
||||
|
||||
// if no tab with this note has been found we'll create new tab
|
||||
|
||||
const tabContext = this.openEmptyTab();
|
||||
await tabContext.setNote(noteId);
|
||||
await this.openTabWithNote(noteId);
|
||||
}
|
||||
|
||||
activateTab(tabId, triggerEvent = true) {
|
||||
|
@ -108,8 +108,7 @@ class TreeContextMenu {
|
||||
const notePath = treeService.getNotePath(this.node);
|
||||
|
||||
if (command === 'openInTab') {
|
||||
const tabContext = appContext.tabManager.openEmptyTab();
|
||||
tabContext.setNote(notePath);
|
||||
appContext.tabManager.openTabWithNote(notePath);
|
||||
}
|
||||
else if (command === "insertNoteAfter") {
|
||||
const parentNoteId = this.node.data.parentNoteId;
|
||||
|
@ -47,8 +47,7 @@ export default class NoteTreeWidget extends TabAwareWidget {
|
||||
const notePath = treeService.getNotePath(node);
|
||||
|
||||
if (notePath) {
|
||||
const tabContext = appContext.tabManager.openEmptyTab();
|
||||
tabContext.setNote(notePath);
|
||||
appContext.tabManager.openTabWithNote(notePath);
|
||||
}
|
||||
|
||||
e.stopPropagation();
|
||||
@ -81,9 +80,8 @@ export default class NoteTreeWidget extends TabAwareWidget {
|
||||
node.setFocus(true);
|
||||
}
|
||||
else if (event.ctrlKey) {
|
||||
const tabContext = appContext.tabManager.openEmptyTab();
|
||||
const notePath = treeService.getNotePath(node);
|
||||
tabContext.setNote(notePath);
|
||||
appContext.tabManager.openTabWithNote(notePath);
|
||||
}
|
||||
else {
|
||||
node.setActive();
|
||||
|
@ -28,6 +28,23 @@ export default class TabCachingWidget extends TabAwareWidget {
|
||||
}
|
||||
}
|
||||
|
||||
async newTabOpenedEvent({tabId}) {
|
||||
if (this.widgets[tabId]) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.widgets[tabId] = this.widgetFactory();
|
||||
|
||||
const $renderedWidget = this.widgets[tabId].render();
|
||||
this.$widget.after($renderedWidget);
|
||||
|
||||
keyboardActionsService.updateDisplayedShortcuts($renderedWidget);
|
||||
|
||||
await this.widgets[tabId].handleEvent('setTabContext', {tabContext: this.tabContext});
|
||||
|
||||
this.child(this.widgets[tabId]); // add as child only once it is ready (rendered with tabContext)
|
||||
}
|
||||
|
||||
async refreshWithNote() {
|
||||
for (const widget of Object.values(this.widgets)) {
|
||||
widget.toggle(false);
|
||||
@ -39,21 +56,14 @@ export default class TabCachingWidget extends TabAwareWidget {
|
||||
return;
|
||||
}
|
||||
|
||||
let widget = this.widgets[this.tabContext.tabId];
|
||||
const widget = this.widgets[this.tabContext.tabId];
|
||||
|
||||
if (!widget) {
|
||||
widget = this.widgets[this.tabContext.tabId] = this.widgetFactory();
|
||||
|
||||
const $renderedWidget = widget.render();
|
||||
this.$widget.after($renderedWidget);
|
||||
|
||||
keyboardActionsService.updateDisplayedShortcuts($renderedWidget);
|
||||
|
||||
this.child(widget); // add as child only once it is ready (also rendered)
|
||||
await widget.handleEvent('setTabContext', {tabContext: this.tabContext});
|
||||
if (widget) {
|
||||
widget.toggle(widget.isEnabled());
|
||||
}
|
||||
else {
|
||||
console.error(`Widget for tab ${this.tabContext.tabId} not found.`);
|
||||
}
|
||||
|
||||
widget.toggle(widget.isEnabled());
|
||||
}
|
||||
|
||||
tabRemovedEvent({tabId}) {
|
||||
|
@ -196,8 +196,7 @@ export default class RelationMapTypeWidget extends TypeWidget {
|
||||
const noteId = this.idToNoteId($noteBox.prop("id"));
|
||||
|
||||
if (command === "openInNewTab") {
|
||||
const tabContext = appContext.tabManager.openEmptyTab();
|
||||
tabContext.setNote(noteId);
|
||||
appContext.tabManager.openTabWithNote(noteId);
|
||||
}
|
||||
else if (command === "remove") {
|
||||
const confirmDialog = await import('../../dialogs/confirm.js');
|
||||
|
Loading…
x
Reference in New Issue
Block a user