快速面板模块

This commit is contained in:
zhongluofeng
2026-08-04 13:37:42 +08:00
parent 5656193b5c
commit 126f8896b6
23 changed files with 4048 additions and 52 deletions
+44
View File
@@ -10,6 +10,7 @@ mod monitor_kernel;
mod network_monitor;
mod osd_window;
mod process_manager;
mod quickpanel;
mod screenshot;
mod snap_fix;
mod tray_menu;
@@ -61,6 +62,15 @@ use clipboard::{
clipboard_set_pinned, clipboard_show_popup, clipboard_show_window, clipboard_start,
clipboard_status, clipboard_stop, clipboard_unregister_shortcut,
};
use quickpanel::{
quickpanel_build_file_index, quickpanel_clear_app_icon_cache, quickpanel_delete_file,
quickpanel_file_index_stats, quickpanel_get_app_icon, quickpanel_get_settings,
quickpanel_hide_popup, quickpanel_init_file_index, quickpanel_lock_screen,
quickpanel_open_file, quickpanel_register_shortcut, quickpanel_reveal_in_explorer,
quickpanel_run_custom_command, quickpanel_run_system_command, quickpanel_save_settings,
quickpanel_scan_apps, quickpanel_search_files, quickpanel_show_popup, quickpanel_show_window,
quickpanel_unregister_shortcut,
};
use tray_menu::{tray_menu_action, tray_menu_hide, tray_menu_ready};
#[tauri::command]
@@ -195,6 +205,26 @@ pub fn run() {
clipboard_show_window,
clipboard_hide_popup,
clipboard_paste_to_target,
quickpanel_get_settings,
quickpanel_save_settings,
quickpanel_register_shortcut,
quickpanel_unregister_shortcut,
quickpanel_show_popup,
quickpanel_show_window,
quickpanel_hide_popup,
quickpanel_lock_screen,
quickpanel_init_file_index,
quickpanel_build_file_index,
quickpanel_search_files,
quickpanel_file_index_stats,
quickpanel_scan_apps,
quickpanel_get_app_icon,
quickpanel_clear_app_icon_cache,
quickpanel_reveal_in_explorer,
quickpanel_open_file,
quickpanel_delete_file,
quickpanel_run_custom_command,
quickpanel_run_system_command,
tray_menu_action,
tray_menu_hide,
tray_menu_ready,
@@ -286,6 +316,20 @@ pub fn run() {
}
app.manage(clipboard);
// 快速面板:应用启动时注册全局快捷键 + 预创建隐藏窗口。
// defaultEnabled:true 假设启用;用户在设置页禁用模块时由前端 onDisable 钩子注销快捷键。
let qp_settings = quickpanel::load_settings(&app.handle());
if !qp_settings.shortcut.trim().is_empty() {
let app_handle = app.handle().clone();
if let Err(e) = quickpanel::register_shortcut(&app_handle, &qp_settings.shortcut) {
eprintln!("[quickpanel] 快捷键注册失败: {}", e);
}
// 预创建弹窗窗口(隐藏),首次按快捷键时直接 show,避免首次创建时序问题
quickpanel::ensure_window(&app_handle);
}
// 初始化文件索引数据库(不立即构建,由前端设置页或首次唤起时触发)
quickpanel::file_index::init(&app.handle());
// 自定义托盘菜单(代理/OSD/Kernel/下载/设置/退出)
tray_menu::create_tray_menu(app.handle())?;