fix(traymenu): update SPN button logic and pause menu items based on SPN status

This commit is contained in:
Alexandr Stelnykovych
2025-11-20 14:13:51 +02:00
parent d957e0142f
commit f5533b447c

View File

@@ -175,11 +175,12 @@ fn build_tray_menu(
(None, None, None) (None, None, None)
}; };
// Setup SPN button // SPN button
let spn_button_text = match spn_status_text { let (spn_enabled, spn_button_text ) = match spn_status_text {
"disabled" => "Enable SPN", "disabled" => { (false, "Enable SPN") }
_ => "Disable SPN", _ => { (true, "Disable SPN") },
}; };
let spn_status = MenuItemBuilder::with_id(SPN_STATUS_KEY, format!("SPN: {}", spn_status_text)) let spn_status = MenuItemBuilder::with_id(SPN_STATUS_KEY, format!("SPN: {}", spn_status_text))
.enabled(false) .enabled(false)
.build(app) .build(app)
@@ -204,7 +205,7 @@ fn build_tray_menu(
// Setup Pause/Resume menu items // Setup Pause/Resume menu items
let disabled_spn_pause = (spn_status_text == "disabled" && !pause_info.spn) || pause_info.interception; let disabled_spn_pause = (!spn_enabled && !pause_info.spn) || pause_info.interception;
let pause_spn_5min_item = MenuItemBuilder::with_id(PAUSE_SPN_5_KEY, "Pause SPN for 5 minutes").enabled(!disabled_spn_pause).build(app)?; let pause_spn_5min_item = MenuItemBuilder::with_id(PAUSE_SPN_5_KEY, "Pause SPN for 5 minutes").enabled(!disabled_spn_pause).build(app)?;
let pause_spn_15min_item = MenuItemBuilder::with_id(PAUSE_SPN_15_KEY, "Pause SPN for 15 minutes").enabled(!disabled_spn_pause).build(app)?; let pause_spn_15min_item = MenuItemBuilder::with_id(PAUSE_SPN_15_KEY, "Pause SPN for 15 minutes").enabled(!disabled_spn_pause).build(app)?;
let pause_spn_1hour_item = MenuItemBuilder::with_id(PAUSE_SPN_60_KEY, "Pause SPN for 1 hour").enabled(!disabled_spn_pause).build(app)?; let pause_spn_1hour_item = MenuItemBuilder::with_id(PAUSE_SPN_60_KEY, "Pause SPN for 1 hour").enabled(!disabled_spn_pause).build(app)?;
@@ -213,17 +214,27 @@ fn build_tray_menu(
let pause_pm_15min_item = MenuItemBuilder::with_id(PAUSE_PM_15_KEY, "Pause for 15 minutes").build(app)?; let pause_pm_15min_item = MenuItemBuilder::with_id(PAUSE_PM_15_KEY, "Pause for 15 minutes").build(app)?;
let pause_pm_1hour_item = MenuItemBuilder::with_id(PAUSE_PM_60_KEY, "Pause for 1 hour").build(app)?; let pause_pm_1hour_item = MenuItemBuilder::with_id(PAUSE_PM_60_KEY, "Pause for 1 hour").build(app)?;
let pause_menu = SubmenuBuilder::new(app, "Pause") let pause_menu = if !spn_enabled && !pause_info.spn {
.items(&[ SubmenuBuilder::new(app, "Pause")
&pause_spn_5min_item, .items(&[
&pause_spn_15min_item, &pause_pm_5min_item,
&pause_spn_1hour_item, &pause_pm_15min_item,
&PredefinedMenuItem::separator(app)?, &pause_pm_1hour_item,
&pause_pm_5min_item, ])
&pause_pm_15min_item, .build()?
&pause_pm_1hour_item, } else {
]) SubmenuBuilder::new(app, "Pause")
.build()?; .items(&[
&pause_spn_5min_item,
&pause_spn_15min_item,
&pause_spn_1hour_item,
&PredefinedMenuItem::separator(app)?,
&pause_pm_5min_item,
&pause_pm_15min_item,
&pause_pm_1hour_item,
])
.build()?
};
/* DEV MENU /* DEV MENU
let force_show_window = MenuItemBuilder::with_id(FORCE_SHOW_KEY, "Force Show UI").build(app)?; let force_show_window = MenuItemBuilder::with_id(FORCE_SHOW_KEY, "Force Show UI").build(app)?;