feat: add macOS View menu with panel visibility items
- Create menu.rs module with View submenu - Items: Editor Only (⌥1), Editor + Notes (⌥2), All Panels (⌥3) - Emits 'menu-event' to frontend, handled by useViewMode hook - Menu only created on desktop builds (#[cfg(desktop)]) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@ pub mod ai_chat;
|
||||
pub mod frontmatter;
|
||||
pub mod git;
|
||||
pub mod github;
|
||||
pub mod menu;
|
||||
pub mod settings;
|
||||
pub mod vault;
|
||||
|
||||
@@ -123,6 +124,7 @@ pub fn run() {
|
||||
{
|
||||
app.handle().plugin(tauri_plugin_updater::Builder::new().build())?;
|
||||
app.handle().plugin(tauri_plugin_process::init())?;
|
||||
menu::setup_menu(app)?;
|
||||
}
|
||||
|
||||
// Purge trashed files older than 30 days on startup
|
||||
|
||||
30
src-tauri/src/menu.rs
Normal file
30
src-tauri/src/menu.rs
Normal file
@@ -0,0 +1,30 @@
|
||||
use tauri::{menu::SubmenuBuilder, App, Emitter};
|
||||
|
||||
const VIEW_ITEMS: [(&str, &str, &str); 3] = [
|
||||
("view-editor-only", "Editor Only", "Alt+1"),
|
||||
("view-editor-list", "Editor + Notes", "Alt+2"),
|
||||
("view-all", "All Panels", "Alt+3"),
|
||||
];
|
||||
|
||||
pub fn setup_menu(app: &App) -> Result<(), Box<dyn std::error::Error>> {
|
||||
let mut view_menu = SubmenuBuilder::new(app, "View");
|
||||
for (id, label, accel) in &VIEW_ITEMS {
|
||||
view_menu = view_menu.text(*id, format!("{label} {accel}"));
|
||||
}
|
||||
let view_submenu = view_menu.build()?;
|
||||
|
||||
let menu = tauri::menu::MenuBuilder::new(app)
|
||||
.item(&view_submenu)
|
||||
.build()?;
|
||||
|
||||
app.set_menu(menu)?;
|
||||
|
||||
app.on_menu_event(|app_handle, event| {
|
||||
let id = event.id().0.as_str();
|
||||
if id.starts_with("view-") {
|
||||
let _ = app_handle.emit("menu-event", id);
|
||||
}
|
||||
});
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user