pake-cli 3.6.1 → 3.6.3

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,8 +9,7 @@ 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
12
+ const WINDOW_SHOW_DELAY: u64 = 50;
14
13
 
15
14
  use app::{
16
15
  invoke::{
@@ -72,239 +71,16 @@ pub fn run_app() {
72
71
  ])
73
72
  .setup(move |app| {
74
73
  // --- 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
-
231
- app.set_menu(menu)?;
232
-
233
- // Event Handling for Custom Menu Item
234
- 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
- }
307
- });
74
+ #[cfg(target_os = "macos")]
75
+ {
76
+ let menu = app::menu::get_menu(app.app_handle())?;
77
+ app.set_menu(menu)?;
78
+
79
+ // Event Handling for Custom Menu Item
80
+ app.on_menu_event(move |app_handle, event| {
81
+ app::menu::handle_menu_click(app_handle, event.id().as_ref());
82
+ });
83
+ }
308
84
  // --- Menu Construction End ---
309
85
 
310
86
  let window = set_window(app, &pake_config, &tauri_config);
@@ -321,7 +97,7 @@ pub fn run_app() {
321
97
  if !start_to_tray {
322
98
  let window_clone = window.clone();
323
99
  tauri::async_runtime::spawn(async move {
324
- tokio::time::sleep(tokio::time::Duration::from_millis(50)).await;
100
+ tokio::time::sleep(tokio::time::Duration::from_millis(WINDOW_SHOW_DELAY)).await;
325
101
  window_clone.show().unwrap();
326
102
  });
327
103
  }
@@ -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