Desktop: Add reveal in notebook option (#16354)

This commit is contained in:
mrjo118 authored and GitHub committed 2026-09-06 12:49:03 +01:00
1 parent c27de4f34e
commit f4069b5f02
6 files changed
+47

No files matched your search

+1
View File
@@ -549,6 +549,7 @@ packages/app-desktop/gui/WindowCommandsAndDialogs/commands/renameTag.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/resetLayout.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/restoreFolder.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/restoreNote.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/revealInNotebook.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/revealResourceFile.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/search.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/setTags.js
+1
View File
@@ -575,6 +575,7 @@ packages/app-desktop/gui/WindowCommandsAndDialogs/commands/renameTag.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/resetLayout.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/restoreFolder.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/restoreNote.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/revealInNotebook.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/revealResourceFile.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/search.js
packages/app-desktop/gui/WindowCommandsAndDialogs/commands/setTags.js
+1
View File
@@ -877,6 +877,7 @@ function useMenu(props: Props) {
separator(),
menuItemDic.showNoteProperties,
menuItemDic.showNoteContentProperties,
menuItemDic.revealInNotebook,
separator(),
menuItemDic.permanentlyDeleteNote,
],
@@ -33,6 +33,7 @@ import * as renameTag from './renameTag';
import * as resetLayout from './resetLayout';
import * as restoreFolder from './restoreFolder';
import * as restoreNote from './restoreNote';
import * as revealInNotebook from './revealInNotebook';
import * as revealResourceFile from './revealResourceFile';
import * as search from './search';
import * as setTags from './setTags';
@@ -92,6 +93,7 @@ const index: any[] = [
resetLayout,
restoreFolder,
restoreNote,
revealInNotebook,
revealResourceFile,
search,
setTags,
@@ -0,0 +1,41 @@
import CommandService, { CommandRuntime, CommandDeclaration, CommandContext } from '@joplin/lib/services/CommandService';
import { _ } from '@joplin/lib/locale';
import Folder from '@joplin/lib/models/Folder';
import Note from '@joplin/lib/models/Note';
import { defaultWindowId, stateUtils } from '@joplin/lib/reducer';
import { getDisplayParentId } from '@joplin/lib/services/trash';
import bridge from '../../../services/bridge';
export const declaration: CommandDeclaration = {
name: 'revealInNotebook',
label: () => _('Reveal in notebook'),
};
export const runtime = (): CommandRuntime => {
return {
execute: async (context: CommandContext, noteId: string = null) => {
noteId = noteId || stateUtils.selectedNoteId(context.state);
const note = await Note.load(noteId);
if (!note) throw new Error(`No such note: ${noteId}`);
const parentFolder = await Folder.load(note.parent_id);
const folderId = note.is_conflict && !note.deleted_time ? Folder.conflictFolderId() : getDisplayParentId(note, parentFolder);
const mainWindowState = stateUtils.windowStateById(context.state, defaultWindowId);
const folderAlreadySelected = mainWindowState.selectedFolderId === folderId;
const noteAlreadySelected = stateUtils.selectedNoteId(mainWindowState) === note.id;
context.dispatch({
type: 'WINDOW_FOCUS',
windowId: defaultWindowId,
});
context.dispatch({
type: 'FOLDER_AND_NOTE_SELECT',
folderId,
noteId: note.id,
});
bridge().switchToMainWindow();
if (folderAlreadySelected) await CommandService.instance().execute('focusElementSideBar');
if (folderAlreadySelected && noteAlreadySelected) await CommandService.instance().execute('focusElementNoteList', note.id);
},
enabledCondition: 'someNotesSelected && !multipleNotesSelected',
};
};
@@ -80,6 +80,7 @@ export default function() {
'exportDeletionLog',
'toggleSafeMode',
'showShareNoteDialog',
'revealInNotebook',
'showShareFolderDialog',
'leaveSharedFolder',
'gotoAnything',