pake-cli 3.6.0 → 3.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,9 +9,6 @@ use tauri_plugin_window_state::StateFlags;
9
9
  #[cfg(target_os = "macos")]
10
10
  use std::time::Duration;
11
11
 
12
- use tauri::menu::{AboutMetadata, Menu, MenuItem, PredefinedMenuItem, Submenu};
13
- use tauri_plugin_opener::OpenerExt; // Add this
14
-
15
12
  use app::{
16
13
  invoke::{
17
14
  clear_cache_and_restart, download_file, download_file_by_binary, send_notification,
@@ -72,238 +69,12 @@ pub fn run_app() {
72
69
  ])
73
70
  .setup(move |app| {
74
71
  // --- Menu Construction Start ---
75
- let pake_version = env!("CARGO_PKG_VERSION");
76
- let pake_menu_item_title = format!("Built with Pake V{}", pake_version);
77
-
78
- // App Menu (macOS specific, e.g., "Pake")
79
- let app_menu = Submenu::new(app, "Pake", true)?;
80
- let about_metadata = AboutMetadata::default();
81
- app_menu.append(&PredefinedMenuItem::about(
82
- app,
83
- Some("Pake"),
84
- Some(about_metadata),
85
- )?)?;
86
- app_menu.append(&PredefinedMenuItem::separator(app)?)?;
87
- app_menu.append(&PredefinedMenuItem::services(app, None)?)?;
88
- app_menu.append(&PredefinedMenuItem::separator(app)?)?;
89
- app_menu.append(&PredefinedMenuItem::hide(app, None)?)?;
90
- app_menu.append(&PredefinedMenuItem::hide_others(app, None)?)?;
91
- app_menu.append(&PredefinedMenuItem::show_all(app, None)?)?;
92
- app_menu.append(&PredefinedMenuItem::separator(app)?)?;
93
- app_menu.append(&PredefinedMenuItem::quit(app, None)?)?;
94
-
95
- // File Menu
96
- let file_menu = Submenu::new(app, "File", true)?;
97
- file_menu.append(&PredefinedMenuItem::close_window(app, None)?)?;
98
- file_menu.append(&PredefinedMenuItem::separator(app)?)?;
99
- file_menu.append(&MenuItem::with_id(
100
- app,
101
- "clear_cache_restart",
102
- "Clear Cache & Restart",
103
- true,
104
- Some("CmdOrCtrl+Shift+Backspace"),
105
- )?)?;
106
-
107
- // Edit Menu
108
- let edit_menu = Submenu::new(app, "Edit", true)?;
109
- edit_menu.append(&PredefinedMenuItem::undo(app, None)?)?;
110
- edit_menu.append(&PredefinedMenuItem::redo(app, None)?)?;
111
- edit_menu.append(&PredefinedMenuItem::separator(app)?)?;
112
- edit_menu.append(&PredefinedMenuItem::cut(app, None)?)?;
113
- edit_menu.append(&PredefinedMenuItem::copy(app, None)?)?;
114
- edit_menu.append(&PredefinedMenuItem::paste(app, None)?)?;
115
- edit_menu.append(&PredefinedMenuItem::select_all(app, None)?)?;
116
- edit_menu.append(&PredefinedMenuItem::separator(app)?)?;
117
- edit_menu.append(&MenuItem::with_id(
118
- app,
119
- "copy_url",
120
- "Copy URL",
121
- true,
122
- Some("CmdOrCtrl+L"),
123
- )?)?;
124
-
125
- // View Menu
126
- let view_menu = Submenu::new(app, "View", true)?;
127
- view_menu.append(&MenuItem::with_id(
128
- app,
129
- "reload",
130
- "Reload",
131
- true,
132
- Some("CmdOrCtrl+R"),
133
- )?)?;
134
- view_menu.append(&PredefinedMenuItem::separator(app)?)?;
135
- view_menu.append(&MenuItem::with_id(
136
- app,
137
- "zoom_in",
138
- "Zoom In",
139
- true,
140
- Some("CmdOrCtrl+="),
141
- )?)?;
142
- view_menu.append(&MenuItem::with_id(
143
- app,
144
- "zoom_out",
145
- "Zoom Out",
146
- true,
147
- Some("CmdOrCtrl+-"),
148
- )?)?;
149
- view_menu.append(&MenuItem::with_id(
150
- app,
151
- "zoom_reset",
152
- "Actual Size",
153
- true,
154
- Some("CmdOrCtrl+0"),
155
- )?)?;
156
- view_menu.append(&PredefinedMenuItem::separator(app)?)?;
157
- view_menu.append(&PredefinedMenuItem::fullscreen(app, None)?)?;
158
- view_menu.append(&PredefinedMenuItem::separator(app)?)?;
159
- view_menu.append(&MenuItem::with_id(
160
- app,
161
- "toggle_devtools",
162
- "Toggle Developer Tools",
163
- cfg!(debug_assertions),
164
- Some("CmdOrCtrl+Option+I"),
165
- )?)?;
166
-
167
- // Navigation Menu
168
- let navigation_menu = Submenu::new(app, "Navigation", true)?;
169
- navigation_menu.append(&MenuItem::with_id(
170
- app,
171
- "go_back",
172
- "Back",
173
- true,
174
- Some("CmdOrCtrl+["),
175
- )?)?;
176
- navigation_menu.append(&MenuItem::with_id(
177
- app,
178
- "go_forward",
179
- "Forward",
180
- true,
181
- Some("CmdOrCtrl+]"),
182
- )?)?;
183
- navigation_menu.append(&MenuItem::with_id(
184
- app,
185
- "go_home",
186
- "Go Home",
187
- true,
188
- Some("CmdOrCtrl+Shift+H"),
189
- )?)?;
190
-
191
- // Window Menu
192
- let window_menu = Submenu::new(app, "Window", true)?;
193
- window_menu.append(&PredefinedMenuItem::minimize(app, None)?)?;
194
- window_menu.append(&PredefinedMenuItem::maximize(app, None)?)?;
195
- window_menu.append(&PredefinedMenuItem::separator(app)?)?;
196
- window_menu.append(&MenuItem::with_id(
197
- app,
198
- "always_on_top",
199
- "Toggle Always on Top",
200
- true,
201
- None::<&str>,
202
- )?)?;
203
- window_menu.append(&PredefinedMenuItem::separator(app)?)?;
204
- window_menu.append(&PredefinedMenuItem::close_window(app, None)?)?;
205
-
206
- // Help Menu (Custom)
207
- let help_menu = Submenu::new(app, "Help", true)?;
208
- let github_item = MenuItem::with_id(
209
- app,
210
- "pake_github_link",
211
- &pake_menu_item_title,
212
- true,
213
- None::<&str>,
214
- )?;
215
- help_menu.append(&github_item)?;
216
-
217
- // Construct the Menu Bar
218
- let menu = Menu::with_items(
219
- app,
220
- &[
221
- &app_menu,
222
- &file_menu,
223
- &edit_menu,
224
- &view_menu,
225
- &navigation_menu,
226
- &window_menu,
227
- &help_menu,
228
- ],
229
- )?;
230
-
72
+ let menu = app::menu::get_menu(app.app_handle());
231
73
  app.set_menu(menu)?;
232
74
 
233
75
  // Event Handling for Custom Menu Item
234
76
  app.on_menu_event(move |app_handle, event| {
235
- match event.id().as_ref() {
236
- "pake_github_link" => {
237
- let _ = app_handle
238
- .opener()
239
- .open_url("https://github.com/tw93/Pake", None::<&str>);
240
- }
241
- "reload" => {
242
- if let Some(window) = app_handle.get_webview_window("pake") {
243
- let _ = window.eval("window.location.reload()");
244
- }
245
- }
246
- "toggle_devtools" => {
247
- #[cfg(debug_assertions)] // Only allow in debug builds
248
- if let Some(window) = app_handle.get_webview_window("pake") {
249
- if window.is_devtools_open() {
250
- window.close_devtools();
251
- } else {
252
- window.open_devtools();
253
- }
254
- }
255
- }
256
- "zoom_in" => {
257
- if let Some(window) = app_handle.get_webview_window("pake") {
258
- let _ = window.eval("zoomIn()");
259
- }
260
- }
261
- "zoom_out" => {
262
- if let Some(window) = app_handle.get_webview_window("pake") {
263
- let _ = window.eval("zoomOut()");
264
- }
265
- }
266
- "zoom_reset" => {
267
- if let Some(window) = app_handle.get_webview_window("pake") {
268
- let _ = window.eval("setZoom('100%')");
269
- }
270
- }
271
- "go_back" => {
272
- if let Some(window) = app_handle.get_webview_window("pake") {
273
- let _ = window.eval("window.history.back()");
274
- }
275
- }
276
- "go_forward" => {
277
- if let Some(window) = app_handle.get_webview_window("pake") {
278
- let _ = window.eval("window.history.forward()");
279
- }
280
- }
281
- "go_home" => {
282
- if let Some(window) = app_handle.get_webview_window("pake") {
283
- let _ = window.eval("window.location.href = window.pakeConfig.url");
284
- }
285
- }
286
- "copy_url" => {
287
- if let Some(window) = app_handle.get_webview_window("pake") {
288
- let _ =
289
- window.eval("navigator.clipboard.writeText(window.location.href)");
290
- }
291
- }
292
- "clear_cache_restart" => {
293
- if let Some(window) = app_handle.get_webview_window("pake") {
294
- if let Ok(_) = window.clear_all_browsing_data() {
295
- app_handle.restart();
296
- }
297
- }
298
- }
299
- "always_on_top" => {
300
- if let Some(window) = app_handle.get_webview_window("pake") {
301
- let is_on_top = window.is_always_on_top().unwrap_or(false);
302
- let _ = window.set_always_on_top(!is_on_top);
303
- }
304
- }
305
- _ => {}
306
- }
77
+ app::menu::handle_menu_click(app_handle, event.id().as_ref());
307
78
  });
308
79
  // --- Menu Construction End ---
309
80
 
@@ -1,10 +0,0 @@
1
- [Desktop Entry]
2
- Encoding=UTF-8
3
- Categories=Office
4
- Exec=com-pake-weekly
5
- Icon=com-pake-weekly
6
- Name=com-pake-weekly
7
- Name[zh_CN]=潮流周刊
8
- StartupNotify=true
9
- Terminal=false
10
- Type=Application